Features
Player
- enable ZASM optimizer
119445961
Script heavy quests are known to run 2x more efficiently with this enabled.
Bug Fixes
Player
- prevent crash in ffc changer prev/next swap
91348e710
- prevent crash from div-by-0 with enemy misc
668058fc1
Many configurable enemy misc values are used as the dividend in a modulus operation. If these values are set to 0, a crash can happen. The result now is to return 0 (same result as when configured with 1).
- ignore corrupted enemies in 1.90 or older quests
dc69f7b14
Somehow, quests saved in old versions could sometimes set invalid screen enemies. Modern ZC has more enemies, so those bad quests were now loading scary new enemies like Ice Wizzrobes where before they might do nothing interesting.
Now, when loading 1.90 or older quests, any enemy ids that were not possible at the time are now ignored.
- stop drawing dive items in lens view after pickup
94796c4eb
This bug only happened if the
Old Special Room Screenstate Detection
QR was on. - use correct option for optimize_zasm
400fbba4f
- update default for optimize_zasm in zc.cfg
45b8f8a0b
Editor
- clean up 'Button Counter' subscreen widget '?' buttons
4f7adab43
- compiler settings dialog visually offset
90b341141
- quest rules dialog inconsistencies
63db14d13
Editing qrs inside
?
buttons in the dialog should properly apply Applying a Ruleset/Rule Template/etc and then clicking Cancel will properly cancel those changes Editing QRs and then applying a Rule Template will no longer lose the edits made before applying the template
ZScript
- prevent rare crash when jitted script ends
ac29eec66
Recently regressed in 004f602.
Chores
Player
- remove some unused bounds check functions
85c190adc
Refactors
Player
- make some ZASM optimize passes experimental
91f970ebe
The unreachable and spurious branche passes are now off by default, not because they don't work but because they take the longest amount of time for the smallest improvement.
- optimize functions in parallel for 3.0 quests
29b824f26
The ZASM optimizer typically run in parallel across all zasm scripts, but newer scripts only have a single zasm script. So for new quests, parallelize on the functions instead.