mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 02:46:33 +01:00
Core/Utilities: Use generic templates with AddPct, ApplyPct and CalculatePct
This commit is contained in:
@@ -114,58 +114,22 @@ inline void ApplyPercentModFloatVar(float& var, float val, bool apply)
|
||||
}
|
||||
|
||||
// Percentage calculation
|
||||
template <class T>
|
||||
inline T CalculatePctF(T base, float pct)
|
||||
template <class T, class U>
|
||||
inline T CalculatePct(T base, U pct)
|
||||
{
|
||||
return T(base * pct / 100.0f);
|
||||
return T(base * static_cast<float>(pct) / 100.0f);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T CalculatePctN(T base, int32 pct)
|
||||
template <class T, class U>
|
||||
inline T AddPct(T &base, U pct)
|
||||
{
|
||||
return T(base * float(pct) / 100.0f);
|
||||
return base += CalculatePct(base, pct);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T CalculatePctU(T base, uint32 pct)
|
||||
template <class T, class U>
|
||||
inline T ApplyPct(T &base, U pct)
|
||||
{
|
||||
return T(base * float(pct) / 100.0f);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T AddPctF(T& base, float pct)
|
||||
{
|
||||
return base += CalculatePctF(base, pct);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T AddPctN(T& base, int32 pct)
|
||||
{
|
||||
return base += CalculatePctN(base, pct);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T AddPctU(T& base, uint32 pct)
|
||||
{
|
||||
return base += CalculatePctU(base, pct);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T ApplyPctF(T& base, float pct)
|
||||
{
|
||||
return base = CalculatePctF(base, pct);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T ApplyPctN(T& base, int32 pct)
|
||||
{
|
||||
return base = CalculatePctN(base, pct);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T ApplyPctU(T& base, uint32 pct)
|
||||
{
|
||||
return base = CalculatePctU(base, pct);
|
||||
return base = CalculatePct(base, pct);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
|
||||
Reference in New Issue
Block a user