Features
- allow "dive under" solids, qr for player to draw under layer 1 while diving
d80084a4d
Player
- Revamp drawing code
3ee61b001
- ffcs and script draws can be negative-layered
- sprite Z-sort and optional Y-sort
- z-thresholds for each layer, allowing sprites to "jump through" layers as their Z increases
- weapon animation code is no longer done during weapon drawing (also fixes weapon shadow draw timing)
- generally cleaner code
- some minor graphical fixes
- optimize ORR/ORV/ORR32/ORV32 in x64 jit
34ead2e3b
Web
- add zasm output to zscript playground
f7a7e2a82
Bug Fixes
Player
- mark new functions after seeing a RETURNFUNC
ef8c3f977
zasm_construct_structured missed an edge case related to Init global scripts where GOTO is used to call the initial function, rather than CALLFUNC.
- ensure is_in_current_region returns true for the current screen
6b353d055
0x80+ screens were accidentally never considered to be in the "current region", even when they are the current screen. That prevented many engine features from working correctly.
- armos/graves not activating properly from Large Hitbox player
1b4fd9b50
- some more things that were expecting a water combo ID were getting the combo type
abb716bec
clean up the player's water checks to all use a central function
- held-up items treated 'Only Held' pickup string flag as 'Always'
82f2b3105
Editor
- Map Settings dialog
?
button closing whole dialog50e8e72b8
- subscreen editor color selectors not showing cset 12/13 properly
491824681
- trigger summary exstate cause broken
fa8ca1f7d
- Tile anim preview frames using wrong width
45c130b34
Web
- WasmModuleBuilder::internFuncType no longer totally broken
6a71aa75e
- correctly create wasm for new quests with no Wait instructions
6c2700f16
Build
- remove qrs.zh from context_strings.cpp dependency
b58ab69e4
Chores
- update replay_uploads_known_good_replays.json
25ce313ab
Refactors
Player
- add p99 and p99.9 to frame timings
cf3037df9
- use unique_ptr instead of shared_ptr for ReplayStep logs
3a0d1647f
- clean up optimizer/jit management
a3e48bba8
Adds a "zasm pipeline" system to manage when the optimizer or jit runs.
Also implements running the optimizer in the background as the game runs, which mostly works but I've decided to remove it in the next commit because it greatly complicated the code, and I think the optimizer runs fast enough to just run on quest load.
- simplify zasm pipeline by running optimizer on load
e9861cf62
- remove manual replay update mode (never used it)
f65c5a4e0
ZScript
- for x64 jit, compile each function separately
daa116161
Instead of compiling the entire ZASM chunk at once, compile only one function at a time, and only the "hot" ones. This greatly reduces the amount of memory needed to compile scripts, and does not waste any time compiling unused code.
- more efficient assembly for PUSHARGSR/V
1c5745909
- use c-array instead of bounded_vec for return stack
171741ed7
- use c-array instead of map for ZasmArrayManager
cf475daea
- add zasm optimization bool to jit cache key
e12ccc910
Tests
- skip asking to make compare report for --not_interactive
01ba38109
- make sure test folder is created for replay_uploads.py
6310394c6
- add test_jit_runtime_debug_test
09592b546
- organize replays folder a bit more
3bb2a8be2
Misc.
- update AUTHORS
c3b45ae72
- tweak database collect script
c79bf5aef
- fix possible encoding errors when loading database manifest.json
a47af919f
- auto-generate 'include/bindings/qrs.zh' from source code
93f82434e
Player
- print output path when writing zasm to file
850c93244