Patch by Apelsin that fixes behaviour of llSetPos and llGetLocalPos for attachments.
This fixes Mantis #3923. Signed-off-by: Melanie <melanie@t-data.com>0.7.0.2-release
							parent
							
								
									4f63edaa72
								
							
						
					
					
						commit
						be07063102
					
				|  | @ -1926,7 +1926,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
| 
 | ||||
|             if (part.ParentGroup.RootPart == part) | ||||
|             { | ||||
|                 if ((targetPos.z < ground) && disable_underground_movement) | ||||
|                 if ((targetPos.z < ground) && disable_underground_movement && m_host.AttachmentPoint == 0) | ||||
|                     targetPos.z = ground; | ||||
|                 SceneObjectGroup parent = part.ParentGroup; | ||||
|                 LSL_Vector real_vec = SetPosAdjust(currentPos, targetPos); | ||||
|  | @ -1958,18 +1958,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|         protected LSL_Vector GetPartLocalPos(SceneObjectPart part) | ||||
|         { | ||||
|             m_host.AddScriptLPS(1); | ||||
|             if (part.ParentID != 0) | ||||
|             { | ||||
|                 return new LSL_Vector(part.OffsetPosition.X, | ||||
|                                       part.OffsetPosition.Y, | ||||
|                                       part.OffsetPosition.Z); | ||||
|             } | ||||
|             else | ||||
|             if (part.ParentID == 0) | ||||
|             { | ||||
|                 return new LSL_Vector(part.AbsolutePosition.X, | ||||
|                                       part.AbsolutePosition.Y, | ||||
|                                       part.AbsolutePosition.Z); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 if (m_host.IsRoot) | ||||
|                 { | ||||
|                     return new LSL_Vector(m_host.AttachedPos.X, | ||||
|                                           m_host.AttachedPos.Y, | ||||
|                                           m_host.AttachedPos.Z); | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|                     return new LSL_Vector(part.OffsetPosition.X, | ||||
|                                           part.OffsetPosition.Y, | ||||
|                                           part.OffsetPosition.Z); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public void llSetRot(LSL_Rotation rot) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Marck
						Marck