LavishScript:Release Notes

From Lavish Software Wiki
Revision as of 23:01, 10 July 2005 by Lax (talk | contribs)
Jump to navigation Jump to search
           LavishScript
           Version 1.33
  (c) 2004-2005 Lavish Software
---------------------------------
 
1.33
- Fixed float:Inc and float:Dec when not using indices
- Added data type members:
  * float.Ceil
  * float.Round
- Fixed EndScript command so using a full path and/or file extension is allowed
 
1.32
- Added data type methods:
  * string.EscapeQuotes
  * string.Escape
- Scripts missing a closing brace } after a function will report the error and not
  load

1.31
- Fixed issue with recursive functions

1.30
- Fixed Continue command
- Added per-script squelching in addition to the existing global squelching
- Added data type methods:
  * script:Squelch
  * script:Unsquelch
- Commands VarCalc, VarData and VarSet, previously marked deprecated have been removed

1.29
- Added data type methods:
  * rgb:Set[rrggbb]
- rgb.Red, rgb.Green, rgb.Blue are now byteptr type instead of int type, thus allowing
  rgb.Red:Set[#] and so on
- Added Top-Level Objects:
  * int Execute[command]

1.28
- Added #includeoptional preprocessor directive.  This will include a file if it exists,
  otherwise continue as if it never saw anything.

1.27
- Fixed script.RunningTime
- Added script.CurrentDirectory
- All functionality based on LavishScript CurrentDirectory now automatically uses per-script 
  CurrentDirectory if one is running

1.26
- Fixed issue with modules not unloading correctly

1.25
- Fixed issue with aliases not being applied correctly

1.24
- Added data type members:
  * string int.LeadingZeroes[desired length]
  * int script.RunningTime

1.23
- Switch, when used with no parameters, will now look for an empty "case" line.  Previously, it
  would show the syntax, and execute the first case.

1.22
- Removed \ parsing from the Preprocessor (this was not supposed to be there, and inconveniently
  required double escaping in scripts)

1.21
- Added data type members:
  * variable script.Variable[name]
- Restructured variable data type.  Now acts exactly like the variable it views, but with
  Name and Type members.

1.20
- Added Top-Level Objects:
  * script Script
  * script Script[name]
- Preprocessor #include now checks directory of current script file first
- Empty commands no longer resolve to the first command alphabetically
- ExecuteQueued will now accept an optional parameter for a case-sensitive substring search 
  to execute the next command in line that contains the given substring
- VarSet, VarCalc and VarData will now give a "deprecated" warning message.  Please switch 
  to using the :Set method for these variables
  Examples:
   "VarCalc x ${x}+1" becomes "x:Inc" or "x:Set[${x}+1]"
   "VarData x y" becomes "x:Set[${y}]"
   "VarSet x ${y}" becomes "x:Set[${y}]"
- Added "mutablestring" datatype, which inherits string. This type adds methods which should
  only be used on variables (like mutablestring:Set).  Any variables declared with the "string" 
  type will automatically use the "mutablestring" type (no changes to existing scripts or 
  extensions are generally necessary)
- To promote general simplicity, the I/O redirection operators < | > and >> have been removed.
  Subsequently, most mathematical formulae no longer need to be quoted (e.g. If and While
  condition expressions)
- Added command to replace output redirection operator:
  Redirect [-append] <filename> <command>  
- Scripts can now use ANSI-C comments which look like /* this */ (but C++ programmers dont get
  too excited, the non-ANSI // comments will not be added)
   
1.19
- LSModule v2

1.18
- Updated "time" type with new methods and members, changed the type of some of its members 
  to pointers, and allowed "time" variables to be set by a timestamp (standard unix timestamp),
  to make time-based calculations involving dates and times easier

1.17
- Fixed bugs with modules
- Added "exists" type, which always gives TRUE
- Added auto-execution of command file and script named "LavishScript" on startup

1.16
- Fixed Calculation issues
- Fixed variable casting
- Implemented current working directory independent of Windows.  If something still goes to
  the game directory by default let us know.
- Redirected input/output uses the LavishScript current working directory
- Added data type members:
  * string system.CurrentDirectory
  * string lavishscript.CurrentDirectory
  * int lavishscript.RunningTime
- New command: cd

1.14
- Fixed bug in point3f type
- Added column rendering to list functions

1.13
- Fixed several scripting bugs

1.12
- Fixed bug in script parsing when function parameters had no spacing

1.11
- New Modules system provides product-independent system for adding LavishScript commands, 
  Top-Level objects and data types
- Added "Modules" command
  Syntax: Modules -list|-add <name>|-remove <name>|-require <name>
  The -require option is meant for use in scripts -- if the module is not and cannot be loaded, 
  the script ends with an error message.