RetroAchievements / rcheevos

Library to parse and evaluate achievements and leaderboards for RetroAchievements
MIT License
90 stars 34 forks source link

split processing into pause/reset/hittarget/measured/other passes #380

Closed Jamiras closed 2 weeks ago

Jamiras commented 2 weeks ago

Allows processing to abort early if an active PauseIf/ResetIf is encountered. Also allows non-logical conditions (AddAddress, AddSource, etc) to be ignored when evaluating the trigger. The chained value will be calculated by changes made in #362, and only the final comparison need be performed.

Improves overall processing performance by allocating conditions as a single array, with conditions in the order they will be processed. The linked list chain maintains the original order and provides backwards compatibility for anything directly accessing the data.