All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you've read, understood, and agreed to those terms.
As per Haravikk Mistral's suggestion on SVC-2286 :
"llRetainEvents(integer flag);
This function allows you to specify whether you want to retain events during a state-transition by setting flag to TRUE (keep events) or FALSE (clear events). Default behaviour is llRetainEvents(FALSE) which is the same as it is now."
This would allow the option of not flushing the queue, without changing existing behavior and breaking content.
Description
As per Haravikk Mistral's suggestion on SVC-2286 :
"llRetainEvents(integer flag);
This function allows you to specify whether you want to retain events during a state-transition by setting flag to TRUE (keep events) or FALSE (clear events). Default behaviour is llRetainEvents(FALSE) which is the same as it is now."
This would allow the option of not flushing the queue, without changing existing behavior and breaking content.
The code that executes when the events queued in the old state are dequeued in the new state should be the code for the event in the new state. No code from the old state should execute when the state is switched.
This will make state transitions a tool to express what I think they were meant to express: they dictate what code runs when an event is handled by the script, regardless of whether the event was put on the queue in the current state or the previous one.
Christopher Omega - 25/Jun/08 08:11 PM The code that executes when the events queued in the old state are dequeued in the new state should be the code for the event in the new state. No code from the old state should execute when the state is switched.
This will make state transitions a tool to express what I think they were meant to express: they dictate what code runs when an event is handled by the script, regardless of whether the event was put on the queue in the current state or the previous one.
I am unsure about how big a change to the VM this would require. I'm pretty sure it would entail adding a new register to the LSL2 header. This would be a change large enough that it would not happen until after the release of Mono.
Strife Onizuka - 26/Jun/08 04:01 PM - edited I am unsure about how big a change to the VM this would require. I'm pretty sure it would entail adding a new register to the LSL2 header. This would be a change large enough that it would not happen until after the release of Mono.
This will make state transitions a tool to express what I think they were meant to express: they dictate what code runs when an event is handled by the script, regardless of whether the event was put on the queue in the current state or the previous one.