mirror of
https://github.com/zeldaret/ph
synced 2026-07-03 20:30:04 -04:00
Merge remote-tracking branch 'zeldaret/main' into decomp-PlayerControl
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
#include "Item/ItemManager.hpp"
|
||||
#include "DTCM/UnkStruct_027e0d38.hpp"
|
||||
#include "DTCM/UnkStruct_027e0f78.hpp"
|
||||
#include "Map/MapManager.hpp"
|
||||
#include "Player/PlayerLinkBase.hpp"
|
||||
#include "Player/PlayerManager.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "System/OverlayManager.hpp"
|
||||
|
||||
static const char *sShipPartTypes[] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"};
|
||||
|
||||
@@ -22,7 +27,7 @@ THUMB void ItemManager::ClearPrevEquippedItem() {
|
||||
THUMB void ItemManager::Save(SaveItemManager *save) {
|
||||
save->itemFlags = mItemFlags;
|
||||
save->numRupees = mNumRupees;
|
||||
for (s32 i = 0; i < NUM_POTIONS; ++i) {
|
||||
for (s32 i = 0; i < MAX_POTIONS; ++i) {
|
||||
save->potions[i] = mPotions[i];
|
||||
}
|
||||
save->numBombs = (u8) (*mAmmo)[ItemFlag_BombBag];
|
||||
@@ -30,7 +35,7 @@ THUMB void ItemManager::Save(SaveItemManager *save) {
|
||||
save->numArrows = (u8) (*mAmmo)[ItemFlag_Bow];
|
||||
save->equippedItem = (u8) mEquippedItem;
|
||||
save->salvagedTreasureFlags = mSalvagedTreasureFlags;
|
||||
save->hourglassSeconds = FastDivide(mHourglassSandFrames, 60);
|
||||
save->hourglassSeconds = SoftDivide(mHourglassSandFrames, 60);
|
||||
for (s32 i = 0; i < Gem_COUNT; ++i) {
|
||||
save->numGems[i] = mNumGems[i];
|
||||
}
|
||||
@@ -72,7 +77,7 @@ THUMB void ItemManager::Load(const SaveItemManager *save) {
|
||||
(*mAmmo)[ItemFlag_BombBag] = save->numBombs;
|
||||
(*mAmmo)[ItemFlag_BombchuBag] = save->numBombchus;
|
||||
(*mAmmo)[ItemFlag_Bow] = save->numArrows;
|
||||
for (s32 i = 0; i < NUM_POTIONS; ++i) {
|
||||
for (s32 i = 0; i < MAX_POTIONS; ++i) {
|
||||
mPotions[i] = save->potions[i];
|
||||
}
|
||||
mEquippedItem = save->equippedItem;
|
||||
@@ -153,16 +158,16 @@ ARM ItemModel *ItemManager::GetItemModel(ItemModelId id) {
|
||||
return mItemModels[id];
|
||||
}
|
||||
|
||||
extern unk32 data_027e0fc4;
|
||||
extern unk32 gItemModelLoader;
|
||||
extern "C" void *func_ov00_020bb3a8(unk32 param1, u32 index);
|
||||
extern "C" void func_ov00_020c0bdc(void *param1, unk32 param2);
|
||||
ARM void ItemManager::func_ov00_020ad538(unk32 param1) const {
|
||||
void *unk1 = func_ov00_020bb3a8(data_027e0fc4, 6);
|
||||
void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 6);
|
||||
func_ov00_020c0bdc(unk1, param1);
|
||||
}
|
||||
|
||||
ARM void ItemManager::func_ov00_020ad560(unk32 param1) const {
|
||||
void *unk1 = func_ov00_020bb3a8(data_027e0fc4, 7);
|
||||
void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 7);
|
||||
func_ov00_020c0bdc(unk1, param1);
|
||||
}
|
||||
|
||||
@@ -171,7 +176,7 @@ ARM ItemModel *ItemManager::GetDungeonItemModel(u32 index) {
|
||||
}
|
||||
|
||||
ARM void ItemManager::func_ov00_020ad594(unk32 param1) const {
|
||||
void *unk1 = func_ov00_020bb3a8(data_027e0fc4, 11);
|
||||
void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 11);
|
||||
func_ov00_020c0bdc(unk1, param1);
|
||||
}
|
||||
|
||||
@@ -247,7 +252,7 @@ ARM bool ItemManager::func_ov00_020ad790(unk32 param1) {
|
||||
ItemFlag equipId = mForcedItem;
|
||||
bool unk2 = !gMapManager->func_ov00_020849f8(equipId);
|
||||
if (mEquippedItem != ItemFlag_None && (unk2 || (u32) mEquippedItem - 9 <= 1) &&
|
||||
(gPlayerLink == 0 || gPlayerLink->func_ov00_020bbd80(param1)) && this->HasItem(mEquippedItem))
|
||||
(gPlayerLink == 0 || gPlayerLink->func_ov000_020bbd80(param1)) && this->HasItem(mEquippedItem))
|
||||
{
|
||||
equipId = mEquippedItem;
|
||||
}
|
||||
@@ -294,7 +299,7 @@ THUMB u16 ItemManager::GetUnk_09e(u32 index) const {
|
||||
}
|
||||
|
||||
THUMB s32 ItemManager::GetUnk_09e_Divided(u32 index) const {
|
||||
q20 quotient = Divide(INT_TO_Q20(mUnk_09e[index]), FLOAT_TO_Q20(2.54));
|
||||
q20 quotient = CoDivide64By32(INT_TO_Q20(mUnk_09e[index]), FLOAT_TO_Q20(2.54));
|
||||
s32 result = ROUND_Q20(quotient);
|
||||
if (result < 1) result = 1;
|
||||
return result;
|
||||
@@ -683,7 +688,7 @@ THUMB void ItemManager::GiveItem(ItemId id) {
|
||||
case ItemId_SalvageArm: {
|
||||
SET_FLAG(mItemFlags.flags, ItemFlag_SalvageArm);
|
||||
gAdventureFlags->Set(AdventureFlag_SalvageArm, true);
|
||||
gHealthManager->mSalvageArmHealth = 5;
|
||||
gPlayerManager->mSalvageArmHealth = 5;
|
||||
} break;
|
||||
|
||||
case ItemId_SwordsmanScroll: {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#include "Item/ItemModelLoader.hpp"
|
||||
|
||||
ItemModelLoader::ItemModelLoader() {}
|
||||
ItemModelLoader *ItemModelLoader::func_ov000_020bb2ec() {}
|
||||
unk32 ItemModelLoader::func_ov000_020bb34c() {}
|
||||
void ItemModelLoader::func_ov000_020bb378(s32 param1) {}
|
||||
unk32 ItemModelLoader::func_ov000_020bb390(s32 equipId) {}
|
||||
unk32 ItemModelLoader::func_ov000_020bb3a8(s32 param1) {}
|
||||
s32 ItemModelLoader::func_ov000_020bb3b4(s32 param1, char *param2) {}
|
||||
unk32 ItemModelLoader::func_ov000_020bb3d4(s32 param1, unk32 param2) {}
|
||||
void ItemModelLoader::func_ov000_020bb3f4(char *param2) {}
|
||||
void ItemModelLoader::func_ov000_020bb414(unk32 param1) {}
|
||||
void ItemModelLoader::func_ov000_020bb420(unk32 param1) {}
|
||||
void ItemModelLoader::func_ov000_020bb42c(unk32 param1) {}
|
||||
Reference in New Issue
Block a user