Overlay 110 - PlayerGet (#2)

* delink overlay 110

* mangled functions names in symbols

* improve how versions are defined in the compiler's command

* add version-exclusive function + fix data_ov110_021861ec size

* match .rodata

* dsd sig apply

* progress

* vfunc_18 & func_ov110_02185d3c + format

* symbols renames

* remove force_data pragma

* started func_ov110_02184a40

* improve vfunc_18 match thanks to nepecam

* fixed relocs issues

* match func_ov110_02186b8c

* continue the awful function (and rename the folder)

* format

* build issues

* almost match func_ov110_02184a40!!!

* start vfunc_10 + misc

* vfunc_10 progress (91%)

* symbol fix

* vfunc_10 big switch fix

* turn some structs into a class

* update symbols

* vfunc_10 prog, move func_ov110_02185da4 to itemmanaager and some docs/cleanup

* progress on playerget and itemmanager

* fix build issues

* remove accidental header from merge and name mUnk_60

* add hex value comment in item id enum

* random stuff

* started vfunc_0c

* move externs around

* match/docs stuff related to item usage in PlayerGet

* format

* vfunc_10 version diff

* improve func_ov110_02186b8c handling and fix broken matches

* vfunc_0c small improvements

* progress on item manager

* complete item manager and add upgrade capacities

* some cleanup

* header cleanup

* match data (kind of)

* symbol naming

* name more symbols 1

* name more symbols 2

* name more symbols 3

* more jp syncing

* mystery actor stuff

* rename the file and fix build errors
This commit is contained in:
Yanis
2025-08-06 12:12:32 +02:00
committed by GitHub
parent e80f625b50
commit 550f01708e
56 changed files with 2964 additions and 1451 deletions
+9 -1
View File
@@ -39,6 +39,14 @@ public:
void func_02028cdc(Actor_5c *param1, unk32 param2);
};
class Actor_34 {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ unk32 mUnk_04;
/* 00 */ unk32 mUnk_08;
/* 00 */ unk32 mUnk_0c;
};
class Actor : public SysObject {
public:
/* 00 (vtable) */
@@ -49,7 +57,7 @@ public:
/* 2a */ unk16 mUnk_2a;
/* 2c */ unk32 mUnk_2c; // gravity?
/* 30 */ unk32 *mUnk_30;
/* 34 */ unk32 *mUnk_34;
/* 34 */ Actor_34 *mUnk_34;
/* 38 */ unk32 *mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ void *mUnk_40; // pointer to `Actor_c4`
+523 -523
View File
File diff suppressed because it is too large Load Diff
+123
View File
@@ -0,0 +1,123 @@
#pragma once
#include "Actor/Actor.hpp"
#include "types.h"
class ActorUnk_ov000_020a8bb0_94 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 08 */ unk16 mUnk_0a;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk16 mUnk_14;
/* 14 */ unk16 mUnk_16;
/* 18 */ unk32 mUnk_18;
/* 1c */
ActorUnk_ov000_020a8bb0_94();
~ActorUnk_ov000_020a8bb0_94();
};
class ActorUnk_ov000_020a8bb0_ec {
public:
void func_ov024_020d6668();
};
class ActorUnk_ov000_020a8bb0 : public Actor {
public:
/* 000 (base) */
/* 094 */ ActorUnk_ov000_020a8bb0_94 mUnk_094;
/* 0b0 */ u16 mUnk_0b0;
/* 0b4 */ unk32 mUnk_0b4;
/* 0b8 */ unk32 mUnk_0b8;
/* 0bc */ unk32 mUnk_0bc;
/* 0c0 */ unk32 mUnk_0c0;
/* 0c4 */ unk32 mUnk_0c4;
/* 0c8 */ unk32 mUnk_0c8;
/* 0cc */ unk16 mUnk_0cc;
/* 0cc */ unk16 mUnk_0ce;
/* 0d0 */ unk32 mUnk_0d0;
/* 0d4 */ unk32 mUnk_0d4;
/* 0d8 */ unk16 mUnk_0d8;
/* 0d8 */ unk16 mUnk_0da;
/* 0dc */ unk16 mUnk_0dc;
/* 0dc */ unk16 mUnk_0de;
/* 0e0 */ unk16 mUnk_0e0;
/* 0e0 */ unk16 mUnk_0e2;
/* 0e4 */ unk32 mUnk_0e4;
/* 0e8 */ unk16 mUnk_0e8;
/* 0e8 */ unk16 mUnk_0ea;
/* 0ec */ ActorUnk_ov000_020a8bb0_ec mUnk_0ec;
/* 0f0 */ unk32 mUnk_0f0;
/* 0f4 */ unk32 mUnk_0f4;
/* 0f8 */ unk32 mUnk_0f8;
/* 0fc */ unk32 mUnk_0fc;
/* 100 */ unk32 mUnk_100;
/* 104 */ unk32 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;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual unk32 vfunc_18() override;
/* 1c */ virtual void vfunc_1c() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2c */ virtual void vfunc_2c() override;
/* 40 */ virtual void vfunc_40() override;
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4c */ virtual ~ActorUnk_ov000_020a8bb0();
/* 54 */ virtual void vfunc_54();
/* 54 */ virtual void vfunc_58() = 0;
/* 5c */ virtual void vfunc_5c();
/* 60 */ virtual void vfunc_60();
/* 64 */ virtual void vfunc_64();
/* 68 */ virtual void vfunc_68();
/* 6c */ virtual void vfunc_6c();
/* 70 */ virtual void vfunc_70();
/* 74 */ virtual void vfunc_74();
/* 78 */ virtual void vfunc_78();
/* 7c */ virtual unk32 vfunc_7c();
/* 80 */ virtual unk32 vfunc_80();
/* 84 */ virtual unk32 vfunc_84();
/* 88 */ virtual unk32 vfunc_88();
/* 8c */ virtual unk32 vfunc_8c();
/* 90 */ virtual unk32 vfunc_90();
/* 94 */ virtual void vfunc_94();
/* 98 */ virtual void vfunc_98();
/* 9c */ virtual void vfunc_9c();
/* a0 */ virtual void vfunc_a0();
/* a4 */ virtual void vfunc_a4();
/* a8 */ virtual unk32 vfunc_a8();
/* ac */ virtual void vfunc_ac();
/* b0 */ virtual void vfunc_b0();
/* b4 */ virtual void vfunc_b4();
/* b8 */ virtual void vfunc_b8();
/* bc */
ActorUnk_ov000_020a8bb0(unk32 param1, unk32 param2);
void func_ov000_020a8db0();
void func_ov000_020a8dd0();
void func_ov000_020a8df0();
void func_ov000_020a8e9c();
void func_ov000_020a8ff4();
void func_ov000_020a91b8();
void func_ov000_020a9200();
void func_ov000_020a9248();
void func_ov000_020a94b0();
void func_ov000_020a95d8();
void func_ov000_020a9804();
void func_ov000_020a9a20();
void func_ov000_020a9a34();
void func_ov000_020a9a50();
void func_ov000_020a9a94();
void func_ov000_020a9abc();
void func_ov000_020a9ae0();
void func_ov000_020a9afc();
};
+141 -110
View File
@@ -4,9 +4,28 @@
#include "types.h"
#define MAX_KEYS 8
#define MAX_TEARS_OF_LIGHT 3
#define CAPACITY_QUIVER_TIER_1 20
#define CAPACITY_QUIVER_TIER_2 30
#define CAPACITY_QUIVER_TIER_3 50
#define CAPACITY_BOMB_BAG_TIER_1 10
#define CAPACITY_BOMB_BAG_TIER_2 20
#define CAPACITY_BOMB_BAG_TIER_3 30
typedef u8 UpgradeCapacity;
enum UpgradeCapacity_ {
UpgradeCapacity_Tier1,
UpgradeCapacity_Tier2,
UpgradeCapacity_Tier3,
UpgradeCapacity_Max
};
typedef u32 ItemFlag;
typedef u16 ItemFlag_u16;
enum ItemFlag_ {
ItemFlag_None = -1,
ItemFlag_Whirlwind = FLAG(0, 0),
ItemFlag_Boomerang = FLAG(0, 1),
ItemFlag_Whip = FLAG(0, 2),
@@ -78,116 +97,127 @@ enum ItemFlag_ {
ItemFlag_Max
};
typedef u32 ItemId;
typedef s32 ItemId;
typedef s16 ItemId_s16;
enum ItemId_ {
ItemId_None = -1,
ItemId_Nothing = 0,
ItemId_NormalShield = 1,
ItemId_NormalSword = 2,
ItemId_Whirlwind = 3,
ItemId_BombBag = 4,
ItemId_NormalBow = 5,
ItemId_Boomerang = 6,
ItemId_Whip = 7,
ItemId_SandRod = 8,
ItemId_NormalKey = 10,
ItemId_BossKey = 11,
ItemId_GreenRupee = 12,
ItemId_BlueRupee = 13,
ItemId_RedRupee = 14,
ItemId_BigGreenRupee = 15,
ItemId_BigRedRupee = 16,
ItemId_BigGoldRupee = 17,
ItemId_ForceGem_18 = 18, // kidnapped papuchia man
ItemId_ForceGem_19 = 19, // ice for fish seller
ItemId_ForceGem_20 = 20, // goron lava house ice
ItemId_ForestGlyph = 21,
ItemId_SnowGlyph = 22,
ItemId_OceanGlyph = 23,
ItemId_FireGlyph = 24,
ItemId_FinalTrack = 30, // unlocks the endgame portal
ItemId_ForceGem_35 = 35, // rightmost fire gem
ItemId_ForceGem_36 = 36, // right snow gem
ItemId_ForceGem_37 = 37, // top fire gem
ItemId_RecruitUniform = 38,
ItemId_PostmasterLetter = 39,
ItemId_HeartContainer = 40,
ItemId_QuiverMedium = 41,
ItemId_BombBagMedium = 42,
ItemId_ForceGem_43 = 43, // one of rightmost forest
ItemId_ForceGem_44 = 44, // the other rightmost forest, but more middle than top
ItemId_ForceGem_45 = 45, // the bottom-rightmost forest
ItemId_ForceGem_46 = 46, // the top-rightmost fire
ItemId_ForceGem_47 = 47, // the center forest
ItemId_ForceGem_48 = 48, // the middle-left forest
ItemId_ForceGem_49 = 49, // the below middle-left forest
ItemId_ForceGem_50 = 50,
ItemId_ForceGem_51 = 51,
ItemId_ForceGem_52 = 52,
ItemId_ForceGem_53 = 53,
ItemId_ForceGem_54 = 54,
ItemId_ForceGem_55 = 55,
ItemId_ForceGem_56 = 56,
ItemId_ForceGem_57 = 57,
ItemId_ForceGem_58 = 58,
ItemId_ForceGem_59 = 59,
ItemId_ForceGem_60 = 60,
ItemId_ForceGem_61 = 61,
ItemId_PanFlute = 62,
ItemId_StampBook = 63,
ItemId_LightBow = 64,
ItemId_LocomoSword = 65,
ItemId_TenPriceCard = 66,
ItemId_RedPotion = 67,
ItemId_PurplePotion = 68,
ItemId_YellowPotion = 69,
ItemId_DemonFossil = 70,
ItemId_StalfosSkull = 71,
ItemId_StarFragment = 72,
ItemId_BeeLarvae = 73,
ItemId_WoodHeart = 74,
ItemId_DarkPearlLoop = 75,
ItemId_WhitePearlLoop = 76,
ItemId_RutoCrown = 77,
ItemId_DragonScale = 78,
ItemId_PirateNecklace = 79,
ItemId_PalaceDish = 80,
ItemId_GoronAmber = 81,
ItemId_MysticJade = 82,
ItemId_AncientCoin = 83,
ItemId_PricelessStone = 84,
ItemId_RegalRing = 85,
ItemId_ArrowsRefill = 86,
ItemId_BombsRefill = 87,
ItemId_SoldOutSign = 88,
ItemId_AncientShield = 89,
ItemId_QuiverLarge = 90,
ItemId_BombBagLarge = 91,
ItemId_RandCommonTreasure = 92,
ItemId_RandUncommonTreasure = 93,
ItemId_RandRareTreasure = 94,
ItemId_RandLegendaryTreasure = 95,
ItemId_TearLight = 96,
ItemId_LightCompass = 97,
ItemId_SuperSpinScroll = 98,
ItemId_BeamScroll = 99,
ItemId_LinebeckLetter = 100,
ItemId_PanFluteSong_101 = 101,
ItemId_PanFluteSong_102 = 102,
ItemId_PanFluteSong_103 = 103,
ItemId_PanFluteSong_104 = 104,
ItemId_PanFluteSong_105 = 105,
ItemId_RabbitNet = 106,
ItemId_BeedleCard = 107,
ItemId_SilverCard = 108,
ItemId_GoldCard = 109,
ItemId_PlatinumCard = 110,
ItemId_DiamondCard = 111,
ItemId_FreebieCard = 112,
ItemId_QuintupleCard = 113,
ItemId_CarbenLetter = 114,
ItemId_RecruitUniform2 = 115,
ItemId_EngineerUniform = 116,
/* 0xFF */ ItemId_None = -1,
/* 0x00 */ ItemId_Nothing = 0,
/* 0x01 */ ItemId_NormalShield = 1,
/* 0x02 */ ItemId_NormalSword = 2,
/* 0x03 */ ItemId_Whirlwind = 3,
/* 0x04 */ ItemId_BombBag = 4,
/* 0x05 */ ItemId_NormalBow = 5,
/* 0x06 */ ItemId_Boomerang = 6,
/* 0x07 */ ItemId_Whip = 7,
/* 0x08 */ ItemId_SandRod = 8,
/* 0x09 */ ItemId_9 = 9,
/* 0x0A */ ItemId_NormalKey = 10,
/* 0x0B */ ItemId_BossKey = 11,
/* 0x0C */ ItemId_GreenRupee = 12,
/* 0x0D */ ItemId_BlueRupee = 13,
/* 0x0E */ ItemId_RedRupee = 14,
/* 0x0F */ ItemId_BigGreenRupee = 15,
/* 0x10 */ ItemId_BigRedRupee = 16,
/* 0x11 */ ItemId_BigGoldRupee = 17,
/* 0x12 */ ItemId_ForceGem_18 = 18, // kidnapped papuchia man
/* 0x13 */ ItemId_ForceGem_19 = 19, // ice for fish seller
/* 0x14 */ ItemId_ForceGem_20 = 20, // goron lava house ice
/* 0x15 */ ItemId_ForestGlyph = 21,
/* 0x16 */ ItemId_SnowGlyph = 22,
/* 0x17 */ ItemId_OceanGlyph = 23,
/* 0x18 */ ItemId_FireGlyph = 24,
/* 0x19 */ ItemId_25 = 25,
/* 0x1A */ ItemId_26 = 26,
/* 0x1B */ ItemId_27 = 27,
/* 0x1C */ ItemId_28 = 28,
/* 0x1D */ ItemId_29 = 29,
/* 0x1E */ ItemId_FinalTrack = 30, // unlocks the endgame portal
/* 0x1F */ ItemId_31 = 31,
/* 0x20 */ ItemId_32 = 32,
/* 0x21 */ ItemId_33 = 33,
/* 0x22 */ ItemId_34 = 34,
/* 0x23 */ ItemId_ForceGem_35 = 35, // rightmost fire gem
/* 0x24 */ ItemId_ForceGem_36 = 36, // right snow gem
/* 0x25 */ ItemId_ForceGem_37 = 37, // top fire gem
/* 0x26 */ ItemId_RecruitUniform = 38,
/* 0x27 */ ItemId_PostmasterLetter = 39,
/* 0x28 */ ItemId_HeartContainer = 40,
/* 0x29 */ ItemId_QuiverMedium = 41,
/* 0x2A */ ItemId_BombBagMedium = 42,
/* 0x2B */ ItemId_ForceGem_43 = 43, // one of rightmost forest
/* 0x2C */ ItemId_ForceGem_44 = 44, // the other rightmost forest, but more middle than top
/* 0x2D */ ItemId_ForceGem_45 = 45, // the bottom-rightmost forest
/* 0x2E */ ItemId_ForceGem_46 = 46, // the top-rightmost fire
/* 0x2F */ ItemId_ForceGem_47 = 47, // the center forest
/* 0x30 */ ItemId_ForceGem_48 = 48, // the middle-left forest
/* 0x31 */ ItemId_ForceGem_49 = 49, // the below middle-left forest
/* 0x32 */ ItemId_ForceGem_50 = 50,
/* 0x33 */ ItemId_ForceGem_51 = 51,
/* 0x34 */ ItemId_ForceGem_52 = 52,
/* 0x35 */ ItemId_ForceGem_53 = 53,
/* 0x36 */ ItemId_ForceGem_54 = 54,
/* 0x37 */ ItemId_ForceGem_55 = 55,
/* 0x38 */ ItemId_ForceGem_56 = 56,
/* 0x39 */ ItemId_ForceGem_57 = 57,
/* 0x3A */ ItemId_ForceGem_58 = 58,
/* 0x3B */ ItemId_ForceGem_59 = 59,
/* 0x3C */ ItemId_ForceGem_60 = 60,
/* 0x3D */ ItemId_ForceGem_61 = 61,
/* 0x3E */ ItemId_PanFlute = 62,
/* 0x3F */ ItemId_StampBook = 63,
/* 0x40 */ ItemId_LightBow = 64,
/* 0x41 */ ItemId_LokomoSword = 65,
/* 0x42 */ ItemId_TenPriceCard = 66,
/* 0x43 */ ItemId_RedPotion = 67,
/* 0x44 */ ItemId_PurplePotion = 68,
/* 0x45 */ ItemId_YellowPotion = 69,
/* 0x46 */ ItemId_DemonFossil = 70,
/* 0x47 */ ItemId_StalfosSkull = 71,
/* 0x48 */ ItemId_StarFragment = 72,
/* 0x49 */ ItemId_BeeLarvae = 73,
/* 0x4A */ ItemId_WoodHeart = 74,
/* 0x4B */ ItemId_DarkPearlLoop = 75,
/* 0x4C */ ItemId_WhitePearlLoop = 76,
/* 0x4D */ ItemId_RutoCrown = 77,
/* 0x4E */ ItemId_DragonScale = 78,
/* 0x4F */ ItemId_PirateNecklace = 79,
/* 0x50 */ ItemId_PalaceDish = 80,
/* 0x51 */ ItemId_GoronAmber = 81,
/* 0x52 */ ItemId_MysticJade = 82,
/* 0x53 */ ItemId_AncientCoin = 83,
/* 0x54 */ ItemId_PricelessStone = 84,
/* 0x55 */ ItemId_RegalRing = 85,
/* 0x56 */ ItemId_ArrowsRefill = 86,
/* 0x57 */ ItemId_BombsRefill = 87,
/* 0x58 */ ItemId_SoldOutSign = 88,
/* 0x59 */ ItemId_AncientShield = 89,
/* 0x5A */ ItemId_QuiverLarge = 90,
/* 0x5B */ ItemId_BombBagLarge = 91,
/* 0x5C */ ItemId_RandCommonTreasure = 92,
/* 0x5D */ ItemId_RandUncommonTreasure = 93,
/* 0x5E */ ItemId_RandRareTreasure = 94,
/* 0x5F */ ItemId_RandLegendaryTreasure = 95,
/* 0x60 */ ItemId_TearLight = 96,
/* 0x61 */ ItemId_LightCompass = 97,
/* 0x62 */ ItemId_ScrollSpinAttack = 98,
/* 0x63 */ ItemId_ScrollBeam = 99,
/* 0x64 */ ItemId_LinebeckLetter = 100,
/* 0x65 */ ItemId_PanFluteSong_101 = 101,
/* 0x66 */ ItemId_PanFluteSong_102 = 102,
/* 0x67 */ ItemId_PanFluteSong_103 = 103,
/* 0x68 */ ItemId_PanFluteSong_104 = 104,
/* 0x69 */ ItemId_PanFluteSong_105 = 105,
/* 0x6A */ ItemId_RabbitNet = 106,
/* 0x6B */ ItemId_BeedleCard = 107,
/* 0x6C */ ItemId_SilverCard = 108,
/* 0x6D */ ItemId_GoldCard = 109,
/* 0x6E */ ItemId_PlatinumCard = 110,
/* 0x6F */ ItemId_DiamondCard = 111,
/* 0x70 */ ItemId_FreebieCard = 112,
/* 0x71 */ ItemId_QuintupleCard = 113,
/* 0x72 */ ItemId_CarbenLetter = 114,
/* 0x73 */ ItemId_RecruitUniform2 = 115,
/* 0x74 */ ItemId_EngineerUniform = 116,
};
#define MAX_TREASURE 99
@@ -209,7 +239,8 @@ enum TreasureType_ {
TreasureType_MysticJade = 12,
TreasureType_AncientCoin = 13,
TreasureType_PricelessStone = 14,
TreasureType_RegalRing = 15
TreasureType_RegalRing = 15,
TreasureType_Max = 16
};
#define MAX_POTIONS 2
+104 -89
View File
@@ -4,46 +4,129 @@
#include "System/SysNew.hpp"
#include "types.h"
#define IS_ITEM_RESTRICTED(restrictions, itemFlag) (((restrictions) & (1 << (itemFlag))) != 0)
struct UnkStruct_ov000_020afc48 {
/* 00 */ ItemId_s16 mItemId;
/* 02 */ unk16 mUnk_02;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ char mUnk_10[16];
/* 20 */
};
class UnkStruct_ItemManager_20_14 {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
virtual void vfunc_00(); //! TODO: name symbol func_ov000_020667d8
virtual void vfunc_04(); //! TODO: name symbol func_ov000_020667f4
virtual void vfunc_08(); //! TODO: name symbol func_ov000_020673c8
virtual void vfunc_0c(); //! TODO: name symbol func_ov000_02067434
virtual void vfunc_10(); //! TODO: name symbol func_ov000_02067474
virtual void vfunc_14(); //! TODO: name symbol func_ov000_02066dfc
virtual void vfunc_18(); //! TODO: name symbol func_ov000_020669d8
virtual void vfunc_1c(); //! TODO: name symbol func_ov000_02067234
virtual void vfunc_20(); //! TODO: name symbol func_ov000_0206723c
virtual ~UnkStruct_ItemManager_20_14(); //! TODO: name symbols func_ov000_020672ac, func_ov000_020672f4
UnkStruct_ItemManager_20_14();
unk32 func_ov053_0213caf0();
};
class UnkStruct_ItemManager_20 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ UnkStruct_ItemManager_20_14 mUnk_14;
bool func_ov031_020db874(ItemFlag itemFlag);
void func_ov031_020db8cc();
bool func_ov031_020db8f8();
};
class ItemManager : public SysObject {
public:
/* 00 */ unk32 mEquippedItem;
/* 04 */ unk32 mForcedItem;
/* 00 */ ItemFlag mEquippedItem;
/* 04 */ ItemFlag mForcedItem;
/* 08 */ u32 mUnk_08[2]; // inventory items bitfield & collection/equipment bitfield
/* 10 */ unk16 mNumRupees;
/* 10 */ u16 mNumRupees;
/* 12 */ u16 mUnk_12; // "toggle bitfield"
/* 14 */ unk16 mItemRestrictions; // bitfield
/* 16 */ unk8 mTearsAmount; // number of tears of light
/* 14 */ u16 mItemRestrictions; // bitfield
/* 16 */ u8 mTearsAmount; // number of tears of light
/* 17 */ u8 mKeyAmount; // number of small keys
/* 18 */ u8 mQuiverCapacity;
/* 19 */ u8 mBombBagCapacity;
/* 18 */ UpgradeCapacity mQuiverCapacity;
/* 19 */ UpgradeCapacity mBombBagCapacity;
/* 1a */ u8 mArrowAmount;
/* 1b */ u8 mBombAmount;
/* 1c */ u8 mPotions[MAX_POTIONS];
/* 1e */ unk16 mUnk_1e;
/* 20 */ unk32 *mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk8 mUnk_28[0x3C - 0x28];
/* 3c */ TreasureType mUnk_3c[16]; // treasures
/* 5c */
/* 20 */ UnkStruct_ItemManager_20 *mUnk_20;
/* 24 */ unk8 mUnk_24;
/* 24 */ unk8 mUnk_25;
/* 24 */ unk8 mUnk_26;
/* 24 */ unk8 mUnk_27;
/* 28 */
ItemManager();
~ItemManager();
void func_ov000_020a863c(ItemFlag itemFlag);
void func_ov000_020a865c(ItemFlag itemFlag);
bool func_ov000_020a8680();
unk32 func_ov000_020a86a4();
u32 func_ov000_020a86d0(ItemFlag itemFlag);
u8 func_ov000_020a8728();
void func_ov000_020a8768(unk32 param1, unk32 param2, unk32 param3);
u8 func_ov000_020a8748();
void GiveRupees(s32 amount, bool param2, bool param3);
void func_ov000_020a87c8(s32 amount);
void func_ov000_020a87ec(s32 amount);
void func_ov000_020a8820(s32 amount);
bool func_ov000_020a8854();
void func_ov000_020a888c(PotionType type);
bool func_ov000_020a88c8();
bool func_ov000_020a88f4();
void func_ov000_020a8920();
bool func_ov000_020a8948();
static UnkStruct_ov000_020afc48 *func_ov000_020a8974(ItemFlag itemFlag);
static ItemFlag func_ov000_020a8984(ItemId itemId);
void func_ov000_020a89bc();
bool func_ov000_020a89d4();
bool func_ov000_020a8a0c();
void func_ov000_020a8a5c();
bool func_ov000_020a8a74();
unk32 func_ov000_020a8a90();
unk32 func_ov000_020a8aa4();
unk32 func_ov000_020a8ab8();
unk32 func_ov000_020a8acc();
void func_ov000_020a8ae0();
bool func_ov110_02184a40(ItemId itemId);
static ItemId func_ov110_02185da4(ItemId itemId);
static ItemFlag func_ov110_02185db4(ItemId itemId);
};
class TreasureManager : public ItemManager {
public:
/* 28 */ unk8 mUnk_28[0x3C - 0x28];
/* 3c */ s16 mUnk_3c[TreasureType_Max]; // treasures
/* 5c */
TreasureManager();
~TreasureManager();
void func_ov000_020a9b10();
void func_ov000_020a9b2c();
void func_ov000_020a9b3c();
void func_ov000_020a9b4c();
bool func_ov000_020a9c4c(TreasureType type);
bool func_ov000_020a9c64();
unk32 func_ov000_020a9c90(TreasureType type);
bool func_ov000_020a9ca4(TreasureType type);
@@ -52,81 +135,13 @@ public:
static unk32 func_ov000_020a9e14(unk32 param1);
static unk32 func_ov000_020a9eb0(unk32 param1);
static unk32 func_ov000_020a9f4c(unk32 param1);
unk32 func_ov000_020aa02c(ItemId itemId);
ItemId func_ov000_020aa02c(ItemId itemId);
void func_ov000_020aa0ac(ItemId itemId);
//! TODO: find out if it belongs here (some of them are (derived) Actor vfuncs?)
void func_ov000_020a8974();
void func_ov000_020a8984();
void func_ov000_020a89bc();
void func_ov000_020a89d4();
void func_ov000_020a8a0c();
void func_ov000_020a8a5c();
void func_ov000_020a8a74();
void func_ov000_020a8a90();
void func_ov000_020a8aa4();
void func_ov000_020a8ab8();
void func_ov000_020a8acc();
void func_ov000_020a8ae0();
void func_ov000_020a8af4();
void func_ov000_020a8b48();
void func_ov000_020a8b7c();
void func_ov000_020a8bb0();
void func_ov000_020a8cc0();
void func_ov000_020a8ce0();
void func_ov000_020a8d08();
void func_ov000_020a8d28();
void func_ov000_020a8da0();
void func_ov000_020a8da4();
void func_ov000_020a8db0();
void func_ov000_020a8dd0();
void func_ov000_020a8df0();
void func_ov000_020a8e84();
void func_ov000_020a8e9c();
void func_ov000_020a8ec0();
unk32 func_ov000_020a8f54();
unk32 func_ov000_020a8f5c();
unk32 func_ov000_020a8f64();
void func_ov000_020a8f6c();
void func_ov000_020a8f78();
void func_ov000_020a8fe0();
void func_ov000_020a8ff4();
void func_ov000_020a914c();
void func_ov000_020a9150();
unk32 func_ov000_020a91a0();
unk32 func_ov000_020a91a8();
unk32 func_ov000_020a91b0();
void func_ov000_020a91b8();
void func_ov000_020a9200();
void func_ov000_020a921c();
void func_ov000_020a9240();
void func_ov000_020a9244();
void func_ov000_020a9248();
void func_ov000_020a92d0();
void func_ov000_020a9448();
void func_ov000_020a94b0();
void func_ov000_020a9598();
void func_ov000_020a95c4();
void func_ov000_020a95d4();
void func_ov000_020a95d8();
void func_ov000_020a95e4();
unk32 func_ov000_020a97fc();
void func_ov000_020a9804();
void func_ov000_020a98f0();
void func_ov000_020a98f4();
void func_ov000_020a995c();
void func_ov000_020a99a4();
void func_ov000_020a99d8();
void func_ov000_020a9a20();
void func_ov000_020a9a34();
void func_ov000_020a9a50();
void func_ov000_020a9a94();
void func_ov000_020a9abc();
void func_ov000_020a9ae0();
void func_ov000_020a9afc();
void func_ov000_020a9b10();
void func_ov000_020a9b2c();
void func_ov000_020a9b3c();
void func_ov000_020a9b4c();
void func_ov000_020a9c4c();
void func_ov000_020aa200();
void func_ov000_020aa210();
};
extern TreasureManager *data_ov000_020b6510;
extern UnkStruct_ov000_020afc48 data_ov000_020afc48[ItemFlag_EQUIP_COUNT];
extern const u8 gQuiverCapacities[UpgradeCapacity_Max];
extern const u8 gBombBagCapacities[UpgradeCapacity_Max];
+108 -73
View File
@@ -2,16 +2,21 @@
#include "global.h"
#include "types.h"
#include "versions.h"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_ov000_0208f820.hpp"
#include "nitro/math.h"
struct UnkStruct_ov110_02185dc8 {
u16 mItemId;
u16 mItemFlag;
};
class UnkStruct_ov110_021861ec {
public:
/* 00 */ Vec3p mUnk_00;
/* 08 */ unk32 mUnk_0c;
/* 08 */ unk32 mUnk_10;
/* 14 */
/* 0c */
ARM UnkStruct_ov110_021861ec(q20 x, q20 y, q20 z) {
this->mUnk_00.x = x;
@@ -20,24 +25,11 @@ public:
}
};
struct UnkStruct_PlayerGet_64 {
UnkStruct_PlayerGet_64(unk32 param1, unk32 param2);
};
class UnkStruct_PlayerGet_74_base : public SysObject {
public:
/* 00 (vtable) */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04() /* = 0 */;
/* 08 */ virtual void vfunc_08() /* = 0 */;
/* 0c */ virtual void vfunc_0c() /* = 0 */;
/* 10 */ virtual void vfunc_10() /* = 0 */;
/* 14 */ virtual void vfunc_14() /* = 0 */;
/* 18 */ virtual void vfunc_18() /* = 0 */;
/* 1c */ virtual void vfunc_1c() /* = 0 */;
/* 20 */ virtual void vfunc_20() /* = 0 */;
/* 24 */
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3);
UnkStruct_PlayerGet_74_base();
};
@@ -45,90 +37,133 @@ public:
class UnkStruct_PlayerGet_74 : public UnkStruct_PlayerGet_74_base {
public:
/* 00 (base) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ UnkStruct_ov000_0208f820 *mUnk_14;
/* 00 */ virtual void vfunc_00() override;
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override;
UnkStruct_PlayerGet_74() {}
UnkStruct_PlayerGet_74(UnkStruct_ov000_0208f820 *param1) {
this->mUnk_14 = param1;
}
};
class UnkStruct_PlayerGet_8c {
public:
// /* 00 */ unk32 *mUnk_00;
virtual ~UnkStruct_PlayerGet_8c();
virtual void vfunc_08(unk32 param1); //! TODO: name symbol func_ov000_02057bf4
virtual void vfunc_0c(); //! TODO: name symbol func_01ffc57c
virtual void vfunc_10(); //! TODO: name symbol func_ov000_02057dc8
virtual void vfunc_14(); //! TODO: name symbol func_ov000_02057e44
virtual void vfunc_18(); //! TODO: name symbol func_ov000_02057ea8
virtual void vfunc_1c(); //! TODO: name symbol func_ov000_02057c34
virtual void vfunc_20(); //! TODO: name symbol func_ov000_02057d84
UnkStruct_PlayerGet_8c(unk32 param1);
};
class UnkStruct_PlayerGet_ec {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ unk32 *mUnk_00;
/* 04 */
UnkStruct_PlayerGet_ec(unk32 param1) {
UnkStruct_PlayerGet_ec(unk32 *param1) {
this->mUnk_00 = param1;
}
UnkStruct_PlayerGet_ec();
~UnkStruct_PlayerGet_ec();
};
class UnkStruct_PlayerGet_50 {
public:
unk32 func_01ff8fa8();
unk32 func_02015080(unk32 param1);
};
class UnkStruct_PlayerGet_fc {
public:
/* 00 */ UnkStruct_PlayerGet_ec *mUnk_00;
};
class UnkStruct_PlayerGet_48 {
public:
/* 00 */ unk8 mUnk_00[0x40];
/* 40 */ unk16 mUnk_40;
/* 42 */ unk16 mUnk_42;
/* 43 */ unk8 mUnk_43;
/* 44 */ unk8 mUnk_44;
/* 45 */ unk8 mUnk_45;
/* 46 */ unk8 mUnk_46;
/* 47 */ unk8 mUnk_47;
/* 48 */ unk8 mUnk_48[0x5E - 0x48];
/* 5e */ unk16 mUnk_5e;
/* 60 */ unk8 mUnk_60;
/* 61 */ unk8 mUnk_61;
/* 62 */ unk8 mUnk_62;
/* 63 */ unk8 mUnk_63;
};
class PlayerGet : public UnkStruct_ov000_0208f820 {
public:
/* 00 (base) */
/* 48 */ unk32 mUnk_48;
/* 4c */ unk32 mUnk_4c;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 5c */ unk32 mUnk_5c;
/* 60 */ unk32 mUnk_60;
/* 64 */ UnkStruct_PlayerGet_64 mUnk_64;
/* 68 */ unk32 mUnk_68;
/* 6c */ unk32 mUnk_6c;
/* 70 */ unk16 mUnk_70;
/* 70 */ unk8 mUnk_72;
/* 70 */ unk8 mUnk_73;
/* 74 */ UnkStruct_PlayerGet_74 mUnk_74;
/* 78 */ unk32 mUnk_78;
/* 7c */ unk32 mUnk_7c;
/* 80 */ unk32 mUnk_80;
/* 84 */ unk32 mUnk_84;
/* 88 */ UnkStruct_ov000_0208f820 *mUnk_88;
/* 8c */ UnkStruct_PlayerGet_8c mUnk_8c;
/* 90 */ unk32 mUnk_90;
/* 94 */ unk32 mUnk_94;
/* 98 */ unk32 mUnk_98;
/* 9c */ unk32 mUnk_9c;
/* a0 */ unk32 mUnk_a0;
/* a4 */ unk32 mUnk_a4;
/* a8 */ unk32 mUnk_a8;
/* ac */ unk32 mUnk_ac;
/* b0 */ unk32 mUnk_b0;
/* b4 */ unk32 mUnk_b4;
/* b8 */ unk32 mUnk_b8;
/* bc */ unk32 mUnk_bc;
/* c0 */ unk32 mUnk_c0;
/* c4 */ unk32 mUnk_c4;
/* c8 */ unk32 mUnk_c8;
/* cc */ unk32 mUnk_cc;
/* d0 */ unk32 mUnk_d0;
/* d4 */ unk32 mUnk_d4;
/* d8 */ unk32 mUnk_d8;
/* dc */ unk32 mUnk_dc;
/* e0 */ unk32 mUnk_e0;
/* e4 */ unk32 mUnk_e4;
/* e8 */ unk32 mUnk_e8;
/* ec */ UnkStruct_PlayerGet_ec mUnk_ec[4];
/* f0 */
/* 000 (base) */
/* 048 */ UnkStruct_PlayerGet_48 *mUnk_48;
/* 04c */ unk32 *mUnk_4c;
/* 050 */ UnkStruct_PlayerGet_50 *mUnk_50;
/* 054 */ UnkStruct_ov000_0208f820_04 mUnk_54;
/* 064 */ UnkStruct_PlayerGet_64 mUnk_64;
/* 068 */ unk32 mUnk_68;
/* 06c */ unk32 mUnk_6c; // scale
/* 070 */ unk16 mUnk_70; // angle/rotation
/* 070 */ u8 mUnk_72; // probably bools
/* 070 */ u8 mUnk_73; // probably bools
/* 074 */ UnkStruct_PlayerGet_74 mUnk_74;
/* 08c */ UnkStruct_PlayerGet_8c 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 */ unk32 mUnk_b4;
/* 0b8 */ unk32 mUnk_b8;
/* 0bc */ unk32 mUnk_bc;
/* 0c0 */ unk32 mUnk_c0;
/* 0c4 */ unk32 mUnk_c4;
/* 0c8 */ unk32 mUnk_c8;
/* 0cc */ unk32 mUnk_cc;
/* 0d0 */ unk32 mUnk_d0;
/* 0d4 */ unk32 mUnk_d4;
/* 0d8 */ unk32 mUnk_d8;
/* 0dc */ unk32 mUnk_dc;
/* 0e0 */ unk32 mUnk_e0;
/* 0e4 */ unk32 mUnk_e4;
/* 0e8 */ unk32 mUnk_e8;
/* 0ec */ UnkStruct_PlayerGet_ec mUnk_ec[4];
/* 0fc */ void *mUnk_fc;
/* 100 */
/* 04 */ virtual ~PlayerGet() override;
/* 0c */ virtual void vfunc_0c() override;
/* 10 */ virtual void vfunc_10() override;
/* 0c */ virtual void vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) override;
/* 10 */ virtual void vfunc_10(unk32 param1) override;
/* 18 */ virtual void vfunc_18(unk32 param1, unk32 param2, unk32 param3) override;
void func_ov110_02184dac(unk32 param1, unk32 param2, unk32 param3);
PlayerGet();
static unk32 func_ov110_02185da4(unk32 param1);
// Japanese version only
#if IS_JP
bool func_ov110_02186b8c();
#else
bool func_ov110_02186b8c() {
return true;
}
#endif
};
extern const UnkStruct_ov110_021861ec data_ov110_021861ec;
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "types.h"
class UnkStruct_020d8698 {
public:
void func_ov024_020cd458(ItemFlag itemFlag, unk32 param2);
void func_ov024_020cd368(bool param1, bool param2);
};
extern UnkStruct_020d8698 *data_ov024_020d8698;
+12
View File
@@ -0,0 +1,12 @@
#pragma once
#include "types.h"
class UnkStruct_027e09a4 {
public:
/* 00 */ unk32 mUnk_00;
unk8 func_ov000_02070bd0(unk32, unk32);
};
extern UnkStruct_027e09a4 *data_027e09a4;
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include "types.h"
class UnkStruct_027e09b8 {
public:
/* 00 */ unk8 mUnk_00[0x14];
/* 14 */ u32 mUnk_14[1]; //! TODO
unk32 func_01ffd420();
unk32 func_ov000_020732ec(unk32 param1);
unk32 func_ov000_020732fc(unk32 param1);
unk32 func_ov000_020732dc(unk32 param1);
};
extern UnkStruct_027e09b8 *data_027e09b8;
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "types.h"
class UnkStruct_027e09bc_0c {
public:
void func_ov000_02078230(unk32 param1);
void func_ov000_0207834c(Vec3p *param1, unk32 param2, unk32 param3);
};
class UnkStruct_027e09bc {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ UnkStruct_027e09bc_0c *mUnk_0c;
};
extern UnkStruct_027e09bc *data_027e09bc;
+2
View File
@@ -17,6 +17,8 @@ public:
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual q20 vfunc_28(Vec3p *param1, unk32 param2, unk32 param3);
/* 2c */ virtual void vfunc_2c();
unk32 func_ov000_02080a44();
};
class UnkStruct_027e0cd8 {
+23 -6
View File
@@ -6,6 +6,28 @@
#include "Item/ItemManager.hpp"
#include "System/SysNew.hpp"
class UnkStruct_027e0ce0_34 {
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;
/* 30 */
void func_ov024_020d3d98(unk32 param1, unk32 param2);
void func_ov024_020d3ee8(unk32 param1, u16 param2, unk32 param3);
void func_ov110_02185d3c(ItemId itemId);
};
// PlayerManager?
class UnkStruct_027e0ce0 {
public:
@@ -25,7 +47,7 @@ public:
/* 28 */ ItemManager *mUnk_28;
/* 2c */ ItemManager *mUnk_2c; // same as above
/* 30 */ unk32 *mUnk_30; // ?
/* 34 */ unk32 *mUnk_34;
/* 34 */ UnkStruct_027e0ce0_34 *mUnk_34;
/* 38 */ unk32 *mUnk_38; // pointer to data_027e0478 when on the train
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 *mUnk_40; // pointer to data_027e0478 when not on the train
@@ -34,11 +56,6 @@ public:
void func_01fff148();
void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3);
void func_ov024_020d3d98(unk32 param1, unk32 param2);
void func_ov024_020d3ee8(unk32, u16, unk32);
void func_ov110_02185d3c(unk32 param1);
};
extern UnkStruct_027e0ce0 *data_027e0ce0;
+12 -2
View File
@@ -3,9 +3,19 @@
#include "nitro/math.h"
#include "types.h"
struct UnkStruct_func_01fff3b4_ret {
/* 00 */ unk8 mUnk_00[0xE8];
class UnkStruct_func_01fff3b4_ret {
public:
/* 00 */ unk8 mUnk_00[0x48];
/* 48 */ unk8 mUnk_48;
/* 48 */ unk8 mUnk_49;
/* 48 */ unk8 mUnk_4a;
/* 48 */ unk8 mUnk_4b;
/* 48 */ unk8 mUnk_4c[0x58 - 0x4C];
/* 58 */ unk32 mUnk_58;
/* 5c */ unk8 mUnk_5c[0xE8 - 0x5C];
/* e8 */ Vec3p mPos;
void func_ov062_02158ce8();
};
class UnkStruct_027e0ce4 {
+21
View File
@@ -0,0 +1,21 @@
#pragma once
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
#include "types.h"
class UnkStruct_func_01fff520_ret {
public:
void func_ov031_02103878();
};
class UnkStruct_027e0ce8 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ UnkStruct_func_01fff520_ret **mUnk_08;
UnkStruct_func_01fff520_ret **func_01fff520(UnkStruct_ov000_020b34c4 *param1, unk32);
unk32 func_01fff498(UnkStruct_ov000_0208f820_04 param1);
};
extern UnkStruct_027e0ce8 *data_027e0ce8;
+1
View File
@@ -7,6 +7,7 @@
class UnkStruct_027e0cec {
public:
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, Vec3p *param3, unk32 param4);
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, Vec3p *param4, unk32 param5);
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
};
@@ -0,0 +1,16 @@
#pragma once
#include "Item/Item.hpp"
#include "types.h"
class UnkStruct_ov000_02067bc4 {
public:
/* 00 */ virtual unk32 vfunc_00();
/* 04 */ virtual unk32 vfunc_04();
/* 08 */ virtual unk32 vfunc_08();
UnkStruct_ov000_02067bc4 *func_ov000_02067bc4(unk32);
void func_ov000_02067cf8(ItemId itemId, unk32 param2, unk32 *param3);
};
extern UnkStruct_ov000_02067bc4 data_ov000_020b504c;
+129 -24
View File
@@ -6,7 +6,8 @@
#include "System/SysNew.hpp"
#include "nitro/math.h"
struct UnkStruct_ov000_0208f820_14 {
class UnkStruct_ov000_0208f820_14 {
public:
/* 00 */ unk8 mUnk_00[0x6C];
/* 6c */ unk32 mUnk_6c;
/* 70 */ u16 mUnk_70;
@@ -21,48 +22,152 @@ struct UnkStruct_ov000_0208f820_14 {
/* 90 */
};
struct UnkStruct_ov000_0208f820_28_54 {
/* 00 */ unk8 mUnk_00[0x12];
/* 12 */ u16 mUnk_12;
class UnkStruct_PlayerGet_64 {
public:
UnkStruct_PlayerGet_64(unk32 *param1, unk32 param2);
~UnkStruct_PlayerGet_64();
void func_ov000_0208a100();
};
struct UnkStruct_ov000_0208f820_28 {
class UnkStruct_ov000_0208f820_28_98 {
public:
/* 00 */ unk8 mUnk_00[0x38];
/* 38 */ UnkStruct_PlayerGet_64 mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ u16 mUnk_40;
};
class UnkStruct_ov000_0208f820_28 {
public:
/* 00 */ unk8 mUnk_00[0x54];
/* 54 */ UnkStruct_ov000_0208f820_28_54 *mUnk_54;
/* 58 */
/* 54 */ ItemManager *pItemManager;
/* 58 */ unk8 mUnk_58[0x98 - 0x58];
/* 98 */ UnkStruct_ov000_0208f820_28_98 *mUnk_98;
void func_ov058_02152a24();
};
class UnkStruct_ov000_0208f820_2c {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk8 mUnk_14[0x58 - 0x14];
/* 58 */ unk16 mUnk_58;
};
class UnkStruct_ov000_0208f820_30_10 {
public:
void func_ov031_020e076c();
};
class UnkStruct_ov000_0208f820_30 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ UnkStruct_ov000_0208f820_30_10 *mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk8 mUnk_28[0x70 - 0x28];
/* 70 */ u32 mUnk_70;
void func_ov000_020921e4(unk32 param1);
void func_ov000_020936ec();
void func_ov000_02093a04();
};
class UnkStruct_ov000_0208f820_38 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
};
class UnkStruct_ov000_0208f820_3c {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
};
class UnkStruct_ov000_0208f820_40 {
public:
/* 00 */ unk16 mUnk_00;
};
class UnkStruct_PlayerGet_vfunc_0c_param1 {
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 */ ItemId mUnk_1c;
};
class UnkStruct_ov000_0208f820_24 {
public:
/* 00 */ unk8 mUnk_00[0x24];
/* 24 */ unk8 mUnk_24;
/* 25 */ unk8 mUnk_25;
};
class UnkStruct_ov000_0208f820_04 {
public:
/* 00 */ u8 mUnk_00[4];
/* 04 */ u8 mUnk_04[4];
/* 08 */ unk32 mUnk_08;
/* 0c */ ItemId mItemId;
/* 14 */
UnkStruct_ov000_0208f820_04(unk32 param1, unk32 param2, unk32 param3, ItemId itemId) {
*(u32 *) this->mUnk_00 = param1;
*(u32 *) this->mUnk_04 = param2;
this->mUnk_08 = param3;
this->mItemId = itemId;
}
UnkStruct_ov000_0208f820_04() {};
};
class UnkStruct_ov000_0208f820 : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 04 */ UnkStruct_ov000_0208f820_04 mUnk_04;
/* 14 */ UnkStruct_ov000_0208f820_14 *mUnk_14;
/* 18 */ unk8 mUnk_18;
/* 18 */ unk8 mUnk_19;
/* 18 */ unk8 mUnk_1a;
/* 18 */ unk8 mUnk_1b;
/* 19 */ unk8 mUnk_19;
/* 1a */ unk8 mUnk_1a;
/* 1b */ unk8 mUnk_1b;
/* 1c */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 24 */ UnkStruct_ov000_0208f820_24 *mUnk_24;
/* 28 */ UnkStruct_ov000_0208f820_28 *mUnk_28;
/* 2c */ unk32 mUnk_2c;
/* 30 */ unk32 mUnk_30;
/* 2c */ UnkStruct_ov000_0208f820_2c *mUnk_2c;
/* 30 */ UnkStruct_ov000_0208f820_30 *mUnk_30;
/* 34 */ Vec3p *mUnk_34;
/* 38 */ unk32 mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */ unk32 mUnk_44;
/* 38 */ UnkStruct_ov000_0208f820_38 *mUnk_38;
/* 3c */ UnkStruct_ov000_0208f820_3c *mUnk_3c;
/* 40 */ UnkStruct_ov000_0208f820_40 *mUnk_40;
/* 44 */ unk32 *mUnk_44;
/* 48 */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual ~UnkStruct_ov000_0208f820();
/* 0c */ virtual void vfunc_0c();
/* 10 */ virtual void vfunc_10();
/* 0c */ virtual void vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1);
/* 10 */ virtual void vfunc_10(unk32 param1);
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 18 */ virtual void vfunc_18(unk32 param1, unk32 param2, unk32 param3);
/* 1c */ virtual void vfunc_1c();
/* 20 */
@@ -0,0 +1,11 @@
#pragma once
#include "types.h"
class UnkStruct_ov000_020b34c4 {
public:
/* 00 */ void *mUnk_00;
/* 04 */ unk32 mUnk_04;
};
extern UnkStruct_ov000_020b34c4 data_ov000_020b34c4;
@@ -0,0 +1,18 @@
#pragma once
#include "types.h"
class UnkStruct_ov000_020b51b8 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
void func_ov000_0206d274(unk32 param1);
void func_ov000_0206c96c(unk32 param1);
void func_ov000_0206c9a8(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
};
extern UnkStruct_ov000_020b51b8 data_ov000_020b51b8;
@@ -0,0 +1,10 @@
#pragma once
#include "types.h"
class UnkStruct_ov000_020b51c0 {
public:
unk32 func_02002f04();
};
extern UnkStruct_ov000_020b51c0 data_ov000_020b51c0;
+1 -1
View File
@@ -114,7 +114,7 @@ typedef struct {
extern const Vec3p gVec3p_ZERO;
void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out);
void Vec3p_Add(Vec3p *a, const Vec3p *b, Vec3p *out);
void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out);
q20 Vec3p_Dot(Vec3p *a, Vec3p *b);
void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out);
+14
View File
@@ -0,0 +1,14 @@
#pragma once
#define EUR 0
#define JP 1
#define USA 2
#ifndef VERSION
#warning "VERSION is not defined, check configure.py!"
#define VERSION EUR
#endif
#define IS_EUR (VERSION == EUR)
#define IS_JP (VERSION == JP)
#define IS_USA (VERSION == USA)