(83) New Application & Window Icons:
MiceOnABeam now has nifty application and window icons sporting our favorite modeling mice.
(97) Propagate code in a composite state to all it's contained leaf states:
Compiler Directives #leaf and #endleaf can now be used within the Entry/Exit Action code of a Composite State to propagate LSL statements contained between the two directives to all it's contained leaf states.
This can be used to significantly simplify the use of filter functions such as llListen which are automatically canceled whenever a state change occurs.
Functions such as these can be now entered in the Entry Action code of a Composite State and will be automatically appended to the Entry Action code within each of the Composite State's Leaf States. In this way the filter function is automatically re-instated after every state change within the Composite State.
(108) Custom Globals code now checked to ensure only declarations or compiler directives:
The program now flags as coding errors any LSL statements entered within the Custom Globals dialog, that are NOT:
- Variable or function declarations;
- Compiler directives;
(134) Conditional Compilation:
Added support for the following conditional compilation directives:
- #define aSymbol: Sets aSymbol value to TRUE.
- #undef aSymbol: Sets aSymbol value to FALSE.
- #if aBooleanExpression: If aBooleanExpression evaluates to TRUE, the following lines till the next #elif/#else/#endif will be included within the generated LSL code.
- #elif aBooleanExpression: If previous #if/#elif is false, and aBooleanExpression evaluates to TRUE, the following lines till #elif/#else/#endif will be included within the generated LSL code.
- #else: If previous #if/#elif is false, the following lines till #endif will be included within the generated LSL code.
- #endif: End of conditional compilation sequence.
(130) Clicking mouse outside an in-place name edit will now cancel the edit:
An in-place edit of a modeling component name (done by double-clicking the component or selecting Edit Name from the component's context menu) is a modal operation which blocks all other activity until the edit is saved using the ENTER key, or cancelled using the ESC key.
With this release the user can also simply click outside the edit box to cancel the edit.
(35) Options now set to default if problem found:
All settings within the configuration file will be set to their default values if any settings are found to be invalid upon program start-up.
(136) Consolidated State_Entry() and State_Exit() functions within single section:
A new STATE-ENTRY/EXIT FUNCTIONS section replaces the separate STATE-ENTRY FUNCTIONS and STATE-EXIT FUNCTIONS sections within the code generation layout. A State's state_entry() and state_exit() functions are now listed together rather than in separate sections as done previously.
(55) Program will now start with (optional) Splash Screen:
The MiceOnABeam program will now start by default with a Splash Screen that will show the program's start-up progress. The Splash Screen can be disabled through the Show Splash Screen option in the General tab from the Options menu.
(138) Coding error messages are now cleared when External Editor opened:
Any errors that have been flagged in code, are now automatically cleared when an external editor is opened on the code.
(96) Redo after an Undo of a transition change did not restore transition trigger:
Changing a transition's trigger event, followed by an Undo, and then a Redo, did not restore the change, but instead left the transition with the original event.
The transition trigger is now properly restored in this case.
(51) Deleted object was saved:
Moving the start point of a transition to another modeling component did not fully delete the former transition point, causing it to be saved with the model.
The former transition point is now properly deleted.
(140) Moving outgoing transition from Choice Point failed:
When attempting to move an end point of a transition outgoing from a Choice PS to another modeling element, the operation was incorrectly prevented with the error message: "Source already has transition with same name." The operation is now permitted.
(191) State with multiple outgoing transitions with same event & guard TRUE:
Given a state with multiple originating transitions with the same event. If one of the guard conditions was statically set to "TRUE", then the code generator continued to generate code to test the guards of the remaining transitions, producing an incorrect "if..else" chain. This also applied to Group Transitions which had been propagated down to Leaf States during code generation.
Now in the above scenario, whenever a transition's guard is statically set as "TRUE", the remaining transitions are ignored.
(41) Moving transition source point to Choice PS didn't update Entry Point info on destination state:
Entry and Exit Point extended info "T<<S" is now properly updated when transition connection points are moved between modeling entities.
(132) Moving a State Editor window will clear the Undo/Redo history.