Core/VMap: Add outdoor state to Map::GetFullTerrainStatusForPosition. Add WorldObject::IsOutdoors, basic member access.
Port From (https://github.com/TrinityCore/TrinityCore/commit/e47e95b6dc89a7332ae4d5d833639e4f30f3d8c5)
This commit is contained in:
@@ -127,6 +127,7 @@ namespace Game.Entities
|
||||
if (area.ParentAreaID != 0)
|
||||
m_zoneId = area.ParentAreaID;
|
||||
|
||||
m_outdoors = data.outdoors;
|
||||
m_staticFloorZ = data.FloorZ;
|
||||
}
|
||||
|
||||
@@ -1026,6 +1027,8 @@ namespace Game.Entities
|
||||
|
||||
public void GetZoneAndAreaId(out uint zoneid, out uint areaid) { zoneid = m_zoneId; areaid = m_areaId; }
|
||||
|
||||
public bool IsOutdoors() { return m_outdoors; }
|
||||
|
||||
public bool IsInWorldPvpZone()
|
||||
{
|
||||
switch (GetZoneId())
|
||||
@@ -2389,6 +2392,7 @@ namespace Game.Entities
|
||||
uint m_zoneId;
|
||||
uint m_areaId;
|
||||
float m_staticFloorZ;
|
||||
bool m_outdoors;
|
||||
|
||||
public MovementInfo m_movementInfo;
|
||||
string _name;
|
||||
|
||||
@@ -6145,16 +6145,11 @@ namespace Game.Entities
|
||||
if (IsInFlight())
|
||||
return;
|
||||
|
||||
bool isOutdoor;
|
||||
uint areaId = GetMap().GetAreaId(GetPhaseShift(), GetPositionX(), GetPositionY(), GetPositionZ(), out isOutdoor);
|
||||
AreaTableRecord areaEntry = CliDB.AreaTableStorage.LookupByKey(areaId);
|
||||
|
||||
if (WorldConfig.GetBoolValue(WorldCfg.VmapIndoorCheck) && !isOutdoor)
|
||||
if (WorldConfig.GetBoolValue(WorldCfg.VmapIndoorCheck) && !IsOutdoors())
|
||||
RemoveAurasWithAttribute(SpellAttr0.OutdoorsOnly);
|
||||
|
||||
if (areaId == 0)
|
||||
return;
|
||||
|
||||
uint areaId = GetAreaId();
|
||||
var areaEntry = CliDB.AreaTableStorage.LookupByKey(areaId);
|
||||
if (areaEntry == null)
|
||||
{
|
||||
Log.outError(LogFilter.Player, "Player '{0}' ({1}) discovered unknown area (x: {2} y: {3} z: {4} map: {5})",
|
||||
|
||||
Reference in New Issue
Block a user