Yengine: clear events queue on reset. Also keep clearing all on state change. (Linked message events are deleted at sl)
parent
7110e98815
commit
772aa5234a
|
@ -218,7 +218,9 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||||
// do not do llResetScript on entry
|
// do not do llResetScript on entry
|
||||||
if(eventCode == ScriptEventCode.state_entry && stateCode == 0)
|
if(eventCode == ScriptEventCode.state_entry && stateCode == 0)
|
||||||
return;
|
return;
|
||||||
ClearQueueExceptLinkMessages();
|
// do clear the events queue on reset
|
||||||
|
ClearQueue();
|
||||||
|
//ClearQueueExceptLinkMessages();
|
||||||
throw new ScriptResetException();
|
throw new ScriptResetException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,6 +585,7 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||||
* Tell outer layers to cancel any event triggers, like llListen(),
|
* Tell outer layers to cancel any event triggers, like llListen(),
|
||||||
* then tell outer layers which events the new state has handlers for.
|
* then tell outer layers which events the new state has handlers for.
|
||||||
* We also clear the event queue as per http://wiki.secondlife.com/wiki/State
|
* We also clear the event queue as per http://wiki.secondlife.com/wiki/State
|
||||||
|
* old scripts may want linked messages, but that is not as SL does now
|
||||||
*/
|
*/
|
||||||
public override void StateChange()
|
public override void StateChange()
|
||||||
{
|
{
|
||||||
|
@ -595,7 +598,9 @@ namespace OpenSim.Region.ScriptEngine.Yengine
|
||||||
// Tell whoever cares which event handlers the new state has.
|
// Tell whoever cares which event handlers the new state has.
|
||||||
m_Part.SetScriptEvents(m_ItemID, GetStateEventFlags(stateCode));
|
m_Part.SetScriptEvents(m_ItemID, GetStateEventFlags(stateCode));
|
||||||
|
|
||||||
// Clear out any old events from the queue.
|
// keep link messages
|
||||||
|
//ClearQueueExceptLinkMessages();
|
||||||
|
// or Clear out all old events from the queue.
|
||||||
lock(m_QueueLock)
|
lock(m_QueueLock)
|
||||||
{
|
{
|
||||||
m_EventQueue.Clear();
|
m_EventQueue.Clear();
|
||||||
|
|
Loading…
Reference in New Issue