aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormegamage <none@none>2009-02-10 10:04:40 -0600
committermegamage <none@none>2009-02-10 10:04:40 -0600
commit5881c6b91bb5f6a79bc9fe9d3dfdb0f2b16c1362 (patch)
tree245420be6b0cf125b415f74422f10f668b0bccca /src
parent31f49932647433b484bf91a9cc5a56fd44473459 (diff)
[7261] Better check DB corrdinates for bg entry at player loading. By Vladimir.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/Player.cpp7
-rw-r--r--src/shared/revision_nr.h2
2 files changed, 6 insertions, 3 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 7d2767275c6..56877656876 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -14576,7 +14576,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
SetBattleGroundEntryPoint(fields[36].GetUInt32(),fields[37].GetFloat(),fields[38].GetFloat(),fields[39].GetFloat(),fields[40].GetFloat());
// check entry point and fix to homebind if need
- if(!MapManager::IsValidMapCoord(m_bgEntryPoint))
+ MapEntry const* mapEntry = sMapStore.LookupEntry(m_bgEntryPoint.mapid);
+ if(!mapEntry || mapEntry->Instanceable() || !MapManager::IsValidMapCoord(m_bgEntryPoint))
SetBattleGroundEntryPoint(m_homebindMapId,m_homebindX,m_homebindY,m_homebindZ,0.0f);
BattleGround *currentBg = sBattleGroundMgr.GetBattleGround(bgid);
@@ -14607,8 +14608,10 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
// return to BG master
SetMapId(fields[36].GetUInt32());
Relocate(fields[37].GetFloat(),fields[38].GetFloat(),fields[39].GetFloat(),fields[40].GetFloat());
+
// check entry point and fix to homebind if need
- if(!IsPositionValid())
+ mapEntry = sMapStore.LookupEntry(GetMapId());
+ if(!mapEntry || mapEntry->IsBattleGroundOrArena() || !IsPositionValid())
RelocateToHomebind();
}
}
diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h
index 7beb04f0c5e..7b7bc6e7cf7 100644
--- a/src/shared/revision_nr.h
+++ b/src/shared/revision_nr.h
@@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
- #define REVISION_NR "7260"
+ #define REVISION_NR "7261"
#endif // __REVISION_NR_H__