* 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))
 | 
			
		||||
                        {
 | 
			
		||||
                            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),
 | 
			
		||||
| 
						 | 
				
			
			@ -1208,4 +1221,4 @@ namespace OpenSim.Region.Physics.OdePlugin
 | 
			
		|||
        {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue