Decompile overlay 8 (95%) (#115)

* started overlay 8

* progress

* progress

* progress

* more headers

* progress

* more progress

* symbols

* fix splits + new headers

* more progress

* func_ov008_02112ee0 & func_ov008_02112f28

* document fish in save item manager and unrelated things because precommit is mad

* SaveItemManager ctor

* progress?

* fix build issues

* split files to match data

* format

* format

* cleanup and match vfunc_08

* add reloc for overlay 0

* fix vtable symbol

* improve non-matching functions

---------

Co-authored-by: Aetias <144526980+AetiasHax@users.noreply.github.com>
This commit is contained in:
Yanis
2025-07-13 15:11:50 +02:00
committed by GitHub
parent 91e4cafc19
commit 0421d36979
40 changed files with 1523 additions and 234 deletions
+26
View File
@@ -0,0 +1,26 @@
#pragma once
#include "Game/GameMode.hpp"
#include "Player/TouchControl.hpp"
#include "System/SysNew.hpp"
#include "global.h"
#include "types.h"
class GameStart : public GameMode {
public:
/* 000 (base) */
/* 008 */ unk32 mUnk_008;
/* 00c */ u32 mUnk_00c;
/* 010 */
/* 00 */ virtual ~GameStart() override;
/* 04 */ virtual GameModeId vfunc_08(bool param1) override;
/* 10 */ virtual void vfunc_10(u16 *param1) override;
/* 14 */
static GameStart *Create(GameModeId modeId);
GameStart(GameModeId modeId);
static void func_ov008_02112e88();
};
+11
View File
@@ -296,6 +296,17 @@ enum Potion_ {
Potion_COUNT,
};
typedef u8 FishType;
enum FishType_ {
FishType_SkippyJack,
FishType_Toona,
FishType_Loovar,
FishType_RustySwordfish,
FishType_Neptoona,
FishType_Stowfish,
FishType_COUNT
};
struct ItemFlags {
/* 00 */ u32 flags[CEIL_DIV(ItemFlag_COUNT, 32)];
/* 10 */
+7 -7
View File
@@ -66,8 +66,8 @@ public:
/* 028 */ ShipType mEquippedShipParts[ShipPart_COUNT];
/* 048 */ s8 mShipParts[ShipPart_COUNT][ShipType_COUNT];
/* 090 */ s8 mTreasure[Treasure_COUNT];
/* 098 */ u8 mUnk_098[6]; // max 99
/* 09e */ u16 mUnk_09e[6]; // max 9999, corresponds with mUnk_098
/* 098 */ FishType mFishCount[FishType_COUNT];
/* 09e */ u16 mFishSize[FishType_COUNT];
/* 0aa */ unk16 mUnk_0aa; // padding?
/* 0ac */ EquipItem *(*mEquipItems)[ItemFlag_EQUIP_COUNT];
/* 0b0 */ u16 (*mAmmo)[ItemFlag_EQUIP_COUNT];
@@ -176,11 +176,11 @@ public:
void SetTreasureSalvaged(u32 index);
u8 GetMaxTreasureCount() const;
// mUnk_098, mUnk_09e
u8 GetUnk_098(u32 index) const;
u16 GetUnk_09e(u32 index) const;
s32 GetUnk_09e_Divided(u32 index) const;
void SetUnk_09e(u32 index, u16 value); // also increments the corresponding mUnk_098 value
// mFishCount, mFishSize
u8 GetCollectedFishCount(u32 index) const;
u16 GetFishSize(u32 index) const;
s32 GetFishSize_Divided(u32 index) const;
void SetFishSize(u32 index, u16 value); // also increments the corresponding mFishCount value
// Item
bool HasItem(ItemFlag item) const;
+1 -7
View File
@@ -6,6 +6,7 @@
#include "Game/Game.hpp"
#include "Message/BMG.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_020eec9c.hpp"
#include "Unknown/func_ov000_020d0644.hpp"
// temp
@@ -169,13 +170,6 @@ public:
};
extern UnkClass_027e1054 *data_027e1054;
class UnkClass_ov000_020eec9c {
public:
void func_ov000_020d77e4(unk32);
unk32 func_ov000_020d7f18(unk32);
};
extern UnkClass_ov000_020eec9c data_ov000_020eec9c;
class UnkClass_ov000_027e0d04 {
public:
/* 0x00 */ unk16 mUnk_00;
+5 -2
View File
@@ -37,6 +37,10 @@ public:
/* 34 */ TouchFlags mFlags;
/* 36 */
TouchControl();
TouchControl(unk32 param_1);
~TouchControl();
void Init();
void IncreaseSpeed(s16 increase);
void UpdateFlags(u16 speed);
@@ -45,10 +49,9 @@ public:
bool func_ov00_0207aeac();
void UpdateConditionally(TouchState *state, u16 speed);
void func_ov00_0207af38(u16 speedIncrease, bool shouldIncrease);
~TouchControl();
static bool func_0202b864(Vec3p *param1, s32 size, unk8 param3);
static bool func_0202b894(Vec3p *param1, s32 size, unk8 param3);
};
void Fill16(int value, unsigned short *dst, int size); // TODO: Replace with header file
extern "C" void Fill16(int value, unsigned short *dst, int size); // TODO: Replace with header file
+168 -27
View File
@@ -4,34 +4,175 @@
#include "types.h"
#include "../Item/Item.hpp"
#include "Actor/Actor.hpp"
#include "Unknown/UnkStruct_020ec7dc.hpp"
struct SaveItemManager {
/* 00 */ ItemFlags itemFlags;
/* 10 */ u32 salvagedTreasureFlags;
/* 14 */ ShipPartPricesShown shipPartPricesShown;
/* 20 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
/* 24 */ u8 equippedShipParts[ShipPart_COUNT];
/* 2c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
/* 74 */ s8 treasure[Treasure_COUNT];
/* 7c */ unk8 unk_7c[4];
/* 80 */ u16 hourglassSeconds;
/* 82 */ u16 unk_82[6];
/* 8e */ u16 numRupees;
/* 90 */ unk8 unk_90;
/* 91 */ unk8 unk_91;
/* 92 */ unk8 unk_92;
/* 93 */ u8 numBombs;
/* 94 */ u8 numBombchus;
/* 95 */ u8 numArrows;
/* 96 */ s8 equippedItem;
/* 97 */ Potion potions[MAX_POTIONS];
/* 99 */ u8 numGems[Gem_COUNT];
/* 9c */ u8 quiverSize;
/* 9d */ u8 bombBagSize;
/* 9e */ u8 bombchuBagSize;
/* 9f */ u8 unk_9f[6];
/* a5 */ u8 equippedFairy;
/* a6 */
class SaveItemManager_f8 {
public:
/* 00 */ u32 mUnk_00[2];
/* 08 */
static void func_ov008_021139d8();
static void func_ov008_021139dc();
~SaveItemManager_f8();
SaveItemManager_f8();
};
class SaveItemManager_2f8 {
public:
/* 00 */ u32 mUnk_00[2];
/* 08 */ u32 mUnk_08[1];
/* 0c */
static void func_ov008_02113984();
static void func_ov008_02113988();
~SaveItemManager_2f8();
SaveItemManager_2f8();
};
class SaveItemManager_d1c {
public:
/* 00 */ unk8 pad[0x1c];
/* 1c */ Actor_UnkStruct_020 mUnk_1c;
/* 30 */
static void func_ov008_02113968();
static void func_ov008_0211396c();
SaveItemManager_d1c();
~SaveItemManager_d1c();
};
class SaveItemManager_cec {
public:
/* 00 */ unk32 mUnk_00;
void func_ov000_0207a3e4();
};
class SaveItemManager_2400 {
public:
/* 00 */ unk32 mUnk_00;
void func_ov000_0207a5ac();
};
class SaveItemManager_2580 {
public:
/* 00 */ u16 mUnk_00[11];
/* 16 */
};
class SaveItemManager_2840 {
public:
/* 00 */ unk32 mUnk_00;
void func_ov000_0207a4f0();
};
class SaveItemManager_2940 {
public:
/* 00 */ unk32 mUnk_00;
void func_ov000_0207a6d0();
};
extern "C" void Fill16(int value, unsigned short *dst, int size);
extern "C" void Fill32(unk32, u32 *, unk32);
extern "C" void Fill256(int value, int *dst, int size);
class SaveInventory {
public:
/* 0000 */ ItemFlags itemFlags;
/* 0010 */ u32 salvagedTreasureFlags;
/* 0014 */ ShipPartPricesShown shipPartPricesShown;
/* 0020 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
/* 0024 */ u8 equippedShipParts[ShipPart_COUNT];
/* 002c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
/* 0074 */ s8 treasure[Treasure_COUNT];
/* 007c */ unk16 unk_7c;
/* 007e */ unk8 unk_7e;
/* 007f */ unk8 unk_7f;
/* 0080 */ u16 hourglassSeconds;
/* 0082 */ u16 fishSize[FishType_COUNT];
/* 008e */ u16 numRupees;
/* 0090 */ unk8 unk_90;
/* 0091 */ unk8 unk_91;
/* 0092 */ unk8 unk_92;
/* 0093 */ u8 numBombs;
/* 0094 */ u8 numBombchus;
/* 0095 */ u8 numArrows;
/* 0096 */ s8 equippedItem;
/* 0097 */ Potion potions[MAX_POTIONS];
/* 0099 */ u8 numGems[Gem_COUNT];
/* 009c */ u8 quiverSize;
/* 009d */ u8 bombBagSize;
/* 009e */ u8 bombchuBagSize;
/* 009f */ FishType fishCount[FishType_COUNT];
/* 00a5 */ u8 equippedFairy;
/* 00a6 */ unk16 unk_a6;
/* 00a8 */ unk32 unk_a8[0x12];
/* 00f0 */ u16 unk_f0[4];
/* 00f8 */
SaveInventory() {
Fill32(0, this->itemFlags.flags, sizeof(this->itemFlags));
Fill32(0, &this->salvagedTreasureFlags, sizeof(this->salvagedTreasureFlags));
Fill32(0, this->shipPartPricesShown.flags, sizeof(this->shipPartPricesShown));
Fill32(0, this->treasurePriceShownFlags, sizeof(this->treasurePriceShownFlags));
this->unk_7c = 0;
this->unk_7e = 0;
this->unk_7f = 0;
this->Init();
Fill256(0, this->unk_a8, sizeof(this->unk_a8));
Fill16(0, this->unk_f0, sizeof(this->unk_f0));
}
void Init();
};
class SaveItemManager_Dummy2 {
public:
/* 000 */ u32 unk_cac[16];
SaveItemManager_Dummy2() {
Fill32(0, this->unk_cac, sizeof(this->unk_cac));
Fill32(0, this->unk_cac, sizeof(this->unk_cac));
}
};
class SaveItemManager {
public:
/* 0000 */ SaveInventory inventory;
/* 00f8 */ SaveItemManager_f8 unk_f8[64];
/* 02f8 */ SaveItemManager_2f8 unk_2f8[207];
/* 0cac */ SaveItemManager_Dummy2 unk_cac;
/* 0cec */ SaveItemManager_cec unk_cec;
/* 0cf0 */ unk8 unk_cf0[0xd1c - 0xcf0];
/* 0d1c */ SaveItemManager_d1c unk_d1c[8];
/* 0e9c */ u32 unk_e9c[2];
/* 0ea4 */ u32 unk_ea4[1];
/* 0ea8 */ unk8 unk_ea8[0xeb0 - 0xea8];
/* 0eb0 */ u32 unk_eb0[2];
/* 0eb8 */ u32 unk_eb8[336];
/* 13f8 */ unk8 unk_13f8[0x1400 - 0x13f8];
/* 1400 */ unk32 unk_1400[0x400];
/* 2400 */ SaveItemManager_2400 unk_2400;
/* 2404 */ unk8 unk_2404[0x2580 - 0x2404];
/* 2580 */ SaveItemManager_2580 unk_2580[32];
/* 2840 */ SaveItemManager_2840 unk_2840;
/* 2844 */ unk8 unk_2844[0x2900 - 0x2844];
/* 2900 */ UnkStruct_020ec7dc unk_2900;
/* 2940 */ SaveItemManager_2940 unk_2940;
/* 2940 */ unk8 unk_2944[0x29c0 - 0x2944];
/* 29c0 */ unk32 unk_29c0;
/* 29c4 */
SaveItemManager();
void func_ov000_0207a418();
};
extern SaveItemManager gSaveItemManager;
+1
View File
@@ -25,4 +25,5 @@ public:
static void operator delete[](void *ptr);
};
extern u32 *data_027e0ce0[];
extern UnkStruct_0202e894 *data_027e0ce4;
+15
View File
@@ -0,0 +1,15 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_020e9360 {
public:
/* 00 */ u8 *mUnk_00;
/* 04 */ u8 mUnk_04[11];
/* 0f */ unk8 mUnk_0f;
UnkStruct_020e9360();
};
extern UnkStruct_020e9360 data_ov000_020e9360;
+20
View File
@@ -0,0 +1,20 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_020e9370 {
public:
/* 000 */ unk8 mUnk_000[0x900];
/* 900 */ unk32 mUnk_900;
/* 904 */ unk32 mUnk_904;
/* 908 */ unk16 mUnk_908;
/* 90a */ unk16 mUnk_90a;
/* 90c */ unk32 mUnk_90c;
/* 910 */ unk32 mUnk_910;
/* 914 */ unk32 mUnk_914;
UnkStruct_020e9370();
};
extern UnkStruct_020e9370 data_ov000_020e9370;
+26
View File
@@ -0,0 +1,26 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Game/GameMode.hpp"
class UnkStruct_020ec7dc_00 {
public:
/* 00 */ u16 mUnk_00[0xA];
/* 0a */
};
class UnkStruct_020ec7dc {
public:
/* 00 */ UnkStruct_020ec7dc_00 mUnk_00[3];
/* 3c */ unk8 mUnk_3c[4];
/* 40 */
UnkStruct_020ec7dc();
void func_ov000_0207c170();
void func_ov000_0207c0f0(GameModeId modeId);
};
extern UnkStruct_020ec7dc data_ov000_020ec7dc;
+30
View File
@@ -0,0 +1,30 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_020ee0a0 {
public:
/* 00 */ unk8 mUnk_00;
/* 00 */ unk8 mUnk_01;
/* 02 */ unk16 mUnk_02;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14[8];
/* 34 */ unk32 mUnk_34;
/* 38 */ unk32 mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */ unk8 mUnk_44;
/* 45 */ unk8 mUnk_45;
/* 46 */ unk8 mUnk_46;
/* 47 */ unk8 mUnk_47;
UnkStruct_020ee0a0();
void func_ov008_021135b8();
};
extern UnkStruct_020ee0a0 data_ov000_020ee0a0;
+34
View File
@@ -0,0 +1,34 @@
#pragma once
#include "global.h"
#include "types.h"
extern "C" void Fill16(int value, unsigned short *dst, int size);
class UnkStruct_020ee698_0c {
public:
/* 00 */ u16 mUnk_00[15];
/* 2c */ unk32 mUnk_2c;
/* 30 */
UnkStruct_020ee698_0c() {
this->mUnk_2c = 4;
Fill16(0, this->mUnk_00, sizeof(this->mUnk_00));
}
};
class UnkStruct_020ee698 {
public:
/* 00 */ unk8 mUnk_00;
/* 01 */ unk8 mUnk_01;
/* 02 */ unk16 mUnk_02;
/* 04 */ u16 mUnk_04;
/* 04 */ unk16 mUnk_06;
/* 08 */ unk32 mUnk_08;
/* 0c */ UnkStruct_020ee698_0c mUnk_0c;
/* 30 */
UnkStruct_020ee698();
};
extern UnkStruct_020ee698 data_ov000_020ee698;
+33
View File
@@ -0,0 +1,33 @@
#pragma once
#include "Unknown/UnkStruct_func_0201f704.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_020ee6f8_18 {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ unk32 mUnk_04;
/* 08 */
};
class UnkStruct_020ee6f8 {
public:
/* 00 */ UnkStruct_func_0201f704 mUnk_00;
/* 04 */ bool mUnk_04;
/* 04 */ unk8 mUnk_05;
/* 04 */ unk8 mUnk_06;
/* 04 */ unk8 mUnk_07;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ UnkStruct_020ee6f8_18 mUnk_18[3];
/* 30 */ unk32 mUnk_30;
/* 34 */ unk32 mUnk_34;
/* 38 */ bool mUnk_38;
UnkStruct_020ee6f8();
};
extern UnkStruct_020ee6f8 data_ov000_020ee6f8;
+26 -1
View File
@@ -5,10 +5,35 @@
#include "Game/Game.hpp"
struct UnkStruct_020ee734 {
class UnkStruct_020ee734 {
public:
/* 00 */ unk8 mUnk_00[0x90];
/* 90 */ u32 *mUnk_90;
/* 94 */ unk8 mUnk_94;
/* 95 */ unk8 mUnk_95;
/* 96 */ unk8 mUnk_96;
/* 97 */ unk8 mUnk_97;
/* 98 */ bool mUnk_98;
/* 99 */ unk8 mUnk_99;
/* 9a */ unk8 mUnk_9a;
/* 9b */ unk8 mUnk_9b;
/* 9c */ unk32 mUnk_9c;
/* a0 */ unk32 mUnk_a0;
/* a4 */ unk32 mUnk_a4;
/* a8 */ unk8 mUnk_a8;
/* a9 */ unk8 mUnk_a9;
/* aa */ unk8 mUnk_aa;
/* ab */ unk8 mUnk_ab;
/* ac */ unk32 mUnk_ac[8];
/* cc */
UnkStruct_020ee734();
void func_ov000_020d6488();
void func_ov000_020d6620(void);
void func_ov000_020d6438(GameModeId modeId);
void func_ov008_021131ac(void);
};
extern UnkStruct_020ee734 data_ov000_020ee734;
+38
View File
@@ -0,0 +1,38 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_020ee820_04 {
public:
/* 00 */ unk32 mUnk_00;
void func_020156b4();
};
class UnkStruct_020ee820 {
public:
/* 00 */ bool mUnk_00;
/* 01 */ unk8 mUnk_01;
/* 02 */ unk8 mUnk_02;
/* 03 */ unk8 mUnk_03;
/* 04 */ UnkStruct_020ee820_04 mUnk_04;
/* 08 */ unk32 *mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk8 mUnk_24[0x40 - 0x24];
/* 40 */ unk32 mUnk_40[256];
UnkStruct_020ee820();
void func_ov000_020d69d4(unk32);
void func_ov000_020d69e4();
void func_ov008_021133f0();
};
extern UnkStruct_020ee820 data_ov000_020ee820;
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_020eec60 {
public:
/* 00 */ bool mUnk_00;
/* 01 */ unk8 mUnk_01;
/* 02 */ unk16 mUnk_02;
UnkStruct_020eec60();
void func_ov008_02113474();
};
extern UnkStruct_020eec60 data_ov000_020eec60;
+37
View File
@@ -0,0 +1,37 @@
#pragma once
#include "Unknown/UnkStruct_func_0201f704.hpp"
#include "global.h"
#include "types.h"
struct UnkStruct_020eec68_0c {
unk32 mUnk_00;
void func_02021a1c();
};
class UnkStruct_020eec68 {
public:
/* 00 */ UnkStruct_func_0201f704 mUnk_00[3];
/* 0c */ UnkStruct_020eec68_0c mUnk_0c;
/* 10 */ unk8 mUnk_10;
/* 11 */ unk8 mUnk_11;
/* 12 */ unk8 mUnk_12;
/* 13 */ unk8 mUnk_13;
/* 14 */ unk8 mUnk_14;
/* 15 */ unk8 mUnk_15;
/* 16 */ unk8 mUnk_16;
/* 17 */ unk8 mUnk_17;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2c */ unk32 mUnk_2c;
UnkStruct_020eec68();
void func_ov008_021132cc();
};
extern UnkStruct_020eec68 data_ov000_020eec68;
+44
View File
@@ -0,0 +1,44 @@
#pragma once
#include "Unknown/UnkStruct_func_0201f704.hpp"
#include "global.h"
#include "types.h"
struct UnkStruct_020eec9c_28 {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk16 mUnk_04;
/* 06 */ unk8 mUnk_06;
/* 07 */ unk8 mUnk_07;
/* 08 */ UnkStruct_func_0201f704 mUnk_08;
/* 0c */
};
class UnkStruct_020eec9c {
public:
/* 00 */ UnkStruct_func_0201f704 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk8 mUnk_08;
/* 09 */ unk8 mUnk_09;
/* 0a */ unk8 mUnk_0a;
/* 0b */ unk8 mUnk_0b;
/* 0c */ unk8 mUnk_0c;
/* 0d */ unk8 mUnk_0d;
/* 0e */ unk8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ UnkStruct_020eec9c_28 mUnk_28[8];
/* 88 */ unk32 mUnk_88;
UnkStruct_020eec9c();
void func_ov000_020d77e4(unk32);
unk32 func_ov000_020d7f18(unk32);
void func_ov008_0211337c();
};
extern UnkStruct_020eec9c data_ov000_020eec9c;
+14
View File
@@ -0,0 +1,14 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_020eed2c {
public:
/* 00 */ unk16 mUnk_00;
/* 02 */ unk16 mUnk_02;
UnkStruct_020eed2c();
};
extern UnkStruct_020eed2c data_ov000_020eed2c;
+30
View File
@@ -0,0 +1,30 @@
#pragma once
#include "System/SysNew.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_027e0d54_08 : public SysObject {
public:
/* 00 */ u32 mUnk_00[1];
/* 04 */
};
class UnkStruct_027e0d54 {
public:
/* 00 */ u32 mUnk_00[2];
/* 04 */ UnkStruct_027e0d54_08 *mUnk_08;
/* 04 */ bool mUnk_0c;
/* 04 */ unk8 mUnk_0d;
/* 04 */ unk8 mUnk_0e;
/* 04 */ unk8 mUnk_0f;
/* 10 */ unk32 mUnk_10;
/* 10 */ u16 mUnk_14;
/* 10 */ unk16 mUnk_16;
UnkStruct_027e0d54();
void func_ov008_02112f28();
};
extern UnkStruct_027e0d54 data_027e0d54;
+26
View File
@@ -0,0 +1,26 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_027e0dbc {
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 */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2c */ unk32 mUnk_2c;
UnkStruct_027e0dbc();
void func_02042744(unk32 *param_1);
};
extern UnkStruct_027e0dbc data_027e0dbc;
+44
View File
@@ -0,0 +1,44 @@
#pragma once
#include "System/SysNew.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_027e0f88_04 : public SysObject {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk16 mUnk_04;
/* 06 */ unk16 mUnk_06;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk8 mUnk_0c;
/* 0d */ unk8 mUnk_0d;
/* 0e */ unk8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */
UnkStruct_027e0f88_04();
UnkStruct_027e0f88_04(unk32 param_1, unk16 param_2, unk32 param_3, unk16 param_4, u8 param_5);
void func_ov000_020a1b54(unk32 param_1, unk32 param_2);
};
class UnkStruct_027e0f88 : public SysObject {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ UnkStruct_027e0f88_04 *mUnk_04[2];
/* 0c */ unk16 mUnk_0c;
/* 0e */ unk16 mUnk_0e;
/* 10 */ unk16 mUnk_10;
/* 12 */ unk16 mUnk_12;
/* 14 */
UnkStruct_027e0f88();
UnkStruct_027e0f88(u32 *param_1);
void func_ov000_020a1a3c();
static void func_ov008_02113678(u32 *param_1);
void func_ov008_021136c0();
};
extern UnkStruct_027e0f88 *data_027e0f88;
@@ -0,0 +1,10 @@
#pragma once
#include "global.h"
#include "types.h"
struct UnkStruct_func_0201f704 {
unk32 mUnk_00;
void func_0201f704();
};