I have a global function that changes state that without the cosmetics look like this...
parseUIMessage(integer num, string str){
if (str == "dead" ) {state dead;}
}
That works perfectly in SL but it wont compile in LSL Plus because of "state changes not allowed from this context"
but they should be... :-(
When reading http://wiki.secondlife.com/wiki/State you will find a caveat that states...
In general, states cannot be changed inside of user-defined (global) functions. The compiler will throw the error 'ERROR: Global functions can't change state'. However, a workaround can be used by putting the state change in the body of a simple 'if' statement; one which is without an 'else' clause (Ex: if (condition) state Two; rather than if (condition) state Two; else state default;). This is a missfeature (missfeature: a lava-flowed bug that has turned into something akin to a feature).
Since SL allows this I would like that LSL Plus did it as well.