Thank you, salahazar, for a patch that corrects the behavior of

llDetectedLink(). Also a small refactor to remove an interface member
from IScriptEngine.
This commit is contained in:
Melanie Thielker
2008-08-27 22:53:58 +00:00
parent 6e3367d68c
commit 5525a3ecb4
8 changed files with 64 additions and 48 deletions

View File

@@ -83,8 +83,8 @@ namespace OpenSim.Region.Environment.Scenes
public event OnShutdownDelegate OnShutdown;
public delegate void ObjectGrabDelegate(uint localID, LLVector3 offsetPos, IClientAPI remoteClient);
public delegate void ObjectDeGrabDelegate(uint localID, IClientAPI remoteClient);
public delegate void ObjectGrabDelegate(uint localID, uint originalID, LLVector3 offsetPos, IClientAPI remoteClient);
public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient);
public delegate void ScriptResetDelegate(uint localID, LLUUID itemID);
public delegate void OnPermissionErrorDelegate(LLUUID user, string reason);
@@ -492,21 +492,21 @@ namespace OpenSim.Region.Environment.Scenes
handlerShutdown();
}
public void TriggerObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
public void TriggerObjectGrab(uint localID, uint originalID, LLVector3 offsetPos, IClientAPI remoteClient)
{
handlerObjectGrab = OnObjectGrab;
if (handlerObjectGrab != null)
{
handlerObjectGrab(localID, offsetPos, remoteClient);
handlerObjectGrab(localID, originalID, offsetPos, remoteClient);
}
}
public void TriggerObjectDeGrab(uint localID, IClientAPI remoteClient)
public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient)
{
handlerObjectDeGrab = OnObjectDeGrab;
if (handlerObjectDeGrab != null)
{
handlerObjectDeGrab(localID, remoteClient);
handlerObjectDeGrab(localID, originalID, remoteClient);
}
}

View File

@@ -243,9 +243,9 @@ namespace OpenSim.Region.Environment.Scenes
// If the touched prim handles touches, deliver it
// If not, deliver to root prim
if ((part.ScriptEvents & scriptEvents.touch_start) != 0)
EventManager.TriggerObjectGrab(part.LocalId, part.OffsetPosition, remoteClient);
EventManager.TriggerObjectGrab(part.LocalId, 0, part.OffsetPosition, remoteClient);
else
EventManager.TriggerObjectGrab(obj.RootPart.LocalId, part.OffsetPosition, remoteClient);
EventManager.TriggerObjectGrab(obj.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient);
return;
}
@@ -274,9 +274,9 @@ namespace OpenSim.Region.Environment.Scenes
// If the touched prim handles touches, deliver it
// If not, deliver to root prim
if ((part.ScriptEvents & scriptEvents.touch_end) != 0)
EventManager.TriggerObjectDeGrab(part.LocalId, remoteClient);
EventManager.TriggerObjectDeGrab(part.LocalId, 0, remoteClient);
else
EventManager.TriggerObjectDeGrab(obj.RootPart.LocalId, remoteClient);
EventManager.TriggerObjectDeGrab(obj.RootPart.LocalId, part.LocalId, remoteClient);
return;
}