aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorOvah <dreadkiller@gmx.de>2020-08-07 14:51:40 +0200
committerGitHub <noreply@github.com>2020-08-07 14:51:40 +0200
commit764f22fc9157ad184baa38995ee4e2d821299935 (patch)
treedd6d9432476de51df4fdd1777096b55de5b83cdf /src/server/game/Entities/Unit
parent98b1b20d6beea5e2fdea7e404e8d880953d4b2fb (diff)
Core/Units: add new functionality for units to block or enable combat interactions (#25168)
* Core/Units: add new functionality for units to block or enable combat entirely via helper to reflect what CREATURE_DIFFICULTYFLAGS_IGNORE_COMBAT and client AI functions imply * yeah... * Nuke Creature::IsCombatDisallowed helper as its unused by now * no combat extra flag may now be changed on transforms if the transformed entry does not have the flag
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp1
-rw-r--r--src/server/game/Entities/Unit/Unit.h7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index aff1ea83ab4..f695159ee7c 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -382,6 +382,7 @@ Unit::Unit(bool isWorldObject) :
_oldFactionId = 0;
_isWalkingBeforeCharm = false;
_instantCast = false;
+ _isIgnoringCombat = false;
}
////////////////////////////////////////////////////////////
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 3ea466d9f0f..3d2110ada04 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1686,6 +1686,11 @@ class TC_GAME_API Unit : public WorldObject
float GetCollisionHeight() const override;
+ // returns if the unit is ignoring any combat interaction
+ bool IsIgnoringCombat() const { return _isIgnoringCombat; }
+ // enables/disables combat interaction of this unit.
+ void SetIgnoringCombat(bool apply) { _isIgnoringCombat = apply; }
+
std::string GetDebugInfo() const override;
protected:
explicit Unit (bool isWorldObject);
@@ -1832,6 +1837,8 @@ class TC_GAME_API Unit : public WorldObject
SpellHistory* m_spellHistory;
PositionUpdateInfo _positionUpdateInfo;
+
+ bool _isIgnoringCombat;
};
namespace Trinity