refactor(Core/Creature): Remove Inhabit Type (#9272)

This is in reference to issue: https://github.com/azerothcore/azerothcore-wotlk/issues/4361
This is comprised of a cherry pick and partial tc cherry pick:
592516ae69
dbadb6369c
34cfa69efd
12de860b4a
a22bc236eb
This commit is contained in:
acidmanifesto
2022-01-06 14:33:22 +01:00
committed by GitHub
parent d504a62293
commit 2d4e17fd16
26 changed files with 4948 additions and 230 deletions

View File

@@ -234,6 +234,7 @@ Player::Player(WorldSession* session): Unit(true), m_mover(this)
m_MirrorTimerFlags = UNDERWATER_NONE;
m_MirrorTimerFlagsLast = UNDERWATER_NONE;
m_isInWater = false;
m_drunkTimer = 0;
m_deathTimer = 0;
m_deathExpireTime = 0;
@@ -2087,6 +2088,24 @@ bool Player::IsFalling() const
return GetPositionZ() < m_lastFallZ && !IsInFlight();
}
void Player::SetInWater(bool apply)
{
if (m_isInWater == apply)
return;
//define player in water by opcodes
//move player's guid into HateOfflineList of those mobs
//which can't swim and move guid back into ThreatList when
//on surface.
//TODO: exist also swimming mobs, and function must be symmetric to enter/leave water
m_isInWater = apply;
// remove auras that need water/land
RemoveAurasWithInterruptFlags(apply ? AURA_INTERRUPT_FLAG_NOT_ABOVEWATER : AURA_INTERRUPT_FLAG_NOT_UNDERWATER);
getHostileRefMgr().updateThreatTables();
}
bool Player::IsInAreaTriggerRadius(const AreaTrigger* trigger) const
{
static const float delta = 5.0f;