Core/Units: applied feedback from TC pull request for aura interrupt checkups

This commit is contained in:
Ovahlord committed 2020-01-18 16:13:29 +01:00
1 parent b306111498
commit 221ed21ed2
2 files changed
+16 -10

No files matched your search

+6 -4
View File
@@ -409,6 +409,8 @@ Unit::Unit(bool isWorldObject) :
_oldFactionId = 0;
_isWalkingBeforeCharm = false;
_positionUpdateInfo = PositionUpdateInfo();
}
////////////////////////////////////////////////////////////
@@ -603,10 +605,10 @@ void Unit::UpdateSplinePosition()
void Unit::InterruptMovementBasedAuras()
{
// TODO: Check if orientation transport offset changed instead of only global orientation
if (m_positionUpdateInfo.Turned)
if (_positionUpdateInfo.Turned)
RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TURNING);
if (m_positionUpdateInfo.Relocated && !GetVehicle())
if (_positionUpdateInfo.Relocated && !GetVehicle())
RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_MOVE);
}
@@ -13888,8 +13890,8 @@ bool Unit::UpdatePosition(float x, float y, float z, float orientation, bool tel
UpdatePositionData();
m_positionUpdateInfo.Relocated = relocated;
m_positionUpdateInfo.Turned = turn;
_positionUpdateInfo.Relocated = relocated;
_positionUpdateInfo.Turned = turn;
return (relocated || turn);
}
+10 -6
View File
@@ -944,6 +944,14 @@ enum PlayerTotemType
SUMMON_TYPE_TOTEM_AIR = 83
};
struct PositionUpdateInfo
{
PositionUpdateInfo() : Relocated(false), Turned(false) { }
bool Relocated;
bool Turned;
};
// delay time next attack to prevent client attack animation problems
#define ATTACK_DISPLAY_DELAY 200
#define MAX_PLAYER_STEALTH_DETECT_RANGE 30.0f // max distance for detection targets by player
@@ -1995,12 +2003,6 @@ class TC_GAME_API Unit : public WorldObject
void UpdateSplineMovement(uint32 t_diff);
void UpdateSplinePosition();
struct
{
bool Relocated = false;
bool Turned = false;
} m_positionUpdateInfo;
// player or player's pet
float GetCombatRatingReduction(CombatRating cr) const;
uint32 GetCombatRatingDamageReduction(CombatRating cr, float rate, float cap, uint32 damage) const;
@@ -2040,6 +2042,8 @@ class TC_GAME_API Unit : public WorldObject
time_t _lastDamagedTime; // Part of Evade mechanics
SpellHistory* m_spellHistory;
PositionUpdateInfo _positionUpdateInfo;
};
namespace Trinity