mirror of
https://github.com/zeldaret/st
synced 2026-06-29 19:22:20 -04:00
645ed65b76
* 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
358 lines
11 KiB
C++
358 lines
11 KiB
C++
//! TODO: This file was generated automatically and might contain errors
|
|
|
|
#include "Actor/ActorUnkSHIT.hpp"
|
|
#include "Item/ItemManager.hpp"
|
|
#include "MainGame/MiscAdvManager.hpp"
|
|
#include "Save/AdventureFlags.hpp"
|
|
#include "System/SysNew.hpp"
|
|
#include "Unknown/UnkStruct_027e09b8.hpp"
|
|
#include "Unknown/UnkStruct_027e0ce0.hpp"
|
|
|
|
ARM DECL_PROFILE(ActorProfileUnkSHIT);
|
|
|
|
ARM Actor *ActorProfileUnkSHIT::Create() {
|
|
return new(HeapIndex_2) ActorUnkSHIT();
|
|
}
|
|
|
|
ARM ActorProfileUnkSHIT::ActorProfileUnkSHIT() :
|
|
ActorProfile_Derived1(ActorId_SHIT) {}
|
|
|
|
ARM ActorUnkSHIT::ActorUnkSHIT() {}
|
|
|
|
ARM void ActorUnkSHIT::func_ov036_0211c1fc(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c21c(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c280(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c580(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c7dc(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c7e4(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c938(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c94c(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c96c(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c970(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c974(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c978(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c97c(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c980(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c984(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c994(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c998(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c9ac(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c9cc(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211c9d4(void) {}
|
|
ARM unk32 ActorUnkSHIT::func_ov036_0211cddc(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211cdfc(void) {}
|
|
|
|
ARM u16 ActorUnkSHIT::func_ov036_0211ceec(void) {
|
|
switch (this->mItemId) {
|
|
case ItemId_NormalShield: {
|
|
u16 param = this->mUnk_5C.mParams[3];
|
|
if (param == 4) {
|
|
return 200;
|
|
}
|
|
if (param == 2) {
|
|
return 150;
|
|
}
|
|
return 80;
|
|
}
|
|
case ItemId_RedPotion:
|
|
return 100;
|
|
case ItemId_PurplePotion:
|
|
return 150;
|
|
case ItemId_YellowPotion:
|
|
return 200;
|
|
case ItemId_TenPriceCard:
|
|
return 100;
|
|
case ItemId_DemonFossil:
|
|
case ItemId_StalfosSkull:
|
|
case ItemId_StarFragment:
|
|
case ItemId_BeeLarvae:
|
|
case ItemId_WoodHeart:
|
|
case ItemId_DarkPearlLoop:
|
|
case ItemId_WhitePearlLoop:
|
|
case ItemId_RutoCrown:
|
|
case ItemId_DragonScale:
|
|
case ItemId_PirateNecklace:
|
|
case ItemId_PalaceDish:
|
|
case ItemId_GoronAmber:
|
|
case ItemId_MysticJade:
|
|
case ItemId_AncientCoin:
|
|
case ItemId_PricelessStone:
|
|
case ItemId_RegalRing: {
|
|
return data_ov000_020b6510->func_ov000_020a9b4c(this->mItemId - ItemId_DemonFossil) * 2;
|
|
}
|
|
case ItemId_HeartContainer:
|
|
return 2000;
|
|
case ItemId_BombsRefill: {
|
|
u16 param = this->mUnk_5C.mParams[3];
|
|
|
|
if (param == 4) {
|
|
return 200;
|
|
}
|
|
|
|
if (param == 3) {
|
|
return 150;
|
|
}
|
|
|
|
return 100;
|
|
}
|
|
case ItemId_ArrowsRefill:
|
|
return 50;
|
|
case ItemId_QuiverMedium:
|
|
case ItemId_QuiverLarge:
|
|
return 2000;
|
|
case ItemId_BombBag:
|
|
case ItemId_BombBagMedium:
|
|
case ItemId_BombBagLarge:
|
|
return 500;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return 9999;
|
|
}
|
|
|
|
ARM unk32 ActorUnkSHIT::func_ov036_0211d0a8(void) {
|
|
if (this->mUnk_2D3) {
|
|
return 0x12;
|
|
}
|
|
|
|
switch (this->mItemId) {
|
|
case ItemId_SoldOutSign:
|
|
return 0x12;
|
|
case ItemId_NormalShield:
|
|
return 0x08;
|
|
case ItemId_RedPotion:
|
|
return 0x09;
|
|
case ItemId_PurplePotion:
|
|
return 0x0A;
|
|
case ItemId_YellowPotion:
|
|
return 0x0B;
|
|
case ItemId_TenPriceCard:
|
|
return 0x13;
|
|
case ItemId_DemonFossil:
|
|
case ItemId_StalfosSkull:
|
|
case ItemId_StarFragment:
|
|
case ItemId_BeeLarvae:
|
|
case ItemId_WoodHeart:
|
|
case ItemId_DarkPearlLoop:
|
|
case ItemId_WhitePearlLoop:
|
|
case ItemId_RutoCrown:
|
|
case ItemId_DragonScale:
|
|
case ItemId_PirateNecklace:
|
|
case ItemId_PalaceDish:
|
|
case ItemId_GoronAmber:
|
|
case ItemId_MysticJade:
|
|
case ItemId_AncientCoin:
|
|
case ItemId_PricelessStone:
|
|
case ItemId_RegalRing:
|
|
return 0x06;
|
|
case ItemId_HeartContainer:
|
|
return 0x07;
|
|
case ItemId_BombsRefill:
|
|
return 0x05;
|
|
case ItemId_ArrowsRefill:
|
|
return 0x03;
|
|
case ItemId_QuiverMedium:
|
|
case ItemId_QuiverLarge:
|
|
return 0x02;
|
|
case ItemId_BombBag:
|
|
case ItemId_BombBagMedium:
|
|
case ItemId_BombBagLarge:
|
|
return 0x04;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return 0x0D;
|
|
}
|
|
|
|
ARM void ActorUnkSHIT::func_ov036_0211d22c(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211d254(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211d270(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211d28c(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211d2a8(void) {}
|
|
|
|
ARM bool ActorUnkSHIT::func_ov036_0211d2dc(void) {
|
|
ItemManager *pIVar4 = data_027e0ce0->mUnk_2C;
|
|
|
|
switch (this->mItemId) {
|
|
case ItemId_NormalShield:
|
|
if (GET_FLAG(pIVar4->mUnk_08, ItemFlag_Shield)) {
|
|
return false;
|
|
}
|
|
|
|
break;
|
|
case ItemId_RedPotion:
|
|
case ItemId_PurplePotion:
|
|
case ItemId_YellowPotion:
|
|
if (pIVar4->func_ov000_020a8948()) {
|
|
return false;
|
|
}
|
|
|
|
break;
|
|
case ItemId_TenPriceCard:
|
|
if (gpMiscAdvManager->GotMaxPriceCards()) {
|
|
return false;
|
|
}
|
|
|
|
break;
|
|
case ItemId_DemonFossil:
|
|
case ItemId_StalfosSkull:
|
|
case ItemId_StarFragment:
|
|
case ItemId_BeeLarvae:
|
|
case ItemId_WoodHeart:
|
|
case ItemId_DarkPearlLoop:
|
|
case ItemId_WhitePearlLoop:
|
|
case ItemId_RutoCrown:
|
|
case ItemId_DragonScale:
|
|
case ItemId_PirateNecklace:
|
|
case ItemId_PalaceDish:
|
|
case ItemId_GoronAmber:
|
|
case ItemId_MysticJade:
|
|
case ItemId_AncientCoin:
|
|
if (data_ov000_020b6510->func_ov000_020a9ca4(this->mItemId - ItemId_DemonFossil)) {
|
|
return false;
|
|
}
|
|
|
|
break;
|
|
case ItemId_PricelessStone:
|
|
case ItemId_RegalRing:
|
|
return false;
|
|
case ItemId_HeartContainer:
|
|
if (this->mUnk_5C.mParams[3] == 5) {
|
|
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_10F)) {
|
|
return false;
|
|
}
|
|
} else {
|
|
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_10E)) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
break;
|
|
case ItemId_BombsRefill:
|
|
if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bombs)) {
|
|
return false;
|
|
}
|
|
|
|
{
|
|
u8 amount = pIVar4->mBombAmount;
|
|
if (amount >= pIVar4->func_ov000_020a8748()) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
break;
|
|
case ItemId_ArrowsRefill:
|
|
if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bow)) {
|
|
return false;
|
|
}
|
|
|
|
{
|
|
u8 amount = pIVar4->mArrowAmount;
|
|
if (amount >= pIVar4->func_ov000_020a8728()) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
break;
|
|
case ItemId_QuiverMedium:
|
|
case ItemId_QuiverLarge:
|
|
if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bow)) {
|
|
return false;
|
|
}
|
|
|
|
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtGoronShopQuiver)) {
|
|
return false;
|
|
}
|
|
|
|
break;
|
|
case ItemId_BombBag:
|
|
case ItemId_BombBagMedium:
|
|
case ItemId_BombBagLarge:
|
|
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtBombBagFromBeedle)) {
|
|
return false;
|
|
}
|
|
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
ARM void ActorUnkSHIT::func_ov036_0211d570(unk32 param1) {
|
|
ItemManager *pIVar4 = data_027e0ce0->mUnk_2C;
|
|
|
|
switch (this->mItemId) {
|
|
case ItemId_NormalShield:
|
|
break;
|
|
case ItemId_RedPotion:
|
|
break;
|
|
case ItemId_PurplePotion:
|
|
break;
|
|
case ItemId_YellowPotion:
|
|
break;
|
|
case ItemId_TenPriceCard:
|
|
break;
|
|
case ItemId_DemonFossil:
|
|
case ItemId_StalfosSkull:
|
|
case ItemId_StarFragment:
|
|
case ItemId_BeeLarvae:
|
|
case ItemId_WoodHeart:
|
|
case ItemId_DarkPearlLoop:
|
|
case ItemId_WhitePearlLoop:
|
|
case ItemId_RutoCrown:
|
|
case ItemId_DragonScale:
|
|
case ItemId_PirateNecklace:
|
|
case ItemId_PalaceDish:
|
|
case ItemId_GoronAmber:
|
|
case ItemId_MysticJade:
|
|
case ItemId_AncientCoin:
|
|
case ItemId_PricelessStone:
|
|
case ItemId_RegalRing:
|
|
this->mUnk_2D3 = true;
|
|
break;
|
|
case ItemId_HeartContainer:
|
|
if (this->mUnk_5C.mParams[3] == 5) {
|
|
SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_10F);
|
|
} else {
|
|
SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_10E);
|
|
}
|
|
|
|
this->mUnk_2D3 = true;
|
|
break;
|
|
case ItemId_BombsRefill:
|
|
pIVar4->func_ov000_020a8820(10);
|
|
break;
|
|
case ItemId_ArrowsRefill:
|
|
pIVar4->func_ov000_020a87ec(10);
|
|
break;
|
|
case ItemId_QuiverMedium:
|
|
case ItemId_QuiverLarge:
|
|
SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtGoronShopQuiver);
|
|
this->mUnk_2D3 = true;
|
|
break;
|
|
case ItemId_BombBag:
|
|
case ItemId_BombBagMedium:
|
|
case ItemId_BombBagLarge:
|
|
SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtBombBagFromBeedle);
|
|
this->mUnk_2D3 = true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if (param1 == 0) {
|
|
pIVar4->GiveRupees(-this->func_ov036_0211cddc(), false, false);
|
|
}
|
|
}
|
|
|
|
ARM void ActorUnkSHIT::func_ov036_0211d75c(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211d774(void) {}
|
|
ARM void ActorUnkSHIT::func_ov036_0211d790(void) {}
|
|
|
|
ARM ActorUnkSHIT::~ActorUnkSHIT() {}
|
|
ARM ActorProfileUnkSHIT::~ActorProfileUnkSHIT() {}
|