Files
GTASource/game/Peds/ArcadeAbilityEffects.cpp
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

79 lines
2.3 KiB
C++

// Title : ArcadeAbilityeffects.cpp
// Author : Ross McDonald (Ruffian Games)
// Started : 07/02/20
#include "ArcadeAbilityEffects.h"
#include "ped_channel.h"
CArcadePassiveAbilityEffectsConfigInfo::CArcadePassiveAbilityEffectsConfigInfo()
{
m_values = atFixedArray<float, AAE_NUM_TYPES>();
const float fDefaultModifier = 1.0f;
for (int i = 0; i < eArcadeAbilityEffectType::AAE_NUM_TYPES; ++i)
{
m_values.Push(fDefaultModifier);
}
}
CArcadePassiveAbilityEffectsConfigInfo::~CArcadePassiveAbilityEffectsConfigInfo()
{
m_values.Reset();
}
const float CArcadePassiveAbilityEffectsConfigInfo::GetModifier(eArcadeAbilityEffectType arcadeAbilityEffectType) const
{
if (m_values.IsEmpty()) return 0.0f;
if (arcadeAbilityEffectType >= 0 && arcadeAbilityEffectType < m_values.GetCount())
{
return m_values[arcadeAbilityEffectType];
}
return 0.0f;
}
void CArcadePassiveAbilityEffectsConfigInfo::SetModifier(eArcadeAbilityEffectType arcadeAbilityEffectType, float modifierValue)
{
if (m_values.IsEmpty()) return;
if (arcadeAbilityEffectType >= 0 && arcadeAbilityEffectType < m_values.GetCount())
{
m_values[arcadeAbilityEffectType] = modifierValue;
}
}
CArcadePassiveAbilityEffectsConfigInfo CArcadePassiveAbilityEffects::ms_abilityValues = CArcadePassiveAbilityEffectsConfigInfo();
CArcadePassiveAbilityEffects::CArcadePassiveAbilityEffects()
: m_arcadePassiveAbilityFlags(Flag::AAE_NULL)
{
}
CArcadePassiveAbilityEffects::~CArcadePassiveAbilityEffects()
{
}
const bool CArcadePassiveAbilityEffects::GetIsActive(eArcadeAbilityEffectType arcadeAbilityEffectType) const
{
Flag flag = (Flag)(1 << ((int)arcadeAbilityEffectType));
return GetFlag(flag);
}
void CArcadePassiveAbilityEffects::SetIsActive(eArcadeAbilityEffectType arcadeAbilityEffectType, bool isActiveValue)
{
if (eArcadeAbilityEffectType::AAE_NONE == arcadeAbilityEffectType)
{
return Reset();
}
Flag flag = (Flag)(1 << ((int)arcadeAbilityEffectType));
return isActiveValue ? SetFlag(flag) : ClearFlag(flag);
}
const float CArcadePassiveAbilityEffects::GetModifier(eArcadeAbilityEffectType arcadeAbilityEffectType) const
{
return ms_abilityValues.GetModifier(arcadeAbilityEffectType);
}
void CArcadePassiveAbilityEffects::SetModifier(eArcadeAbilityEffectType arcadeAbilityEffectType, float modifierValue)
{
ms_abilityValues.SetModifier(arcadeAbilityEffectType, modifierValue);
}