* Fixed Physical prim, various issues, viewer freezes, sim crashes, ODE errors, etc.
parent
3cf3b426b6
commit
776e83941a
|
@ -299,29 +299,42 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
p2.PhysicsActorType == (int) ActorTypes.Prim))
|
p2.PhysicsActorType == (int) ActorTypes.Prim))
|
||||||
{
|
{
|
||||||
if (p2.PhysicsActorType == (int) ActorTypes.Agent)
|
if (p2.PhysicsActorType == (int) ActorTypes.Agent)
|
||||||
|
{ if (p1.IsPhysical)
|
||||||
{
|
{
|
||||||
|
int q = 1;
|
||||||
|
}
|
||||||
p2.CollidingObj = true;
|
p2.CollidingObj = true;
|
||||||
//contacts[i].depth = 0.003f;
|
//contacts[i].depth = 0.003f;
|
||||||
p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 2.5f);
|
p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 2.5f);
|
||||||
OdeCharacter character = (OdeCharacter) p2;
|
OdeCharacter character = (OdeCharacter) p2;
|
||||||
character.SetPidStatus(true);
|
character.SetPidStatus(true);
|
||||||
//contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p1.Size.X / 2), contacts[i].pos.Y + (p1.Size.Y / 2), contacts[i].pos.Z + (p1.Size.Z / 2));
|
//contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p1.Size.X / 2), contacts[i].pos.Y + (p1.Size.Y / 2), contacts[i].pos.Z + (p1.Size.Z / 2));
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (p1.IsPhysical)
|
||||||
|
{
|
||||||
|
int q = 1;
|
||||||
|
}
|
||||||
contacts[i].depth = 0.0000000f;
|
contacts[i].depth = 0.0000000f;
|
||||||
}
|
}
|
||||||
if (p1.PhysicsActorType == (int) ActorTypes.Agent)
|
if (p1.PhysicsActorType == (int) ActorTypes.Agent)
|
||||||
{
|
{
|
||||||
|
if (p2.IsPhysical)
|
||||||
|
{
|
||||||
|
int q = 1;
|
||||||
|
}
|
||||||
p1.CollidingObj = true;
|
p1.CollidingObj = true;
|
||||||
//contacts[i].depth = 0.003f;
|
//contacts[i].depth = 0.003f;
|
||||||
p1.Velocity = p1.Velocity + new PhysicsVector(0, 0, 2.5f);
|
p1.Velocity = p1.Velocity + new PhysicsVector(0, 0, 2.5f);
|
||||||
//contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p2.Size.X / 2), contacts[i].pos.Y + (p2.Size.Y / 2), contacts[i].pos.Z + (p2.Size.Z / 2));
|
//contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p2.Size.X / 2), contacts[i].pos.Y + (p2.Size.Y / 2), contacts[i].pos.Z + (p2.Size.Z / 2));
|
||||||
OdeCharacter character = (OdeCharacter) p2;
|
OdeCharacter character = (OdeCharacter)p1;
|
||||||
character.SetPidStatus(true);
|
character.SetPidStatus(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
//contacts[i].depth = 0.0000000f;
|
//contacts[i].depth = 0.0000000f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -329,7 +342,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
if (p1.PhysicsActorType == (int) ActorTypes.Prim && p2.PhysicsActorType == (int) ActorTypes.Prim)
|
if (p1.PhysicsActorType == (int) ActorTypes.Prim && p2.PhysicsActorType == (int) ActorTypes.Prim)
|
||||||
{
|
{
|
||||||
// Don't collide, one or both prim will explode.
|
// Don't collide, one or both prim will explode.
|
||||||
contacts[i].depth = -1f;
|
contacts[i].depth = 0f;
|
||||||
}
|
}
|
||||||
if (contacts[i].depth >= 1.00f)
|
if (contacts[i].depth >= 1.00f)
|
||||||
{
|
{
|
||||||
|
@ -356,11 +369,11 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
if (p1.PhysicsActorType == (int) ActorTypes.Agent)
|
if (p1.PhysicsActorType == (int) ActorTypes.Agent)
|
||||||
{
|
{
|
||||||
OdeCharacter character = (OdeCharacter) p2;
|
OdeCharacter character = (OdeCharacter)p1;
|
||||||
|
|
||||||
//p2.CollidingObj = true;
|
//p2.CollidingObj = true;
|
||||||
contacts[i].depth = 0.003f;
|
contacts[i].depth = 0.003f;
|
||||||
p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 0.5f);
|
p1.Velocity = p1.Velocity + new PhysicsVector(0, 0, 0.5f);
|
||||||
contacts[i].pos =
|
contacts[i].pos =
|
||||||
new d.Vector3(contacts[i].pos.X + (p1.Size.X/2),
|
new d.Vector3(contacts[i].pos.X + (p1.Size.X/2),
|
||||||
contacts[i].pos.Y + (p1.Size.Y/2),
|
contacts[i].pos.Y + (p1.Size.Y/2),
|
||||||
|
|
Loading…
Reference in New Issue