F4MP/codigos originales/tiltedcode/Code/client/Games/Overrides.h

58 lines
1.1 KiB
C
Raw Normal View History

#pragma once
template <class T> struct ScopedOverride
{
ScopedOverride() { s_refCount++; }
~ScopedOverride() { s_refCount--; }
TP_NOCOPYMOVE(ScopedOverride);
static bool IsOverriden() { return s_refCount > 0; }
private:
static thread_local uint32_t s_refCount;
};
namespace details
{
struct Equip
{
};
struct Unequip
{
};
struct SaveLoad
{
};
struct Experience
{
};
struct Activate
{
};
struct Inventory
{
};
struct ExtraData
{
};
struct Quest
{
};
struct SpellCast
{
};
} // namespace details
using ScopedReferencesOverride = ScopedOverride<TESObjectREFR>;
using ScopedEquipOverride = ScopedOverride<details::Equip>;
using ScopedUnequipOverride = ScopedOverride<details::Unequip>;
using ScopedSaveLoadOverride = ScopedOverride<details::SaveLoad>;
using ScopedExperienceOverride = ScopedOverride<details::Experience>;
using ScopedActivateOverride = ScopedOverride<details::Activate>;
using ScopedInventoryOverride = ScopedOverride<details::Inventory>;
using ScopedExtraDataOverride = ScopedOverride<details::ExtraData>;
using ScopedQuestOverride = ScopedOverride<details::Quest>;
using ScopedSpellCastOverride = ScopedOverride<details::SpellCast>;