mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-13 05:20:54 +01:00
45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "ExtraData.h"
|
||
|
|
|
||
|
|
#include <ExtraData/ExtraSoul.h>
|
||
|
|
|
||
|
|
struct AlchemyItem;
|
||
|
|
struct EnchantmentItem;
|
||
|
|
|
||
|
|
struct ExtraDataList
|
||
|
|
{
|
||
|
|
static ExtraDataList* New() noexcept;
|
||
|
|
|
||
|
|
bool Contains(ExtraDataType aType) const;
|
||
|
|
void Set(ExtraDataType aType, bool aSet);
|
||
|
|
|
||
|
|
bool Add(ExtraDataType aType, BSExtraData* apNewData);
|
||
|
|
bool Remove(ExtraDataType aType, BSExtraData* apNewData);
|
||
|
|
|
||
|
|
uint32_t GetCount() const;
|
||
|
|
|
||
|
|
void SetType(ExtraDataType aType, bool aClear);
|
||
|
|
BSExtraData* GetByType(ExtraDataType type) const;
|
||
|
|
|
||
|
|
void SetSoulData(SOUL_LEVEL aSoulLevel) noexcept;
|
||
|
|
void SetChargeData(float aCharge) noexcept;
|
||
|
|
void SetWorn(bool aWornLeft) noexcept;
|
||
|
|
void SetPoison(AlchemyItem* apItem, uint32_t aCount) noexcept;
|
||
|
|
void SetHealth(float aHealth) noexcept;
|
||
|
|
void SetEnchantmentData(EnchantmentItem* apItem, uint16_t aCharge, bool aRemoveOnUnequip) noexcept;
|
||
|
|
|
||
|
|
[[nodiscard]] bool HasQuestObjectAlias() noexcept;
|
||
|
|
|
||
|
|
virtual ~ExtraDataList();
|
||
|
|
BSExtraData* data = nullptr;
|
||
|
|
|
||
|
|
struct Bitfield
|
||
|
|
{
|
||
|
|
uint8_t data[0x18];
|
||
|
|
};
|
||
|
|
|
||
|
|
Bitfield* bitfield{};
|
||
|
|
mutable BSRecursiveLock lock{};
|
||
|
|
};
|