mirror of
https://github.com/mangosfour/server.git
synced 2026-01-07 16:37:08 +00:00
Merge commit 'origin/master' into 310
Conflicts: src/game/UpdateData.cpp
This commit is contained in:
commit
e75e66063e
38 changed files with 687 additions and 537 deletions
|
|
@ -183,8 +183,9 @@ void Map::DeleteStateMachine()
|
|||
|
||||
Map::Map(uint32 id, time_t expiry, uint32 InstanceId, uint8 SpawnMode)
|
||||
: i_mapEntry (sMapStore.LookupEntry(id)), i_spawnMode(SpawnMode),
|
||||
i_id(id), i_InstanceId(InstanceId), m_unloadTimer(0), i_gridExpiry(expiry),
|
||||
m_activeNonPlayersIter(m_activeNonPlayers.end())
|
||||
i_id(id), i_InstanceId(InstanceId), m_unloadTimer(0),
|
||||
m_activeNonPlayersIter(m_activeNonPlayers.end()),
|
||||
i_gridExpiry(expiry)
|
||||
{
|
||||
for(unsigned int idx=0; idx < MAX_NUMBER_OF_GRIDS; ++idx)
|
||||
{
|
||||
|
|
@ -1226,7 +1227,7 @@ uint16 GridMap::getArea(float x, float y)
|
|||
return m_area_map[lx*16 + ly];
|
||||
}
|
||||
|
||||
float GridMap::getHeightFromFlat(float x, float y) const
|
||||
float GridMap::getHeightFromFlat(float /*x*/, float /*y*/) const
|
||||
{
|
||||
return m_gridHeight;
|
||||
}
|
||||
|
|
@ -1640,10 +1641,72 @@ uint16 Map::GetAreaFlag(float x, float y, float z) const
|
|||
case 2456: // Death's Breach (Eastern Plaguelands)
|
||||
if(z > 350.0f) areaflag = 1950; break;
|
||||
// Dalaran
|
||||
case 1593: // Crystalsong Forest
|
||||
case 2484: // The Twilight Rivulet (Crystalsong Forest)
|
||||
case 2492: // Forlorn Woods (Crystalsong Forest)
|
||||
if (x > 5568.0f && x < 6116.0f && y > 282.0f && y < 982.0f && z > 563.0f) areaflag = 2153; break;
|
||||
if (x > 5568.0f && x < 6116.0f && y > 282.0f && y < 982.0f && z > 563.0f)
|
||||
{
|
||||
// Krasus' Landing (Dalaran), fast check
|
||||
if (x > 5758.77f && x < 5869.03f && y < 510.46f)
|
||||
{
|
||||
// Krasus' Landing (Dalaran), with open east side
|
||||
if (y < 449.33f || (x-5813.9f)*(x-5813.9f)+(y-449.33f)*(y-449.33f) < 1864.0f)
|
||||
{
|
||||
areaflag = 2533; // Note: also 2633, possible one flight allowed and other not allowed case
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Dalaran
|
||||
areaflag = 2153;
|
||||
}
|
||||
break;
|
||||
// The Violet Citadel (Dalaran) or Dalaran
|
||||
case 2484: // The Twilight Rivulet (Crystalsong Forest)
|
||||
case 1593: // Crystalsong Forest
|
||||
// Dalaran
|
||||
if (x > 5568.0f && x < 6116.0f && y > 282.0f && y < 982.0f && z > 563.0f)
|
||||
{
|
||||
// The Violet Citadel (Dalaran), fast check
|
||||
if (x > 5721.1f && x < 5884.66f && y > 764.4f && y < 948.0f)
|
||||
{
|
||||
// The Violet Citadel (Dalaran)
|
||||
if ((x-5803.0f)*(x-5803.0f)+(y-846.18f)*(y-846.18f) < 6690.0f)
|
||||
{
|
||||
areaflag = 2696;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Dalaran
|
||||
areaflag = 2153;
|
||||
}
|
||||
break;
|
||||
// Vargoth's Retreat (Dalaran) or The Violet Citadel (Dalaran) or Dalaran
|
||||
case 2504: // Violet Stand (Crystalsong Forest)
|
||||
// Dalaran
|
||||
if (x > 5568.0f && x < 6116.0f && y > 282.0f && y < 982.0f && z > 563.0f)
|
||||
{
|
||||
// The Violet Citadel (Dalaran), fast check
|
||||
if (x > 5721.1f && x < 5884.66f && y > 764.4f && y < 948.0f)
|
||||
{
|
||||
// Vargoth's Retreat (Dalaran), nice slow circle with upper limit
|
||||
if (z < 898.0f && (x-5765.0f)*(x-5765.0f)+(y-862.4f)*(y-862.4f) < 262.0f)
|
||||
{
|
||||
areaflag = 2748;
|
||||
break;
|
||||
}
|
||||
|
||||
// The Violet Citadel (Dalaran)
|
||||
if ((x-5803.0f)*(x-5803.0f)+(y-846.18f)*(y-846.18f) < 6690.0f)
|
||||
{
|
||||
areaflag = 2696;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Dalaran
|
||||
areaflag = 2153;
|
||||
}
|
||||
break;
|
||||
// Maw of Neltharion (cave)
|
||||
case 164: // Dragonblight
|
||||
case 1797: // Obsidian Dragonshrine (Dragonblight)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue