Files
ss/include/d/lyt/d_lyt_util_items.h
T
2026-01-24 11:10:35 +01:00

116 lines
3.0 KiB
C

#ifndef D_LYT_UTIL_ITEMS_H
#define D_LYT_UTIL_ITEMS_H
#include "common.h"
#include "sized_string.h"
#include "toBeSorted/dowsing_target.h"
enum LytItemNumberColor_e {
LYT_ITEM_COLOR_GOLD = 0,
LYT_ITEM_COLOR_RED = 1,
LYT_ITEM_COLOR_GREEN = 2,
LYT_ITEM_COLOR_NONE = 3,
};
enum SongLifeTreeSeedStatus_e {
SONG_LIFETREE_NONE = 0,
SONG_LIFETREE_HAS_SOTH_PARTS_OR_SEED = 1,
SONG_LIFETREE_HAS_SOTH = 2,
};
s32 convertLytPouchSlot2(s32 fileSlot);
u8 getSongLifeTreeStatus();
/** 0: no sword, 6: TMS */
s32 getCurrentSwordLevel();
u16 getCurrentSwordItemId();
bool isSwordRestrictedBokoBase();
u16 getCurrentGoddessHarpItemId();
bool isHarpRestrictedBokoBase();
u16 getCurrentEarringsItemId();
u16 getTabletItemIdForIndex(s32 index);
u16 getTriforceItemIdForIndex(s32 index);
u16 getSongItemIdForIndex(s32 index);
bool hasGoddessHarp();
bool hasSong(s32 index);
bool hasWaterDragonScale();
u16 getCurrentWaterDragonScaleItemId();
bool isWaterDragonScaleRestricted();
bool hasSailcloth();
s32 getCurrentMittsLevel();
u16 getCurrentMittsItemId();
bool isMittsRestricted();
u16 getCurrentSailclothItemId();
u16 getCurrentWalletItemId();
u16 getCurrentHeartPieceItemId();
void getItemLabel(s32 itemId, SizedString<32> &buf);
void getCaptionItemLabel(s32 itemId, SizedString<32> &buf);
void getDowsingLabel(s32 itemId, SizedString<32> &buf);
void getPauseCategoryLabel(s32 itemId, SizedString<32> &buf);
// TODO these could be u16
const wchar_t *getItemText(s32 itemId);
const wchar_t *getCaptionItemText(s32 itemId);
const wchar_t *getDowsingText(s32 itemId);
const wchar_t *getPauseCategoryText(s32 itemId);
bool isPouchBocoburinLocked();
// TODO - these return types may require some work
u8 getPouchItemForSlot(s32 slot, bool unk);
bool hasPouchSlot(s32 slot, bool unk);
s32 getPouchItemAmount(s32 slot, bool unk);
u8 getPouchItemNumberColor(s32 slot, bool unk);
// not sure about this one
f32 getPouchShieldDurability(s32 slot, bool unk);
u32 getPouchItemIdForIndex(s32 slot, bool unk);
// not sure about this one
f32 getPouchShieldDurability2(s32 slot, bool unk);
// not sure about this one
s32 getEvenMoreShieldStuff(s32 slot, bool unk);
u8 getDepositItemForSlot(s32 slot);
s32 getDepositItemAmount(s32 slot);
u8 getDepositItemNumberColor(s32 slot);
f32 getDepositShieldDurability(s32 slot);
// TODO - rename and make sense of these
DowsingTarget::DowsingSlot dowsingSlotForIndex(s32 index);
u8 getLytIndexForDowsingIndex(s32 index);
u16 getDowsingItemIdForIndex(s32 index);
bool hasDowsingInIndex(s32 index);
// B-Wheel
s32 getBWheelSlotForIndex(s32 index);
bool isBWheelIndexWithNumber(s32 index);
s32 getNumberForBWheelIndex(s32 index);
s32 getItemLevelForBWheelIndex(s32 index);
u8 getLytItemIdForBWheelIndex(s32 index);
bool isBWheelIndexBocoburinLocked(s32 index, bool unk);
u8 getNumberColorForBWheelIndex(s32 index);
u16 getBWheelItemIdForIndex(s32 index);
/**
* FR: -1, 0, 1 singular, else plural
* Otherwise: -1, 1 singular, else plural
*/
bool shouldUseSingular(s32 amount);
#endif