(339,90) Code Optimizations:
Certain code optimizations can now be enabled by selecting the new Generate LSL (Optimized) menu from the main program menu bar Script menu. This temporarily adjusts the code generation options resulting in more compact and optimized LSL code generated.
If you are using an external LSL simulator for debugging your scripts the non-optimized version may be desirable so that you can read the self-commented code and can take advantage of the execution tracing options. However the optimized version should almost always be used to generate the final, tested script for the SL environment.
The following two important optimizations are included in this release that can result in significant code savings depending on your script model:
- Group Transition: The code generator will now optimize Group Transitions where possible by combining code common to several states into a single if statement.
- Completion Transition: In previous releases, if a Composite State had a Completion Transition, then it would be propagated to each substate, whether or not the completion event could have been generated from within the substate. With this release the code generator will only create a Completion Transition on those substates that contain a Final State somewhere within their nested context.
(338) Pre-release functions & constants now supported by code completion & the built-in LSL editor:
The following LSL functions and constants are in a pre-release status in SL. They are now supported in MiceOnABeam for those users working on the SL beta grid.
- llGetLinkPrimitiveParams(integer link, list params)
- llSetLinkPrimitiveParams(integer linknumber, list rules)
- llSetLinkTextureAnim(integer link, integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate)
- llParticleSystem(integer link, list rules)
- llGetPrimMediaParams(integer face, list params)
- llSetPrimMediaParams(integer face, list params)
(342) Code Completion list box is now larger:
The width of the code completion list box has been made slightly larger to better accomodate longer function and constant names.
(343) Only standard LSL events can now be entered in the Transition Properties dialog:
Creating a custom event in the Transition Properties dialog has been disabled. This was initially put in for use with other virtual worlds. In the future this may be made configurable.
(350) Model files saved in beta releases prior to v0.2.0B are no longer supported :
Model files (*.dat) saved in beta releases prior to v0.2.0B are no longer supported and cannot be loaded into v0.3.0B. If this presents an issue for you, please contact MiceOnABeam Support.
While the product remains in beta release, it is good practice on installing a new release to always load and re-save files originally saved under the previous release.
(337) Crash occurred on drawing a new transition to a Final State:
This has been fixed.
(242) The syntax checker flagged an error unless a zero was present before the decimal point for a float constant < 1.0:
A zero is no longer required in this case. E.g., .234 is a valid float.
(332) Parser didn't support scientific notation for floats:
You can now use Scientific Notation when using floating point numbers in LSL code. E.g., float f = 1.23E+2
(315) Changing script model version number did not flag model as being changed:
It does now.
(314) Deselecting a component within a group selection disabled the Cut, Copy & Delete menu items:
Cut, Copy & Delete menu items will now always be enabled (in both the context menu of the State Editor, and within the Edit menu of the main program menu bar) whenever there is any modeling component selected within the State Editor. A small fix was also put in for Select All such that it will be enabled when a key modeling component is not selected (excepting transitions which are always included if both end points are selected).
(340) Event argument data may conflict with argument name:
When accessing event data using the EVENT_XXX functions, the argument name is used to access the corresponding argument data. To reduce the chance that argument data conflicts with the argument name, the name will be automatically prefixed with "%%". This change is transparent to the user who should continue to use the standard argument name to access the corresponding event argument data.
(348) State Variables/Function names improperly resolved after a transition copy/paste/aggregate/decompose:
When a transition was copied and pasted within a new or different state (which occurs for Copy/Paste, Aggregate & Decompose operations), it's Guard Condition and Transition Action components were not properly updated. As a result, any references to State Variables/Functions within the corresponding code segments were not properly resolved in the generated code.
Existing models that exhibit this problem will be automatically corrected upon opening the model in v0.3.0B. Users should then save the corrected model.
(229) Creating a transition from the State Border followed by Undo & Save prevented saving of model:
Drawing a transition from a State Editor border to a modeling component, immediately followed by an Undo and a Save, prevented the model from being saved properly. This has been fixed.
(312) Incoming transition with a Completion Event could be connected to a Final State:
This is now prevented to help ensure that the user does not inadvertently create an infinite loop within the model. Note that this does not eliminate all possibilities of an infinite loop being created such as from a convoluted design which redirects a completion transition chain back into the originating state.
(362) Connection Points deleted when decomposing a state:
Decomposing a Composite State which contained a state with an Entry or Exit Point on it's external border, incorrectly deleted the connection point and any transitions to it. This has been fixed.
(132) Moving a State Editor window will clear the Undo/Redo history.