Skip to content

Releases: Jamiras/RATools

v1.15.0

02 Oct 00:46
879ada6
Compare
Choose a tag to compare
  • add double32 and double32_be memory accessors
  • add array_contains and dictionary_contains_key functions
  • add rich_presence_ascii_string_lookup function
  • add assert function
  • support for turning complex arithmetic into remember/recall chains
  • support for runtime modulus
  • support for unary minus
  • add Copy Definition to Clipboard to achievement viewer
  • add progression/win_condition/missable indicators to achievement list
  • automatically replace leaderboard submit with always_true() if identical to leaderboard start
  • allow opening script from command line (allows associating .rascript files with RATools.exe)
  • improve error message when indexing empty array
  • improve error message when encountering runtime code at an execution level inside a function
  • fix #MinimumVersion comment not affecting leaderboards
  • fix lower_is_better not being set correctly when creating new scripts
  • fix OrNext 0=1 following AddSource being improperly optimized out
  • fix bitwise inversion flag being ignored when present on boths sides of operator
  • fix ResetNextIf attached to PauseIf being turned into a ResetIf if trigger had no hit targets
  • fix explicit modifier being discarded when relocating SubSource
  • fix broken parser when shorthand function definition contains a parse error
  • fix ability to call nested function recursively
  • fix infinite loop when summation chain contains subtraction and pointers
  • fix exception calling max_of with no parameters

v1.14.1

19 Jun 16:08
Compare
Choose a tag to compare
  • no longer generate leaderboard values with operator in final measured clause
  • fix exception typing a memory accessor before a clause surrounded in parentheses
  • fix dumping script containing AddSource and SubSource in multiple clauses of same achievement
  • fix migration of constants in measured statement using percent format

v1.14.0

31 May 13:16
Compare
Choose a tag to compare
  • support for multiline comments via /* */
  • add #MinimumVersion header meta-comment to specify some minimum target version for optional features
  • serialize addresses as 16-bit if script does not reference any addresses over 0xFFFF
  • support to translate prev(A == B) into prev(A) == prev(B)
  • support invoking functions stored in dictionaries without intermediate variables
  • support indexing function returns without intermediate variables
  • show output path as tooltip on local achievement count
  • allow character chords containing Ctrl (i.e. Ctrl+Alt+4 for left curly brace on French keyboards)
  • report error ORing hitcounts inside tally (instead of commas)
  • better error when summing expressions that cannot be converted to requirements
  • fix modification of nested dictionaries
  • fix arithmetic and bitwise modifications being combined incorrectly
  • fix constant modifier at end of AddSource chain becoming always_true()/always_false() when viewing logic
  • fix always_true() clause being removed from end of AddSource chain
  • fix IDs not being generated when using the CLI tool
  • fix modified comparisons being considered equal if they're equivalent without the modification
  • fix modified comparison losing modification when used inside tally()
  • fix error specifying anonymous function as default parameter
  • fix extra tally when dumping script containing AddHits chain inside Measured
  • fix address not updating when shrinking big endian sizes
  • fix exception processing repeated(N, always_true() && never(X))
  • fix exception doing a search and replace of some string to empty string
  • fix exception when cross-multipling conditions results in an always_true()
  • fix exception when predicate doesn't return a value

v1.13.0

04 Mar 17:17
Compare
Choose a tag to compare

What's Changed

  • add float_be function
  • add type parameter to achievement function for missables/progression
  • add transform parameter to ascii_string_equals and unicode_string_equals to support prev/prior logic
  • add rascript-cli.exe for command line processing of scripts
  • add leaderboard/rich presence value formats: TENS,HUNDREDS,THOUSANDS,FIXED1,FIXED2,FIXED3
  • support for trigger_when(measured(...)) via alt groups
  • allow max_of() to be called with an array of expressions
  • improved error messages for invalid function parameters
  • improved error message when trying to use a complex object as a dictionary key
  • fix assigning values to nested dictionaries
  • fix anonymous function error using boolean directly in if statement
  • fix "Input string was not in the correct format" on machines with locales using comma as a decimal separator
  • fix find at end of file not wrapping to start of file
  • fix mutually exclusive alts being collapsed into an always_true() clause
  • fix inverted bits being collapsed into a bitcount
  • fix never(always_true()) being discarded when guarded by an unless()
  • fix pointer offset calculation when subtracting a memory reference
  • fix exception comparing dictionary to value
  • fix exception processing code note containing both "bit" and "byte" substrings

Full Changelog: v1.12.2...v1.13.0

v1.12.2

07 Oct 19:23
Compare
Choose a tag to compare
  • ensure tally with deduct has at least one unbounded condition for total hit target
  • fix achievement containing only a modification to an AddSource constant not appearing modified
  • fix modifier being lost when comparing values with the same pointer chain
  • fix issue trying to process complex comparison to very large number
  • fix "Centiseconds" rich presence macro; support "SecondsAsMinutes" rich presence macro

v1.12.1

16 Jul 16:24
Compare
Choose a tag to compare
  • improve error message when parameter list has a trailing comma
  • improve error message when using measured with an untallied comparison
  • improve error message when building trigger from memory accessor without comparison
  • allow variables to be assigned to default parameters of functions to emulate constants
  • fix exception when viewport height change causes last line of script to be hidden
  • fix exception when local variable has same name as global function
  • fix ResetNextIf being converted to ResetIf when attached to a Trigger
  • fix modified AddAddress being optimized out of comparison
  • fix Measured target calculation when using tally
  • fix dumping achievement using measured unbounded tally

v1.12.0

23 Apr 21:40
Compare
Choose a tag to compare
  • only show first line of code notes in achievement/leaderboard views
  • new dialog to preview list of achievements as they would appear in the emulator
    • ability to export list of achievements from preview dialog
  • support for max_of when dumping leaderboards
  • improve error when function call contains a function used as a variable
  • fix infinite loop trying to find whitespace is a very long pointer chain
  • fix empty referenced memory addresses list when generating new script for game with no assets
  • fix issue generating multiple ResetNextIfs in an AndNext/OrNext chain
  • fix issue generating nested clauses in alt groups
  • fix infinite loop when underflow adjustment exceeds 32-bits
  • fix exception rebalancing comparison of unwrapped pointer offset and zero
  • fix exception when tally target is greater than 0x7FFFFFFF
  • fix exception generating script for game without name

v1.11.0

29 Jan 19:23
Compare
Choose a tag to compare
  • add mbf32_le function
  • add substring function
  • add ascii_string_equals and unicode_string_equals functions
  • add XOR operator (^)
  • add bitwise invert operator (~)
  • add horizontal scrollbar when file is sufficiently wide
  • ability to select entire lines by clicking on line number
  • support for merging bits into bitcount when pointers are involved
  • fix corruption of local notes containing newlines
  • fix dumping game using masked pointers
  • fix exception dumping game with no achievements or leaderboards
  • fix exception dumping game with incomplete leaderboards (one or more blank fields)
  • fix exception dumping rich presence with whitespace at the top of the file

v1.10.2

07 Dec 00:04
Compare
Choose a tag to compare
  • fix intersection of float comparisons

v1.10.1

03 Dec 16:43
Compare
Choose a tag to compare
  • fix any_of() logic for boolean predicates
  • fix dumping ResetNextIf for OR'd logic
  • fix intersecting optimization of OR'd logic
  • fix __ornext hint sometimes being optimized