mirror of
https://github.com/zeldaret/st
synced 2026-08-25 15:45:52 -04:00
Misc stuff 4 (#59)
* playrget progress and match treasuremanager remaining functions * some docs * fix build issues * random docs * match func_ov094_02172290 * random docs * actor cleanup * match freestanding item funcs * mType -> mpProfile * decompile random functions * docs and start of wip chest stuff * random docs * more random docs * match func_ov036_0211d0a8 * match func_ov036_0211d2dc & func_ov036_0211d570 * match func_ov110_02184a40 * random doc * document letter/stamps system * match func_ov001_020bb9f8 * fix build issues * decompile tres * start decomp chest base * fix regressions * name TRES * name UnkStruct_ov024_020d86b0 * name stamp types and update save struct stuff * name things and document BMG IDs
This commit is contained in:
+375
-127
@@ -3,6 +3,8 @@
|
||||
#include "Actor/ActorId.hpp"
|
||||
#include "Actor/ActorManager.hpp"
|
||||
#include "Actor/ActorUnkNSHD.hpp"
|
||||
#include "MainGame/MiscAdvManager.hpp"
|
||||
#include "MapObject/MapObjectChestBase.hpp"
|
||||
#include "MapObject/MapObjectManager.hpp"
|
||||
#include "Player/PlayerGet.hpp"
|
||||
#include "System/OverlayManager.hpp"
|
||||
@@ -13,11 +15,13 @@
|
||||
#include "Unknown/UnkStruct_027e09bc.hpp"
|
||||
#include "Unknown/UnkStruct_027e0cd8.hpp"
|
||||
#include "Unknown/UnkStruct_027e0cec.hpp"
|
||||
#include "Unknown/UnkStruct_027e0cf8.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b51b8.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b51c0.hpp"
|
||||
#include "versions.h"
|
||||
|
||||
#include <nitro/math.h>
|
||||
|
||||
struct UnkStruct_02186240 {
|
||||
@@ -26,6 +30,9 @@ struct UnkStruct_02186240 {
|
||||
};
|
||||
UnkStruct_02186240 data_ov110_02186240;
|
||||
|
||||
extern const char *data_ov000_020aa240; // .nsbtx
|
||||
extern const char *data_ov000_020aa248; // .nsbmd
|
||||
|
||||
extern "C" void func_ov000_0205ca74(unk32);
|
||||
extern "C" void func_01ffb6e4(unk32, const void *, void *);
|
||||
extern "C" void func_01ffc5a0(UnkSystem4 *, unk32, u16, void *, unk32);
|
||||
@@ -33,18 +40,15 @@ extern "C" void func_ov000_0208f820();
|
||||
extern "C" unk32 func_ov024_020d5354(unk32 *, u16 *);
|
||||
extern "C" void func_ov000_02058fc4(unk32 *, UnkStruct_PlayerGet_74 *, Vec3p *);
|
||||
extern unk32 *data_027e0958;
|
||||
extern "C" void func_ov024_020d6370(unk32 *, ItemId);
|
||||
extern unk32 *data_ov024_020d86b0;
|
||||
extern "C" void func_ov000_0208ba10(char *, void *, unk32);
|
||||
extern "C" unk32 func_ov000_020a4c00(ItemId itemId);
|
||||
extern "C" void func_02015ea8(unk32, unk16 *);
|
||||
extern "C" void func_ov000_0208ba10(void *, void *, unk32);
|
||||
extern "C" void func_02015ea8(unk32, void *);
|
||||
extern "C" void func_02015628(char *, char *, unk32, void *, size_t);
|
||||
extern "C" void func_02015664(char *, unk32);
|
||||
extern "C" void func_020156c8(char *, char *, unk32);
|
||||
extern "C" void func_020156f4(char *);
|
||||
extern "C" void func_02015644(char *);
|
||||
|
||||
extern "C" UnkResourceStruct *func_ov000_0205abcc(char *, char *, unk32, unk32, unk32);
|
||||
extern "C" UnkResourceStruct *func_ov000_0205abcc(void *, void *, unk32, unk32, unk32);
|
||||
extern "C" unk32 func_ov000_02077590(unk32);
|
||||
|
||||
static const unk32 data_ov110_02185dc4[1] = {8};
|
||||
@@ -56,14 +60,17 @@ static const UnkStruct_ov110_02185dc8 data_ov110_02185dc8[] = {
|
||||
{ItemId_AncientShield, ItemFlag_AncientShield}, {ItemId_PanFlute, ItemFlag_PanFlute},
|
||||
};
|
||||
|
||||
// non-matching
|
||||
ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
|
||||
s16 itemFlag_s16;
|
||||
ItemFlag itemFlag;
|
||||
ItemFlag temp_r0_5;
|
||||
u32 temp_r2;
|
||||
u32 i;
|
||||
static inline s16 GetItemFlag(ItemId itemId) {
|
||||
for (u32 i = 0; i < ARRAY_LEN(data_ov110_02185dc8); i++) {
|
||||
if (itemId == data_ov110_02185dc8[i].mItemId) {
|
||||
return data_ov110_02185dc8[i].mItemFlag;
|
||||
}
|
||||
}
|
||||
|
||||
return ItemFlag_None;
|
||||
}
|
||||
|
||||
ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
|
||||
switch (itemId) {
|
||||
case ItemId_NormalKey:
|
||||
this->func_ov000_020a87c8(1);
|
||||
@@ -128,7 +135,7 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
|
||||
}
|
||||
break;
|
||||
default:
|
||||
itemFlag = ItemManager::func_ov000_020a8984(itemId);
|
||||
ItemFlag itemFlag = ItemManager::func_ov000_020a8984(itemId);
|
||||
|
||||
if (itemFlag != ItemFlag_None) {
|
||||
this->func_ov000_020a863c(itemFlag);
|
||||
@@ -148,35 +155,28 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
|
||||
|
||||
if (this->mEquippedItem == ItemFlag_None) {
|
||||
this->mEquippedItem = itemFlag;
|
||||
data_ov024_020d8698->func_ov024_020cd458(itemFlag, 0);
|
||||
data_ov024_020d8698->func_ov024_020cd458(this->mEquippedItem, 0);
|
||||
}
|
||||
} else {
|
||||
itemFlag_s16 = ItemFlag_None;
|
||||
itemFlag = GetItemFlag(itemId);
|
||||
|
||||
for (i = 0; i < ARRAY_LEN(data_ov110_02185dc8); i++) {
|
||||
if (itemId == data_ov110_02185dc8[i].mItemId) {
|
||||
itemFlag_s16 = data_ov110_02185dc8[i].mItemFlag;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (itemFlag_s16 != ItemFlag_None) {
|
||||
this->func_ov000_020a863c(itemFlag_s16);
|
||||
if (itemFlag != ItemFlag_None) {
|
||||
this->func_ov000_020a863c(itemFlag);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
temp_r0_5 = ItemManager::func_ov110_02185db4(itemId);
|
||||
AdventureFlag advFlag = ItemManager::GetAdvFlagFromItem(itemId);
|
||||
|
||||
if (temp_r0_5 != 0) {
|
||||
temp_r0_5 &= 0xFFFF;
|
||||
SET_FLAG(data_027e09b8->mAdventureFlags, temp_r0_5);
|
||||
if (advFlag != AdventureFlag_Nothing) {
|
||||
advFlag &= 0xFFFF;
|
||||
SET_FLAG(data_027e09b8->mAdventureFlags, advFlag);
|
||||
}
|
||||
|
||||
data_027e0ce0->mUnk_34->func_ov110_02185d3c(itemId);
|
||||
data_ov000_020b6510->func_ov000_020aa0ac(itemId);
|
||||
func_ov024_020d6370(data_ov024_020d86b0, itemId);
|
||||
gpMiscAdvManager->GiveLetterOrPriceCard(itemId);
|
||||
|
||||
if (!GET_FLAG(this->mUnk_08, ItemFlag_LokomoSword) && itemId == ItemId_TearLight &&
|
||||
this->mTearsAmount == MAX_TEARS_OF_LIGHT && (gOverlayManager.mLoadedOverlays[OverlaySlot_8] == OverlayIndex_Tower)) {
|
||||
@@ -186,29 +186,246 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
static const unk32 data_ov110_02185de8[] = {
|
||||
0x30001, 0x30002, 0xB00D6, 0x8007A, 0x30003, 0x8007B, 0x8007C, 0x8007D, 0x8007E, 0x30004, 0x30005, 0x30006, 0x30007,
|
||||
0x30008, 0x30009, 0x3000A, 0x3000B, 0x3000C, 0x3000D, 0x3000E, 0x3000F, 0xD0000, 0xD0001, 0xD0002, 0xD0003, 0xF00EB,
|
||||
0x100000, 0x110000, 0x1C008E, 0x1E0048, 0x30010, 0x30011, 0x30012, 0x30013, 0x30014, 0x30015, 0x30016, 0x30017, 0xB00D7,
|
||||
0x30018, 0x30019, 0x3001A, 0x3001B, 0x3001C, 0x3001D, 0x3001E, 0x3001F, 0x30020, 0x30021, 0x30022, 0x30023, 0x30024,
|
||||
0x30025, 0x30026, 0x30027, 0x30028, 0x30029, 0x3002A, 0x3002B, 0x3002C, 0x3002D, 0x3002E, 0x3002F, 0x1400F7, 0x8007F,
|
||||
0x30030, 0x30031, 0x30032, 0x30033, 0x30034, 0x30035, 0x30036, 0x30037, 0x30038, 0x30039, 0x3003A, 0x3003B, 0x3003C,
|
||||
0x3003D, 0x3003E, 0x3003F, 0x30040, 0x30041, 0x30042, 0x30043, 0x30044, 0x30045, 0x30046, 0x30047, 0x1400F8, 0x30048,
|
||||
0x30049, 0x3004A, 0x3004B, 0x3004C, 0x3004D, 0xD0004, 0xD0005, 0x3004E, 0x3004F, 0x1400F9, 0xF00EC, 0x80080, 0x110001,
|
||||
0x1400FA, 0x100001, 0x30050, 0x30051, 0x30052, 0x30053, 0x30054, 0x30055, 0x30056, 0x30057, 0x30058, 0x030059, 0x3005A,
|
||||
// BMG IDs
|
||||
static const u32 sBMGItemMap[] = {
|
||||
BMG_ID(BMGGroup_maingame, 0x01), // ItemId_Nothing
|
||||
BMG_ID(BMGGroup_maingame, 0x02), // ItemId_NormalShield
|
||||
BMG_ID(BMGGroup_castle, 0xD6), // ItemId_NormalSword
|
||||
BMG_ID(BMGGroup_dungeon, 0x7A), // ItemId_Whirlwind
|
||||
BMG_ID(BMGGroup_maingame, 0x03), // ItemId_BombBag
|
||||
BMG_ID(BMGGroup_dungeon, 0x7B), // ItemId_NormalBow
|
||||
BMG_ID(BMGGroup_dungeon, 0x7C), // ItemId_Boomerang
|
||||
BMG_ID(BMGGroup_dungeon, 0x7D), // ItemId_Whip
|
||||
BMG_ID(BMGGroup_dungeon, 0x7E), // ItemId_SandRod
|
||||
BMG_ID(BMGGroup_maingame, 0x04), // ItemId_9
|
||||
BMG_ID(BMGGroup_maingame, 0x05), // ItemId_NormalKey
|
||||
BMG_ID(BMGGroup_maingame, 0x06), // ItemId_BossKey
|
||||
BMG_ID(BMGGroup_maingame, 0x07), // ItemId_GreenRupee
|
||||
BMG_ID(BMGGroup_maingame, 0x08), // ItemId_BlueRupee
|
||||
BMG_ID(BMGGroup_maingame, 0x09), // ItemId_RedRupee
|
||||
BMG_ID(BMGGroup_maingame, 0x0A), // ItemId_BigGreenRupee
|
||||
BMG_ID(BMGGroup_maingame, 0x0B), // ItemId_BigRedRupee
|
||||
BMG_ID(BMGGroup_maingame, 0x0C), // ItemId_BigGoldRupee
|
||||
BMG_ID(BMGGroup_maingame, 0x0D), // ItemId_ForceGem_18
|
||||
BMG_ID(BMGGroup_maingame, 0x0E), // ItemId_ForceGem_19
|
||||
BMG_ID(BMGGroup_maingame, 0x0F), // ItemId_ForceGem_20
|
||||
BMG_ID(BMGGroup_tower, 0x00), // ItemId_ForestGlyph
|
||||
BMG_ID(BMGGroup_tower, 0x01), // ItemId_SnowGlyph
|
||||
BMG_ID(BMGGroup_tower, 0x02), // ItemId_OceanGlyph
|
||||
BMG_ID(BMGGroup_tower, 0x03), // ItemId_FireGlyph
|
||||
BMG_ID(BMGGroup_forest, 0xEB), // ItemId_25
|
||||
BMG_ID(BMGGroup_snow, 0x00), // ItemId_26
|
||||
BMG_ID(BMGGroup_water, 0x00), // ItemId_27
|
||||
BMG_ID(BMGGroup_flame_fld, 0x8E), // ItemId_28
|
||||
BMG_ID(BMGGroup_desert, 0x48), // ItemId_29
|
||||
BMG_ID(BMGGroup_maingame, 0x10), // ItemId_FinalTrack
|
||||
BMG_ID(BMGGroup_maingame, 0x11), // ItemId_31
|
||||
BMG_ID(BMGGroup_maingame, 0x12), // ItemId_32
|
||||
BMG_ID(BMGGroup_maingame, 0x13), // ItemId_33
|
||||
BMG_ID(BMGGroup_maingame, 0x14), // ItemId_34
|
||||
BMG_ID(BMGGroup_maingame, 0x15), // ItemId_ForceGem_35
|
||||
BMG_ID(BMGGroup_maingame, 0x16), // ItemId_ForceGem_36
|
||||
BMG_ID(BMGGroup_maingame, 0x17), // ItemId_ForceGem_37
|
||||
BMG_ID(BMGGroup_castle, 0xD7), // ItemId_RecruitUniform
|
||||
BMG_ID(BMGGroup_maingame, 0x18), // ItemId_PostmasterLetter
|
||||
BMG_ID(BMGGroup_maingame, 0x19), // ItemId_HeartContainer
|
||||
BMG_ID(BMGGroup_maingame, 0x1A), // ItemId_QuiverMedium
|
||||
BMG_ID(BMGGroup_maingame, 0x1B), // ItemId_BombBagMedium
|
||||
BMG_ID(BMGGroup_maingame, 0x1C), // ItemId_ForceGem_43
|
||||
BMG_ID(BMGGroup_maingame, 0x1D), // ItemId_ForceGem_44
|
||||
BMG_ID(BMGGroup_maingame, 0x1E), // ItemId_ForceGem_45
|
||||
BMG_ID(BMGGroup_maingame, 0x1F), // ItemId_ForceGem_46
|
||||
BMG_ID(BMGGroup_maingame, 0x20), // ItemId_ForceGem_47
|
||||
BMG_ID(BMGGroup_maingame, 0x21), // ItemId_ForceGem_48
|
||||
BMG_ID(BMGGroup_maingame, 0x22), // ItemId_ForceGem_49
|
||||
BMG_ID(BMGGroup_maingame, 0x23), // ItemId_ForceGem_50
|
||||
BMG_ID(BMGGroup_maingame, 0x24), // ItemId_ForceGem_51
|
||||
BMG_ID(BMGGroup_maingame, 0x25), // ItemId_ForceGem_52
|
||||
BMG_ID(BMGGroup_maingame, 0x26), // ItemId_ForceGem_53
|
||||
BMG_ID(BMGGroup_maingame, 0x27), // ItemId_ForceGem_54
|
||||
BMG_ID(BMGGroup_maingame, 0x28), // ItemId_ForceGem_55
|
||||
BMG_ID(BMGGroup_maingame, 0x29), // ItemId_ForceGem_56
|
||||
BMG_ID(BMGGroup_maingame, 0x2A), // ItemId_ForceGem_57
|
||||
BMG_ID(BMGGroup_maingame, 0x2B), // ItemId_ForceGem_58
|
||||
BMG_ID(BMGGroup_maingame, 0x2C), // ItemId_ForceGem_59
|
||||
BMG_ID(BMGGroup_maingame, 0x2D), // ItemId_ForceGem_60
|
||||
BMG_ID(BMGGroup_maingame, 0x2E), // ItemId_ForceGem_61
|
||||
BMG_ID(BMGGroup_maingame, 0x2F), // ItemId_PanFlute
|
||||
BMG_ID(BMGGroup_village, 0xF7), // ItemId_StampBook
|
||||
BMG_ID(BMGGroup_dungeon, 0x7F), // ItemId_LightBow
|
||||
BMG_ID(BMGGroup_maingame, 0x30), // ItemId_LokomoSword
|
||||
BMG_ID(BMGGroup_maingame, 0x31), // ItemId_TenPriceCard
|
||||
BMG_ID(BMGGroup_maingame, 0x32), // ItemId_RedPotion
|
||||
BMG_ID(BMGGroup_maingame, 0x33), // ItemId_PurplePotion
|
||||
BMG_ID(BMGGroup_maingame, 0x34), // ItemId_YellowPotion
|
||||
BMG_ID(BMGGroup_maingame, 0x35), // ItemId_DemonFossil
|
||||
BMG_ID(BMGGroup_maingame, 0x36), // ItemId_StalfosSkull
|
||||
BMG_ID(BMGGroup_maingame, 0x37), // ItemId_StarFragment
|
||||
BMG_ID(BMGGroup_maingame, 0x38), // ItemId_BeeLarvae
|
||||
BMG_ID(BMGGroup_maingame, 0x39), // ItemId_WoodHeart
|
||||
BMG_ID(BMGGroup_maingame, 0x3A), // ItemId_DarkPearlLoop
|
||||
BMG_ID(BMGGroup_maingame, 0x3B), // ItemId_WhitePearlLoop
|
||||
BMG_ID(BMGGroup_maingame, 0x3C), // ItemId_RutoCrown
|
||||
BMG_ID(BMGGroup_maingame, 0x3D), // ItemId_DragonScale
|
||||
BMG_ID(BMGGroup_maingame, 0x3E), // ItemId_PirateNecklace
|
||||
BMG_ID(BMGGroup_maingame, 0x3F), // ItemId_PalaceDish
|
||||
BMG_ID(BMGGroup_maingame, 0x40), // ItemId_GoronAmber
|
||||
BMG_ID(BMGGroup_maingame, 0x41), // ItemId_MysticJade
|
||||
BMG_ID(BMGGroup_maingame, 0x42), // ItemId_AncientCoin
|
||||
BMG_ID(BMGGroup_maingame, 0x43), // ItemId_PricelessStone
|
||||
BMG_ID(BMGGroup_maingame, 0x44), // ItemId_RegalRing
|
||||
BMG_ID(BMGGroup_maingame, 0x45), // ItemId_ArrowsRefill
|
||||
BMG_ID(BMGGroup_maingame, 0x46), // ItemId_BombsRefill
|
||||
BMG_ID(BMGGroup_maingame, 0x47), // ItemId_SoldOutSign
|
||||
BMG_ID(BMGGroup_village, 0xF8), // ItemId_AncientShield
|
||||
BMG_ID(BMGGroup_maingame, 0x48), // ItemId_QuiverLarge
|
||||
BMG_ID(BMGGroup_maingame, 0x49), // ItemId_BombBagLarge
|
||||
BMG_ID(BMGGroup_maingame, 0x4A), // ItemId_RandCommonTreasure
|
||||
BMG_ID(BMGGroup_maingame, 0x4B), // ItemId_RandUncommonTreasure
|
||||
BMG_ID(BMGGroup_maingame, 0x4C), // ItemId_RandRareTreasure
|
||||
BMG_ID(BMGGroup_maingame, 0x4D), // ItemId_RandLegendaryTreasure
|
||||
BMG_ID(BMGGroup_tower, 0x04), // ItemId_TearLight
|
||||
BMG_ID(BMGGroup_tower, 0x05), // ItemId_LightCompass
|
||||
BMG_ID(BMGGroup_maingame, 0x4E), // ItemId_ScrollSpinAttack
|
||||
BMG_ID(BMGGroup_maingame, 0x4F), // ItemId_ScrollBeam
|
||||
BMG_ID(BMGGroup_village, 0xF9), // ItemId_LinebeckLetter
|
||||
BMG_ID(BMGGroup_forest, 0xEC), // ItemId_PanFluteSong_101
|
||||
BMG_ID(BMGGroup_dungeon, 0x80), // ItemId_PanFluteSong_102
|
||||
BMG_ID(BMGGroup_water, 0x01), // ItemId_PanFluteSong_103
|
||||
BMG_ID(BMGGroup_village, 0xFA), // ItemId_PanFluteSong_104
|
||||
BMG_ID(BMGGroup_snow, 0x01), // ItemId_PanFluteSong_105
|
||||
BMG_ID(BMGGroup_maingame, 0x50), // ItemId_RabbitNet
|
||||
BMG_ID(BMGGroup_maingame, 0x51), // ItemId_BeedleCard
|
||||
BMG_ID(BMGGroup_maingame, 0x52), // ItemId_SilverCard
|
||||
BMG_ID(BMGGroup_maingame, 0x53), // ItemId_GoldCard
|
||||
BMG_ID(BMGGroup_maingame, 0x54), // ItemId_PlatinumCard
|
||||
BMG_ID(BMGGroup_maingame, 0x55), // ItemId_DiamondCard
|
||||
BMG_ID(BMGGroup_maingame, 0x56), // ItemId_FreebieCard
|
||||
BMG_ID(BMGGroup_maingame, 0x57), // ItemId_QuintupleCard
|
||||
BMG_ID(BMGGroup_maingame, 0x58), // ItemId_CarbenLetter
|
||||
BMG_ID(BMGGroup_maingame, 0x59), // ItemId_RecruitUniform2
|
||||
BMG_ID(BMGGroup_maingame, 0x5A), // ItemId_EngineerUniform
|
||||
};
|
||||
|
||||
static const unk32 data_ov110_02185fbc[] = {
|
||||
0x000, 0x000, 0x003, 0x000, 0x000, 0x1A3, 0x000, 0x27B, 0x0CB, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
|
||||
0x000, 0x076, 0x077, 0x078, 0x00F, 0x010, 0x011, 0x012, 0x008, 0x009, 0x00A, 0x00B, 0x00C, 0x00D, 0x002, 0x01F, 0x020,
|
||||
0x021, 0x079, 0x07A, 0x07B, 0x000, 0x000, 0x000, 0x000, 0x000, 0x068, 0x069, 0x06A, 0x06B, 0x06C, 0x06D, 0x06E, 0x06F,
|
||||
0x070, 0x071, 0x072, 0x073, 0x074, 0x075, 0x0A6, 0x0A7, 0x0A8, 0x0A9, 0x0AA, 0x000, 0x000, 0x0B0, 0x0B1,
|
||||
};
|
||||
|
||||
static const unk32 data_ov110_021860c4[] = {
|
||||
0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
|
||||
0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x12D, 0x000, 0x000,
|
||||
0x03C, 0x000, 0x000, 0x000, 0x000, 0x000, 0x0D6, 0x194, 0x18E, 0x18F, 0x190, 0x191, 0x192, 0x193, 0x046, 0x000, 0x000,
|
||||
// Adventure Flags
|
||||
static const AdventureFlag sAdvFlagItemMap[] = {
|
||||
AdventureFlag_Nothing, // ItemId_Nothing
|
||||
AdventureFlag_Nothing, // ItemId_NormalShield
|
||||
AdventureFlag_ObtainedRecruitSword, // ItemId_NormalSword
|
||||
AdventureFlag_Nothing, // ItemId_Whirlwind
|
||||
AdventureFlag_Nothing, // ItemId_BombBag
|
||||
AdventureFlag_ObtainedBowAndArrows, // ItemId_NormalBow
|
||||
AdventureFlag_Nothing, // ItemId_Boomerang
|
||||
AdventureFlag_ObtainedWhip, // ItemId_Whip
|
||||
AdventureFlag_ObtainedSandWand, // ItemId_SandRod
|
||||
AdventureFlag_Nothing, // ItemId_9
|
||||
AdventureFlag_Nothing, // ItemId_NormalKey
|
||||
AdventureFlag_Nothing, // ItemId_BossKey
|
||||
AdventureFlag_Nothing, // ItemId_GreenRupee
|
||||
AdventureFlag_Nothing, // ItemId_BlueRupee
|
||||
AdventureFlag_Nothing, // ItemId_RedRupee
|
||||
AdventureFlag_Nothing, // ItemId_BigGreenRupee
|
||||
AdventureFlag_Nothing, // ItemId_BigRedRupee
|
||||
AdventureFlag_Nothing, // ItemId_BigGoldRupee
|
||||
AdventureFlag_ObtainedWadatsumiForceGem, // ItemId_ForceGem_18
|
||||
AdventureFlag_ObtainedNiboshiForceGem, // ItemId_ForceGem_19
|
||||
AdventureFlag_ObtainedGoronAdultMegaIceForceGem, // ItemId_ForceGem_20
|
||||
AdventureFlag_ObtainedForestGlyph, // ItemId_ForestGlyph
|
||||
AdventureFlag_ObtainedSnowGlyph, // ItemId_SnowGlyph
|
||||
AdventureFlag_ObtainedOceanGlyph, // ItemId_OceanGlyph
|
||||
AdventureFlag_ObtainedFireGlyph, // ItemId_FireGlyph
|
||||
AdventureFlag_CompletedForestRestorationSong, // ItemId_25
|
||||
AdventureFlag_CompletedOceanRestorationSong, // ItemId_26
|
||||
AdventureFlag_CompletedSnowRestorationSong, // ItemId_27
|
||||
AdventureFlag_CompletedFireRestorationSong, // ItemId_28
|
||||
AdventureFlag_CompletedSandRestorationSong, // ItemId_29
|
||||
AdventureFlag_OpenedDarkRealmPortal, // ItemId_FinalTrack
|
||||
AdventureFlag_ObtainedSpiritTrain, // ItemId_31
|
||||
AdventureFlag_ObtainedTrainCannon, // ItemId_32
|
||||
AdventureFlag_Unk_020, // ItemId_33
|
||||
AdventureFlag_ObtainedTrainWagon, // ItemId_34
|
||||
AdventureFlag_ObtainedFerrusForceGem2, // ItemId_ForceGem_35
|
||||
AdventureFlag_ObtainedKofuForceGem, // ItemId_ForceGem_36
|
||||
AdventureFlag_ObtainedChildGoronForceGem, // ItemId_ForceGem_37
|
||||
AdventureFlag_Nothing, // ItemId_RecruitUniform
|
||||
AdventureFlag_Nothing, // ItemId_PostmasterLetter
|
||||
AdventureFlag_Nothing, // ItemId_HeartContainer
|
||||
AdventureFlag_Nothing, // ItemId_QuiverMedium
|
||||
AdventureFlag_Nothing, // ItemId_BombBagMedium
|
||||
AdventureFlag_ObtainedLuciaForceGem, // ItemId_ForceGem_43
|
||||
AdventureFlag_ObtainedOrcaForceGem, // ItemId_ForceGem_44
|
||||
AdventureFlag_ObtainedCarbenForceGem, // ItemId_ForceGem_45
|
||||
AdventureFlag_ObtainedRaelForceGem, // ItemId_ForceGem_46
|
||||
AdventureFlag_ObtainedJoeForceGem, // ItemId_ForceGem_47
|
||||
AdventureFlag_ObtainedMonaForceGem, // ItemId_ForceGem_48
|
||||
AdventureFlag_ObtainedHarryForceGem, // ItemId_ForceGem_49
|
||||
AdventureFlag_ObtainedMashForceGem, // ItemId_ForceGem_50
|
||||
AdventureFlag_ObtainedFerrusForceGem1, // ItemId_ForceGem_51
|
||||
AdventureFlag_ObtainedYekoForceGem, // ItemId_ForceGem_52
|
||||
AdventureFlag_ObtainedNokoForceGem, // ItemId_ForceGem_53
|
||||
AdventureFlag_ObtainedGoronAdultAnoukiForceGem, // ItemId_ForceGem_54
|
||||
AdventureFlag_ObtainedSteemForceGem, // ItemId_ForceGem_55
|
||||
AdventureFlag_ObtainedLinebeckForceGem, // ItemId_ForceGem_56
|
||||
AdventureFlag_ObtainedAnjeanDesertForceGem, // ItemId_ForceGem_57
|
||||
AdventureFlag_Unk_0A7, // ItemId_ForceGem_58
|
||||
AdventureFlag_Unk_0A8, // ItemId_ForceGem_59
|
||||
AdventureFlag_Unk_0A9, // ItemId_ForceGem_60
|
||||
AdventureFlag_Unk_0AA, // ItemId_ForceGem_61
|
||||
AdventureFlag_Nothing, // ItemId_PanFlute
|
||||
AdventureFlag_Nothing, // ItemId_StampBook
|
||||
AdventureFlag_ObtainedBowOfLight, // ItemId_LightBow
|
||||
AdventureFlag_Unk_0B1, // ItemId_LokomoSword
|
||||
AdventureFlag_Nothing, // ItemId_TenPriceCard
|
||||
AdventureFlag_Nothing, // ItemId_RedPotion
|
||||
AdventureFlag_Nothing, // ItemId_PurplePotion
|
||||
AdventureFlag_Nothing, // ItemId_YellowPotion
|
||||
AdventureFlag_Nothing, // ItemId_DemonFossil
|
||||
AdventureFlag_Nothing, // ItemId_StalfosSkull
|
||||
AdventureFlag_Nothing, // ItemId_StarFragment
|
||||
AdventureFlag_Nothing, // ItemId_BeeLarvae
|
||||
AdventureFlag_Nothing, // ItemId_WoodHeart
|
||||
AdventureFlag_Nothing, // ItemId_DarkPearlLoop
|
||||
AdventureFlag_Nothing, // ItemId_WhitePearlLoop
|
||||
AdventureFlag_Nothing, // ItemId_RutoCrown
|
||||
AdventureFlag_Nothing, // ItemId_DragonScale
|
||||
AdventureFlag_Nothing, // ItemId_PirateNecklace
|
||||
AdventureFlag_Nothing, // ItemId_PalaceDish
|
||||
AdventureFlag_Nothing, // ItemId_GoronAmber
|
||||
AdventureFlag_Nothing, // ItemId_MysticJade
|
||||
AdventureFlag_Nothing, // ItemId_AncientCoin
|
||||
AdventureFlag_Nothing, // ItemId_PricelessStone
|
||||
AdventureFlag_Nothing, // ItemId_RegalRing
|
||||
AdventureFlag_Nothing, // ItemId_ArrowsRefill
|
||||
AdventureFlag_Nothing, // ItemId_BombsRefill
|
||||
AdventureFlag_Nothing, // ItemId_SoldOutSign
|
||||
AdventureFlag_Nothing, // ItemId_AncientShield
|
||||
AdventureFlag_Nothing, // ItemId_QuiverLarge
|
||||
AdventureFlag_Nothing, // ItemId_BombBagLarge
|
||||
AdventureFlag_Nothing, // ItemId_RandCommonTreasure
|
||||
AdventureFlag_Nothing, // ItemId_RandUncommonTreasure
|
||||
AdventureFlag_Nothing, // ItemId_RandRareTreasure
|
||||
AdventureFlag_Nothing, // ItemId_RandLegendaryTreasure
|
||||
AdventureFlag_Nothing, // ItemId_TearLight
|
||||
AdventureFlag_ObtainedCompassOfLight, // ItemId_LightCompass
|
||||
AdventureFlag_Nothing, // ItemId_ScrollSpinAttack
|
||||
AdventureFlag_Nothing, // ItemId_ScrollBeam
|
||||
AdventureFlag_ObtainedLinebecksLetter, // ItemId_LinebeckLetter
|
||||
AdventureFlag_Nothing, // ItemId_PanFluteSong_101
|
||||
AdventureFlag_Nothing, // ItemId_PanFluteSong_102
|
||||
AdventureFlag_Nothing, // ItemId_PanFluteSong_103
|
||||
AdventureFlag_Nothing, // ItemId_PanFluteSong_104
|
||||
AdventureFlag_Nothing, // ItemId_PanFluteSong_105
|
||||
AdventureFlag_ObtainedRabbitNet, // ItemId_RabbitNet
|
||||
AdventureFlag_ObtainedBeedlePointsCard, // ItemId_BeedleCard
|
||||
AdventureFlag_Unk_18E, // ItemId_SilverCard
|
||||
AdventureFlag_Unk_18F, // ItemId_GoldCard
|
||||
AdventureFlag_Unk_190, // ItemId_PlatinumCard
|
||||
AdventureFlag_Unk_191, // ItemId_DiamondCard
|
||||
AdventureFlag_ObtainedBeedleFreebieCard, // ItemId_FreebieCard
|
||||
AdventureFlag_ObtainedBeedleQuintuplePointsCard, // ItemId_QuintupleCard
|
||||
AdventureFlag_ReceivedCarbensLetter, // ItemId_CarbenLetter
|
||||
AdventureFlag_Nothing, // ItemId_RecruitUniform2
|
||||
AdventureFlag_Nothing, // ItemId_EngineerUniform
|
||||
};
|
||||
|
||||
// non-matching
|
||||
@@ -243,9 +460,9 @@ ARM PlayerGet::~PlayerGet() {
|
||||
|
||||
UnkStruct_ov000_0208f820_28_98 *pUnk_28_98 = this->mUnk_28->mUnk_98;
|
||||
if (pUnk_28_98 != 0) {
|
||||
pUnk_28_98->mUnk_40 &= ~0x10;
|
||||
pUnk_28_98->mUnk_38.mUnk_40 &= ~0x10;
|
||||
|
||||
if (pUnk_28_98->mUnk_40 == 0) {
|
||||
if (pUnk_28_98->mUnk_38.mUnk_40 == 0) {
|
||||
// real?
|
||||
pUnk_28_98->mUnk_38.~UnkStruct_PlayerGet_64();
|
||||
}
|
||||
@@ -273,24 +490,25 @@ ARM bool PlayerGet::func_ov110_02186b8c() {
|
||||
}
|
||||
#endif
|
||||
|
||||
// https://decomp.me/scratch/ZAW2N
|
||||
ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
|
||||
ItemManager *pItemManager;
|
||||
ItemId itemId;
|
||||
ItemManager *pItemManager;
|
||||
Actor *iVar10;
|
||||
Vec3p *pUnk_38;
|
||||
Vec3p *pUnk_3c;
|
||||
char auStack_108[12];
|
||||
Vec3p VStack_fc;
|
||||
unk32 uStack_f0[4];
|
||||
unk32 auStack_30[5];
|
||||
|
||||
switch (param1->mUnk_04) {
|
||||
case 0x39:
|
||||
*(u32 *) this->mUnk_54.mUnk_00 = param1->mUnk_10.x;
|
||||
*(u32 *) this->mUnk_54.mUnk_04 = param1->mUnk_10.y;
|
||||
this->mUnk_54.mUnk_08 = param1->mUnk_10.z;
|
||||
pItemManager = this->mUnk_28->pItemManager;
|
||||
itemId = param1->mUnk_1C;
|
||||
Vec3p temp;
|
||||
itemId = param1->mUnk_1C;
|
||||
temp.x = param1->mUnk_10.x;
|
||||
temp.y = param1->mUnk_10.y;
|
||||
temp.z = param1->mUnk_10.z;
|
||||
this->mUnk_54.mUnk_08 = temp.z;
|
||||
this->mUnk_54.mUnk_00_s32 = temp.x;
|
||||
this->mUnk_54.mUnk_04_s32 = temp.y;
|
||||
pItemManager = this->mUnk_28->pItemManager;
|
||||
|
||||
switch (itemId) {
|
||||
case ItemId_BombBag:
|
||||
@@ -323,8 +541,9 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
|
||||
this->mUnk_54.mItemId = itemId;
|
||||
this->mUnk_70 = 0;
|
||||
this->mUnk_2C->mUnk_58 = 0;
|
||||
func_ov000_0208ba10(auStack_108, &this->mUnk_24->mUnk_25, 0);
|
||||
this->mUnk_40->mUnk_00 = 0x8000;
|
||||
char auStack_108[12];
|
||||
func_ov000_0208ba10(auStack_108, &this->mUnk_24->mUnk_94, 0);
|
||||
*(s16 *) &this->mUnk_40->mUnk_00 = 0x8000;
|
||||
|
||||
pUnk_38 = this->mUnk_38;
|
||||
pUnk_38->x = 0;
|
||||
@@ -335,7 +554,7 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
|
||||
pUnk_3c->y = 0;
|
||||
pUnk_3c->z = 0;
|
||||
|
||||
if (((*(u16 *) this->mUnk_54.mUnk_00 << 0x10) >> 0x1E) != 1) {
|
||||
if (((u32) (u16) this->mUnk_54.mUnk_00_s16 << 16) >> 30 != 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -352,48 +571,44 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
|
||||
break;
|
||||
case 0x3A:
|
||||
if (this->mUnk_54.mItemId != ItemId_Nothing) {
|
||||
if (func_ov000_020a4c00(this->mUnk_54.mItemId) == 0) {
|
||||
this->mUnk_8C.vfunc_08(0);
|
||||
} else {
|
||||
unk32 niVar10;
|
||||
u32 niVar10 = func_ov000_020a4c00(this->mUnk_54.mItemId);
|
||||
|
||||
if (niVar10 == GIModel_None) {
|
||||
this->mUnk_8C.vfunc_08(NULL);
|
||||
} else {
|
||||
if (this->mUnk_54.mItemId == ItemId_LokomoSword) {
|
||||
niVar10 = func_ov000_020a4c00(ItemId_NormalSword);
|
||||
}
|
||||
|
||||
unk16 auStack_110[2];
|
||||
unk16 acStack_a6[2];
|
||||
unk16 auStack_48[2];
|
||||
unk16 auStack_64[2];
|
||||
unk16 acStack_e0[2];
|
||||
size_t len;
|
||||
wchar_t pathBuffer[32];
|
||||
char modelPath[64];
|
||||
u16 idStr[5];
|
||||
|
||||
auStack_110[0] = 0;
|
||||
auStack_110[1] = 0;
|
||||
func_02015ea8(niVar10, auStack_110);
|
||||
acStack_a6[1] = 0;
|
||||
strncpy((char *) acStack_e0, "Player/get/", 0x39);
|
||||
len = strlen((char *) acStack_e0);
|
||||
strncpy((char *) acStack_e0 + len, (char *) auStack_110, 0x39 - len);
|
||||
auStack_64[1] = 0;
|
||||
strncpy((char *) acStack_a6, (char *) acStack_e0, 0x3f);
|
||||
len = strlen((char *) acStack_a6);
|
||||
strncpy((char *) acStack_a6 + len, ".nsbmd", 0x3f - len);
|
||||
func_02015628((char *) auStack_64, (char *) acStack_a6, 0, &data_ov110_02186240,
|
||||
sizeof(UnkStruct_02186240));
|
||||
func_02015664((char *) auStack_64, 0x10);
|
||||
strncpy((char *) acStack_a6, (char *) acStack_e0, 0x3f);
|
||||
len = strlen((char *) acStack_a6);
|
||||
strncpy((char *) acStack_a6 + len, ".nsbtx", 0x3f - len);
|
||||
func_020156c8((char *) auStack_48, (char *) acStack_a6, 0);
|
||||
idStr[0] = 0;
|
||||
idStr[1] = 0;
|
||||
func_02015ea8(niVar10, idStr);
|
||||
idStr[4] = '\0';
|
||||
|
||||
unk32 var_r1_2;
|
||||
UnkResourceStruct *ret =
|
||||
func_ov000_0205abcc((char *) auStack_64, (char *) auStack_48, 0, 1, this->mUnk_30->mUnk_24);
|
||||
strncpy((char *) pathBuffer, "Player/get/", 0x39);
|
||||
size_t l = strlen((char *) pathBuffer);
|
||||
strncpy((char *) pathBuffer + l, (char *) idStr, 0x39 - l);
|
||||
pathBuffer[31] = '\0';
|
||||
|
||||
this->mUnk_8C.vfunc_08(GetUnkPointer1_Impl(ret));
|
||||
func_020156f4((char *) auStack_48);
|
||||
func_02015644((char *) auStack_64);
|
||||
strncpy(modelPath, (char *) pathBuffer, 0x3F);
|
||||
l = strlen(modelPath);
|
||||
strncpy(modelPath + l, data_ov000_020aa248, 0x3F - l);
|
||||
|
||||
UnkFileSystem4 fs4(modelPath, 0, (unk32) &data_ov110_02186240, sizeof(UnkStruct_02186240));
|
||||
fs4.vfunc_08(0x10);
|
||||
|
||||
strncpy(modelPath, (char *) pathBuffer, 0x3F);
|
||||
l = strlen(modelPath);
|
||||
strncpy(modelPath + l, data_ov000_020aa240, 0x3F - l);
|
||||
|
||||
UnkFileSystem2 fs2(modelPath, 0);
|
||||
UnkResourceStruct *res = func_ov000_0205abcc((void *) &fs4, (void *) &fs2, 0, 1, this->mUnk_30->mUnk_24);
|
||||
|
||||
this->mUnk_8C.vfunc_08(GetUnkPointer1_Impl(res));
|
||||
}
|
||||
|
||||
switch (this->mUnk_54.mItemId) {
|
||||
@@ -409,8 +624,7 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
|
||||
}
|
||||
|
||||
UnkStruct_027e09bc_0c *uVar11 = data_027e09bc->mUnk_0C;
|
||||
unk32 uVar6 = func_ov000_02077590(4);
|
||||
uVar11->func_ov000_0207834c(this->mUnk_34, uVar6, 0);
|
||||
uVar11->func_ov000_0207834c(this->mUnk_34, func_ov000_02077590(4), 0);
|
||||
|
||||
UnkStruct_PlayerGet_48 *pUnk_48 = this->mUnk_48;
|
||||
pUnk_48->mUnk_42 = 0x1000;
|
||||
@@ -418,19 +632,48 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
|
||||
pUnk_48->mUnk_5E = 0x1000;
|
||||
pUnk_48->mUnk_63 = 0;
|
||||
|
||||
if (this->mUnk_44 != NULL) {
|
||||
if (this->mUnk_44->mUnk_00 != NULL) {
|
||||
this->mUnk_64.func_ov000_0208a100();
|
||||
}
|
||||
|
||||
// pUnk24 = this->mUnk_24;
|
||||
bool bVar8;
|
||||
bool var_r1_4 = 0;
|
||||
void **temp_r5_2 = this->mUnk_24->mUnk_78;
|
||||
if (temp_r5_2 != NULL) {
|
||||
u16 temp_r6 = *(u16 *) temp_r5_2;
|
||||
bool var_r3 = 1;
|
||||
bool var_r2 = 0;
|
||||
|
||||
// ...
|
||||
if ((temp_r6 != 0x100) && (temp_r6 != 0x101)) {
|
||||
var_r3 = 0;
|
||||
}
|
||||
|
||||
UnkStruct_ov000_0208f820_28_98 *pUnk28_98 = this->mUnk_28->mUnk_98;
|
||||
if (!bVar8 && pUnk28_98 != NULL) {
|
||||
pUnk28_98->mUnk_40 |= 0x10;
|
||||
this->mUnk_64.func_ov000_0208a100();
|
||||
if (var_r3 != 0) {
|
||||
bool var_r0_2;
|
||||
|
||||
if (temp_r6 == 0x101) {
|
||||
var_r0_2 = 0;
|
||||
} else {
|
||||
var_r0_2 = ((u16 *) temp_r5_2)[1];
|
||||
}
|
||||
|
||||
if (var_r0_2 == 1) {
|
||||
var_r2 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (var_r2 != 0) {
|
||||
var_r1_4 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!var_r1_4) {
|
||||
UnkStruct_ov000_0208f820_28_98 *pUnk28_98 = this->mUnk_28->mUnk_98;
|
||||
|
||||
if (pUnk28_98 != NULL) {
|
||||
UnkStruct_PlayerGet_64 *ptr = &pUnk28_98->mUnk_38;
|
||||
ptr->mUnk_40 |= 0x10;
|
||||
this->mUnk_64.func_ov000_0208a100();
|
||||
}
|
||||
}
|
||||
|
||||
this->mUnk_73 = 0;
|
||||
@@ -441,28 +684,33 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
|
||||
case ItemId_27:
|
||||
case ItemId_28:
|
||||
case ItemId_29:
|
||||
data_ov000_020b51b8.func_ov000_0206c96c(data_027e0cd8->mUnk_0C->func_ov000_02080a44());
|
||||
this->mUnk_73 = 1;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
data_ov000_020b51b8.func_ov000_0206c96c(data_027e0cd8->mUnk_0C->func_ov000_02080a44());
|
||||
this->mUnk_73 = 1;
|
||||
break;
|
||||
case 0x3B:
|
||||
this->mUnk_72 = 0;
|
||||
|
||||
if (this->mUnk_54.mItemId != ItemId_Nothing) {
|
||||
unk32 uStack_f0[4];
|
||||
Vec3p VStack_fc;
|
||||
|
||||
Vec3p_Add(this->mUnk_34, &data_ov110_021861ec.mUnk_00, &VStack_fc);
|
||||
data_027e0cec->func_ov000_0209feac(0x874, &VStack_fc, 1, 0, 0);
|
||||
uStack_f0[0] = 0x870;
|
||||
uStack_f0[1] = 0x871;
|
||||
uStack_f0[2] = 0x872;
|
||||
uStack_f0[0] = 0x870;
|
||||
uStack_f0[3] = 0x873;
|
||||
data_027e0cec->func_ov000_020a0000(this->mUnk_EC, this->mUnk_FC, uStack_f0, &VStack_fc, 1);
|
||||
data_027e0cec->func_ov000_020a0000(this->mUnk_EC, &this->mUnk_FC, uStack_f0, &VStack_fc, 1);
|
||||
}
|
||||
|
||||
data_027e0cf8->func_ov024_020c7828(this->mUnk_54.mItemId);
|
||||
UnkStruct_ov000_02067bc4::UnkStruct1 auStack_30;
|
||||
data_ov000_020b504c.func_ov000_02067cf8(ItemManager::func_ov110_02185da4(this->mUnk_54.mItemId), 0, &auStack_30);
|
||||
data_ov000_020b504c.func_ov000_02067cf8(ItemManager::GetBmgIDFromItem(this->mUnk_54.mItemId), 0, &auStack_30);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -473,7 +721,6 @@ const UnkStruct_ov110_021861ec data_ov110_021861ec(0x5E3, 0x152D, 0xCD);
|
||||
|
||||
ARM void PlayerGet::vfunc_10(unk32 param1, unk32 param2) {
|
||||
unk32 var_r1;
|
||||
MapObject **temp_r0_6;
|
||||
s32 temp_r5;
|
||||
bool temp_r6;
|
||||
s32 var_r0;
|
||||
@@ -644,9 +891,9 @@ ARM void PlayerGet::vfunc_10(unk32 param1, unk32 param2) {
|
||||
}
|
||||
|
||||
if (*(u16 *) this->mUnk_54.mUnk_00 == 0x1000) {
|
||||
UnkStruct_func_01fff498 stack;
|
||||
stack.ptrIndex = this->mUnk_54.mUnk_00[0];
|
||||
stack.valueIndex = this->mUnk_54.mUnk_00[1];
|
||||
Vec2b stack;
|
||||
stack.x = this->mUnk_54.mUnk_00[0];
|
||||
stack.y = this->mUnk_54.mUnk_00[1];
|
||||
|
||||
MapObject *pMapObj = gpMapObjManager->func_01fff498(stack);
|
||||
|
||||
@@ -665,10 +912,11 @@ ARM void PlayerGet::vfunc_10(unk32 param1, unk32 param2) {
|
||||
}
|
||||
|
||||
if (var_r5_2 != MapObjectId_None) {
|
||||
data_ov000_020b34c4.mUnk_04 = var_r5_2;
|
||||
temp_r0_6 = gpMapObjManager->func_01fff520(&data_ov000_020b34c4, gpMapObjManager->mMapObjTable);
|
||||
data_ov000_020b34c4.mUnk_04 = var_r5_2;
|
||||
MapObjectChestBase **temp_r0_6 = (MapObjectChestBase **) gpMapObjManager->func_01fff520(
|
||||
&data_ov000_020b34c4, gpMapObjManager->mMapObjTable);
|
||||
|
||||
if (temp_r0_6 == gpMapObjManager->mUnk_08) {
|
||||
if ((MapObject **) temp_r0_6 == gpMapObjManager->mUnk_08) {
|
||||
(*temp_r0_6)->func_ov031_02103878();
|
||||
}
|
||||
}
|
||||
@@ -797,10 +1045,10 @@ THUMB void UnkStruct_027e0ce0_34::func_ov110_02185d3c(ItemId itemId) {
|
||||
}
|
||||
}
|
||||
|
||||
ARM unk32 ItemManager::func_ov110_02185da4(unk32 param1) {
|
||||
return data_ov110_02185de8[param1];
|
||||
ARM u32 ItemManager::GetBmgIDFromItem(ItemId itemId) {
|
||||
return sBMGItemMap[itemId];
|
||||
}
|
||||
|
||||
ARM ItemFlag ItemManager::func_ov110_02185db4(ItemId itemId) {
|
||||
return data_ov110_02185fbc[itemId];
|
||||
ARM AdventureFlag ItemManager::GetAdvFlagFromItem(ItemId itemId) {
|
||||
return sAdvFlagItemMap[itemId];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user