Merge remote-tracking branch 'zeldaret/main' into decomp-PlayerControl

This commit is contained in:
Aetias
2025-02-04 21:30:00 +01:00
347 changed files with 9795 additions and 5379 deletions
+15 -10
View File
@@ -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: {
+14
View File
@@ -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) {}