[7648] Resolve problems with expected fall damage at near teleport. Author: VladimirMangos
Move near teleport landing code to WorldSession::HandleMoveTeleportAck.
This make Player::TeleportTo code working in same way for both far/near teleports.
Move mSemaphoreTeleport from WorldObject to Player and merge with DoNotMove (using 2 fields for far/near teleport flag).
Skip movement packets until landing confirmation for near teleport from client.
--HG--
branch : trunk
This commit is contained in:
+15
-15
@@ -1663,8 +1663,12 @@ class TRINITY_DLL_SPEC Player : public Unit
|
||||
bool HasSkill(uint32 skill) const;
|
||||
void learnSkillRewardedSpells(uint32 id, uint32 value);
|
||||
|
||||
void SetDontMove(bool dontMove);
|
||||
bool GetDontMove() const { return m_dontMove; }
|
||||
WorldLocation& GetTeleportDest() { return m_teleport_dest; }
|
||||
bool IsBeingTeleported() const { return mSemaphoreTeleport_Near || mSemaphoreTeleport_Far; }
|
||||
bool IsBeingTeleportedNear() const { return mSemaphoreTeleport_Near; }
|
||||
bool IsBeingTeleportedFar() const { return mSemaphoreTeleport_Far; }
|
||||
void SetSemaphoreTeleportNear(bool semphsetting) { mSemaphoreTeleport_Near = semphsetting; }
|
||||
void SetSemaphoreTeleportFar(bool semphsetting) { mSemaphoreTeleport_Far = semphsetting; }
|
||||
|
||||
void CheckExploreSystem(void);
|
||||
|
||||
@@ -2057,8 +2061,6 @@ class TRINITY_DLL_SPEC Player : public Unit
|
||||
|
||||
bool isAllowedToLoot(Creature* creature);
|
||||
|
||||
WorldLocation& GetTeleportDest() { return m_teleport_dest; }
|
||||
|
||||
DeclinedName const* GetDeclinedNames() const { return m_declinedname; }
|
||||
uint8 GetRunesState() const { return m_runes->runeState; }
|
||||
uint8 GetBaseRune(uint8 index) const { return m_runes->runes[index].BaseRune; }
|
||||
@@ -2225,8 +2227,6 @@ class TRINITY_DLL_SPEC Player : public Unit
|
||||
typedef std::list<Channel*> JoinedChannelsList;
|
||||
JoinedChannelsList m_channels;
|
||||
|
||||
bool m_dontMove;
|
||||
|
||||
int m_cinematic;
|
||||
|
||||
Player *pTrader;
|
||||
@@ -2291,10 +2291,6 @@ class TRINITY_DLL_SPEC Player : public Unit
|
||||
uint32 m_groupUpdateMask;
|
||||
uint64 m_auraRaidUpdateMask;
|
||||
|
||||
// Temporarily removed pet cache
|
||||
uint32 m_temporaryUnsummonedPetNumber;
|
||||
uint32 m_oldpetspell;
|
||||
|
||||
// Player summoning
|
||||
time_t m_summon_expire;
|
||||
uint32 m_summon_mapid;
|
||||
@@ -2302,11 +2298,6 @@ class TRINITY_DLL_SPEC Player : public Unit
|
||||
float m_summon_y;
|
||||
float m_summon_z;
|
||||
|
||||
// Far Teleport
|
||||
WorldLocation m_teleport_dest;
|
||||
|
||||
bool m_farsightVision;
|
||||
|
||||
DeclinedName *m_declinedname;
|
||||
Runes *m_runes;
|
||||
private:
|
||||
@@ -2334,6 +2325,15 @@ class TRINITY_DLL_SPEC Player : public Unit
|
||||
uint8 m_MirrorTimerFlagsLast;
|
||||
bool m_isInWater;
|
||||
|
||||
// Current teleport data
|
||||
WorldLocation m_teleport_dest;
|
||||
bool mSemaphoreTeleport_Near;
|
||||
bool mSemaphoreTeleport_Far;
|
||||
|
||||
// Temporary removed pet cache
|
||||
uint32 m_temporaryUnsummonedPetNumber;
|
||||
uint32 m_oldpetspell;
|
||||
|
||||
AchievementMgr m_achievementMgr;
|
||||
ReputationMgr m_reputationMgr;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user