mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-10 23:20:25 +00:00
[Zoning] Fix zone race condition (#2479)
* Testing * Separate auto shutdown fix * Revert for PR * Invalidate lock in places where zoning is cancelled
This commit is contained in:
+20
-6
@@ -232,8 +232,9 @@ Client::Client(EQStreamInterface* ieqs)
|
||||
linkdead_timer.Disable();
|
||||
zonesummon_id = 0;
|
||||
zonesummon_ignorerestrictions = 0;
|
||||
bZoning = false;
|
||||
zone_mode = ZoneUnsolicited;
|
||||
bZoning = false;
|
||||
m_lock_save_position = false;
|
||||
zone_mode = ZoneUnsolicited;
|
||||
casting_spell_id = 0;
|
||||
npcflag = false;
|
||||
npclevel = 0;
|
||||
@@ -634,11 +635,14 @@ bool Client::Save(uint8 iCommitNow) {
|
||||
return false;
|
||||
|
||||
/* Wrote current basics to PP for saves */
|
||||
m_pp.x = m_Position.x;
|
||||
m_pp.y = m_Position.y;
|
||||
m_pp.z = m_Position.z;
|
||||
if (!m_lock_save_position) {
|
||||
m_pp.x = m_Position.x;
|
||||
m_pp.y = m_Position.y;
|
||||
m_pp.z = m_Position.z;
|
||||
m_pp.heading = m_Position.w;
|
||||
}
|
||||
|
||||
m_pp.guildrank = guildrank;
|
||||
m_pp.heading = m_Position.w;
|
||||
|
||||
/* Mana and HP */
|
||||
if (GetHP() <= 0) {
|
||||
@@ -11827,3 +11831,13 @@ bool Client::HasRecipeLearned(uint32 recipe_id)
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Client::IsLockSavePosition() const
|
||||
{
|
||||
return m_lock_save_position;
|
||||
}
|
||||
|
||||
void Client::SetLockSavePosition(bool lock_save_position)
|
||||
{
|
||||
Client::m_lock_save_position = lock_save_position;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user