diff options
| author | Subv <subv2112@gmail.com> | 2014-06-01 22:43:24 -0500 |
|---|---|---|
| committer | Subv <subv2112@gmail.com> | 2014-06-01 22:43:24 -0500 |
| commit | 18924654a3c052f20988870ca2da25ad857dc86e (patch) | |
| tree | 177ffbe9d0ffbc8f384c0caa26052d8d3dad7dae /src/server/game/Entities | |
| parent | 48ec2df81fa8f88cd32d7a79b587603aedbd89e0 (diff) | |
| parent | 289a5c4318c5509eafeb36389a81bddc2ed349ca (diff) | |
Merge branch '4.3.4' of github.com:TrinityCore/TrinityCore into 4.3.4_phases
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 13 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 5 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 672596705d5..54d6f4436ea 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -708,6 +708,8 @@ Player::Player(WorldSession* session): Unit(true) m_areaUpdateId = 0; m_team = 0; + + m_needsZoneUpdate = false; m_nextSave = sWorld->getIntConfig(CONFIG_INTERVAL_SAVE); @@ -6721,6 +6723,15 @@ bool Player::UpdatePosition(float x, float y, float z, float orientation, bool t // mover->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TURNING); //AURA_INTERRUPT_FLAG_JUMP not sure + // Update player zone if needed + if (m_needsZoneUpdate) + { + uint32 newZone, newArea; + GetZoneAndAreaId(newZone, newArea); + UpdateZone(newZone, newArea); + m_needsZoneUpdate = false; + } + // group update if (GetGroup()) SetGroupUpdateFlag(GROUP_UPDATE_FLAG_POSITION); @@ -27884,4 +27895,4 @@ void Player::UpdatePhasing() } GetSession()->SendSetPhaseShift(GetPhases(), terrainswaps, worldAreaSwaps); -}
\ No newline at end of file +} diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index d318efc3117..1758ed20808 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1893,7 +1893,8 @@ class Player : public Unit, public GridObject<Player> void UpdatePvP(bool state, bool override=false); void UpdateZone(uint32 newZone, uint32 newArea); void UpdateArea(uint32 newArea); - + void SetNeedsZoneUpdate(bool needsUpdate) { m_needsZoneUpdate = needsUpdate; } + void UpdateZoneDependentAuras(uint32 zone_id); // zones void UpdateAreaDependentAuras(uint32 area_id); // subzones @@ -2812,6 +2813,8 @@ class Player : public Unit, public GridObject<Player> bool IsAlwaysDetectableFor(WorldObject const* seer) const; uint8 m_grantableLevels; + + bool m_needsZoneUpdate; CUFProfile* _CUFProfiles[MAX_CUF_PROFILES]; |
