Skip to content

Releases: Jamiras/RATools

v1.16.2

21 Dec 16:33

Choose a tag to compare

  • improved New Script functionality to create helper functions for pointed-at data
  • add [...] to filtered note in logic viewer to see the whole note
  • passing a comparison to rich_presence_value() will now generate an error. if counting was intended, it needs to be wrapped in tally().
  • restore name matching for published assets
  • fix this pointer not being captured for lambda expressions
  • fix duplicate items appearing in array when code generating data for array_push changes
  • fix closed tickets showing up in New Script achievement list
  • fix combining modified pointed-at values by using Remember/Recall
  • fix exception if array_filter predicate returns a non-boolean expression
  • fix exception if complex value expression does not contain a Measured clause
  • fix unexpected tally() when dumping scaled Measured values

v1.16.1

26 Sep 15:43

Choose a tag to compare

  • fix indexing of class fields
  • fix exception loading pointer memory notes containing blank lines
  • fix exception pressing left while typing at end of line
  • fix non-overlapping alts being merged if subclauses cover all values for an address
  • fix Remember being separated from Recall when promoting ResetNextIf to ResetIf
  • fix dumping comparison of indirect address to another indirect address using the same pointer
  • fix Array() being output when dumping unused array note

v1.16.0

17 Sep 14:29

Choose a tag to compare

  • support for structured data via class definitions
  • support for multiset cached data
    • added new set parameter to achievement() and leaderboard() functions
  • report error when multiple unique Remembers are needed to build an AddSource chain
  • improve structured code note processing
  • move Progression button from Game Stats dialog to separate menu item
    • leverages new API for better estimates
  • allow bitwise operations on AddSource chains via Remember/Recall
  • fix comparing indirect memory with static memory
  • fix distribution of prev across multiple conditions
  • fix modulus support in local achievements
  • fix nested never() being discarded when removing once() from never() clause
  • fix never(A || B) inside repeated() clause to generate OrNext instead of multiple ResetNextIfs
  • fix __ornext() not being honored inside trigger_when()
  • fix rebalancing of SubSource in the middle of a chain of indirect memory reads
  • fix unexpected distribution of divisor when performing integer division
  • fix incorrect extraction of BCD from comparison with modification
  • fix missing parentheses when dumping clause with ResetNextIf and OrNext
  • fix cursor placement for emoticons (and other characters wider than the fixed width font)
  • fix badges being lost when merging the User.txt file through rascript-cli.exe

v1.15.2

09 May 13:22

Choose a tag to compare

  • add link to local file in the Update Local dialog
  • fix infinite loop trying to rebalance SubSource prev comparison with multiple pointers
  • fix multiplication of two memrefs in rich presence macros
  • fix AddSource being used with Remember/Recall in an AddAddress calculation
  • fix AddSource being used with Remember/Recall in a Measured calculation
  • fix reading memory at pointer address with no offset
  • fix division by large number being converted to multiplication by zero
  • fix exception indexing function result
  • fix exception when multiple clauses of a complex subclause can be elimiated by a parent clause

v1.15.1

11 Mar 15:32
7e1c3eb

Choose a tag to compare

  • add array_filter and array_reduce functions
  • support using Remember/Recall when combining two modified memrefs for use in another memory accessor.
  • support collapsing neighboring bits into bitcount when used in rich presence macros
  • lower rich presence max length to match server value which is lower to accomodate the presence of unicode characters
  • eliminate non-ResetIf condition that would always be true when a ResetIf is not true
  • eliminate hit target on never(once(...))
  • fix OpenClipboard Failed error that occurs when some other applications (like a VM) are running
  • fix ^ operator not displaying in achievement viewer
  • fix error not being reported when repeated clause contains multiple OrNext subclauses ANDed together
  • fix rich presence appearing modified due to extra trailing whitespace
  • fix dividing by floats incorrectly serializing to legacy value format
  • fix ResetNextIf attached to PauseIf being discarded if it matches a ResetIf outside the PauseIf.

v1.15.0

02 Oct 00:46
879ada6

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

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

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

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

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