[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:
megamage
2009-04-11 23:07:07 -05:00
parent dda2fdff33
commit 0010f7ffe3
7 changed files with 86 additions and 104 deletions
+15 -15
View File
@@ -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;
};