varregion: remove uses of region size constant. In particular, update scene
to check for border crossings based on the size of the region.varregion
parent
ac94dc8a14
commit
cd1a23fc14
|
@ -1033,7 +1033,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
BordersLocked = true;
|
||||
Border northBorder = new Border();
|
||||
northBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (int)Constants.RegionSize); //<---
|
||||
northBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (float)RegionInfo.RegionSizeY); //<---
|
||||
northBorder.CrossDirection = Cardinals.N;
|
||||
NorthBorders.Add(northBorder);
|
||||
|
||||
|
@ -1043,7 +1043,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
SouthBorders.Add(southBorder);
|
||||
|
||||
Border eastBorder = new Border();
|
||||
eastBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (int)Constants.RegionSize); //<---
|
||||
eastBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (float)RegionInfo.RegionSizeY); //<---
|
||||
eastBorder.CrossDirection = Cardinals.E;
|
||||
EastBorders.Add(eastBorder);
|
||||
|
||||
|
@ -3994,12 +3994,12 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
if (posX < 0)
|
||||
posX = 0;
|
||||
else if (posX >= 256)
|
||||
posX = 255.999f;
|
||||
else if (posX >= (float)RegionInfo.RegionSizeX)
|
||||
posX = (float)RegionInfo.RegionSizeX - 0.001f;
|
||||
if (posY < 0)
|
||||
posY = 0;
|
||||
else if (posY >= 256)
|
||||
posY = 255.999f;
|
||||
else if (posY >= (float)RegionInfo.RegionSizeY)
|
||||
posY = (float)RegionInfo.RegionSizeY - 0.001f;
|
||||
|
||||
reason = String.Empty;
|
||||
if (Permissions.IsGod(agentID))
|
||||
|
|
|
@ -842,9 +842,9 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
maxX = -256f;
|
||||
maxY = -256f;
|
||||
maxZ = -256f;
|
||||
minX = 256f;
|
||||
minY = 256f;
|
||||
minZ = 8192f;
|
||||
minX = 10000f;
|
||||
minY = 10000f;
|
||||
minZ = 10000f;
|
||||
|
||||
SceneObjectPart[] parts = m_parts.GetArray();
|
||||
for (int i = 0; i < parts.Length; i++)
|
||||
|
|
|
@ -376,18 +376,19 @@ public class BSPrim : BSPhysObject
|
|||
{
|
||||
bool ret = false;
|
||||
|
||||
uint wayOutThere = Constants.RegionSize * Constants.RegionSize;
|
||||
int wayOverThere = -1000;
|
||||
int wayOutThere = 10000;
|
||||
// There have been instances of objects getting thrown way out of bounds and crashing
|
||||
// the border crossing code.
|
||||
if ( RawPosition.X < -Constants.RegionSize || RawPosition.X > wayOutThere
|
||||
|| RawPosition.Y < -Constants.RegionSize || RawPosition.Y > wayOutThere
|
||||
|| RawPosition.Z < -Constants.RegionSize || RawPosition.Z > wayOutThere)
|
||||
if ( RawPosition.X < wayOverThere || RawPosition.X > wayOutThere
|
||||
|| RawPosition.Y < wayOverThere || RawPosition.X > wayOutThere
|
||||
|| RawPosition.Z < wayOverThere || RawPosition.X > wayOutThere)
|
||||
{
|
||||
RawPosition = new OMV.Vector3(10, 10, 50);
|
||||
ZeroMotion(inTaintTime);
|
||||
ret = true;
|
||||
}
|
||||
if (RawVelocity.LengthSquared() > BSParam.MaxLinearVelocity)
|
||||
if (RawVelocity.LengthSquared() > BSParam.MaxLinearVelocitySquared)
|
||||
{
|
||||
RawVelocity = Util.ClampV(RawVelocity, BSParam.MaxLinearVelocity);
|
||||
ret = true;
|
||||
|
|
Loading…
Reference in New Issue