ubOde: dont do avatar step climb on small true spheres. lets play simple football
parent
c5a4c299cb
commit
39751891f4
|
@ -944,6 +944,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gtype == d.GeomClassID.SphereClass)
|
||||||
|
{
|
||||||
|
if(d.GeomSphereGetRadius(other) < 0.5)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (offset.Z > 0 || contact.normal.Z > 0.35f)
|
if (offset.Z > 0 || contact.normal.Z > 0.35f)
|
||||||
{
|
{
|
||||||
if (offset.Z <= 0)
|
if (offset.Z <= 0)
|
||||||
|
@ -980,12 +986,12 @@ namespace OpenSim.Region.PhysicsModule.ubOde
|
||||||
offset.Normalize();
|
offset.Normalize();
|
||||||
|
|
||||||
float tdp = contact.depth;
|
float tdp = contact.depth;
|
||||||
float t = contact.normal.Z * contact.normal.Z;
|
float t = offset.X;
|
||||||
t = Math.Abs(t);
|
t = Math.Abs(t);
|
||||||
if(t > 1e-6)
|
if(t > 1e-6)
|
||||||
{
|
{
|
||||||
tdp /= t;
|
tdp /= t;
|
||||||
tdp *= offset.Z * offset.Z;
|
tdp *= contact.normal.X;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tdp *= 10;
|
tdp *= 10;
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue