|
Using a requester solely within the confines of an invoked UDF could cause crashing
when the UDF returned a value to the caller.
|
|
ctlangle() and ctlpercent() have been corrected to include sliders
|
|
The flags() function of the Master class architecture is not invoked by Layout until
it needs to decide the fate of the plug-in (i.e., when the scene is cleared). This has
caused some problems with LScript's sanity management with situations like calling
ClearScene() from a SCENE-based Master script. LScript now calls the flags() function
itself the first time the process() function is invoked to ensure the proper internal
settings exist as soon as possible.
|
|
Some poor stack indexing in code that supports the 'fpdepth' pragma setting caused
certain equality tests to return the incorrect result.
|
|
A secondary definition of the SCENE global constant was cause incorrect interpretation
of the return value of the Master flags() function when it was returned.
|
|
A few string-related functions and functionalities have been buttressed against Very
Large strings.
|
|
The LScript VMap Object Agent constructor was lacking any mechanism for directly
accessing custom VMaps defined in an object. This has been rectified by allowing
custom type identities to be used when referencing a VMap either by index:
@define VMAP_PVOT @'P','V','O','T'@
...
map = VMap(VMAP_PVOT,1);
or by type:
map = VMap(VMAP_PVOT);
In addition, a Vertex Map (pre-defined or custom) can now be referenced by both
its type and its name:
map = VMap(VMAP_PVOT,"theMap");
or just by name:
map = VMap("theMap");
|
|
The getPivotRotation() method was being incorrectly mapped internally to the
getWorldRotation() code.
|
|
The Image Object Agent was not functioning in Modeler.
|
|
Returning non-global memory from the ctllistbox() control's name function could
cause a condition where the function's local memory was reclaimed by LScript's
garbage collector before it was added to the listbox. This often resulted in
either garbage characters in the listbox, or just a crash of the application.
This particular mechanism has been corrected to delay function memory cleanup
until after the return value has been safely placed into the listbox. This
means that listbox entries need no longer be anchored in global variables.
|
|
Situations where secondary UDFs appeared at the start of a script's compiled
code stream could cause a crash when called by other UDFs.
|
|
Requester panels were always positioned in the same location on the screen each
time they were opened. Requester panel attributes (screen position and dimensions)
are now permanently memorized by LScript. Up to the last 30 unique requester
panels are remembered, with the oldest entry being replaced by the newest if
that number is exceeded.
Panels are uniquely identified for memorization by the first 80 characters of
the requester title. If you alter the title of your requester, it is considered
a new (unique) requester instance.
|
|
Construction of array-based object variable references on the left side of an
assignment was not correctly identifying components for assignment, resulting
in an "internal stack error" message.
|
|
The visible() Object Agent method was not functioning correctly when applied to
listboxes.
|
|
An internal refresh buffering mechanism was being overrun when more than 500
calls were made to setvalue() from a listbox callback function.
|
|
The code that calculated the world rotation value for an object was not using
the correct values to generate the initial matrix.
|
|
The Bezier curve type was mapped to an obsolete implementation of the 1D
Bezier curve in the setKeyCurve() method. It now maps to the more current
2D Bezier implemenation.
|
|
Using a value of 'nil' in a sequence of string arithmetic operators could
cause a crash of the application.
|
|
The method used by LScript to compile regular expressions into a transportable
internal entity used tokens that clashed with those generated by the regular
expression compiler. This could result in corrupted expressions when certain
items were of the correct length, leading to failed matches or even application
crashes.
|
|
The ctlangle() control was assuming the provided angle measurement was in radians
instead of degrees.
|