Releases: Jamiras/RATools
Releases · Jamiras/RATools
v1.16.2
- 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 intally(). - restore name matching for published assets
- fix
thispointer not being captured for lambda expressions - fix duplicate items appearing in array when code generating data for
array_pushchanges - fix closed tickets showing up in New Script achievement list
- fix combining modified pointed-at values by using Remember/Recall
- fix exception if
array_filterpredicate 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
- 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
- support for structured data via
classdefinitions - support for multiset cached data
- added new
setparameter toachievement()andleaderboard()functions
- added new
- 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
prevacross multiple conditions - fix modulus support in local achievements
- fix nested
never()being discarded when removingonce()fromnever()clause - fix
never(A || B)insiderepeated()clause to generate OrNext instead of multiple ResetNextIfs - fix
__ornext()not being honored insidetrigger_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
- 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
- add
array_filterandarray_reducefunctions - 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
- add
double32anddouble32_bememory accessors - add
array_containsanddictionary_contains_keyfunctions - add
rich_presence_ascii_string_lookupfunction - add
assertfunction - support for turning complex arithmetic into remember/recall chains
- support for runtime modulus
- support for unary minus
- add
Copy Definition to Clipboardto 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_betternot 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_ofwith no parameters
v1.14.1
- 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
- support for multiline comments via
/* */ - add
#MinimumVersionheader 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)intoprev(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
What's Changed
- add
float_befunction - add
typeparameter toachievementfunction for missables/progression - add
transformparameter toascii_string_equalsandunicode_string_equalsto support prev/prior logic - add
rascript-cli.exefor 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 anunless() - 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
- ensure
tallywithdeducthas 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