* Fixed Physical prim, various issues, viewer freezes, sim crashes, ODE errors, etc.

afrisby
Teravus Ovares 2007-12-27 23:19:00 +00:00
parent 3cf3b426b6
commit 776e83941a
1 changed files with 19 additions and 6 deletions

View File

@ -299,29 +299,42 @@ namespace OpenSim.Region.Physics.OdePlugin
p2.PhysicsActorType == (int) ActorTypes.Prim))
{
if (p2.PhysicsActorType == (int) ActorTypes.Agent)
{
{ if (p1.IsPhysical)
{
int q = 1;
}
p2.CollidingObj = true;
//contacts[i].depth = 0.003f;
p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 2.5f);
OdeCharacter character = (OdeCharacter) p2;
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));
}
else
{
if (p1.IsPhysical)
{
int q = 1;
}
contacts[i].depth = 0.0000000f;
}
if (p1.PhysicsActorType == (int) ActorTypes.Agent)
{
if (p2.IsPhysical)
{
int q = 1;
}
p1.CollidingObj = true;
//contacts[i].depth = 0.003f;
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));
OdeCharacter character = (OdeCharacter) p2;
OdeCharacter character = (OdeCharacter)p1;
character.SetPidStatus(true);
}
else
{
//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)
{
// Don't collide, one or both prim will explode.
contacts[i].depth = -1f;
contacts[i].depth = 0f;
}
if (contacts[i].depth >= 1.00f)
{
@ -356,11 +369,11 @@ namespace OpenSim.Region.Physics.OdePlugin
}
if (p1.PhysicsActorType == (int) ActorTypes.Agent)
{
OdeCharacter character = (OdeCharacter) p2;
OdeCharacter character = (OdeCharacter)p1;
//p2.CollidingObj = true;
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 =
new d.Vector3(contacts[i].pos.X + (p1.Size.X/2),
contacts[i].pos.Y + (p1.Size.Y/2),