Features
- add 'Script1'-'Script10' shield blockflags, to block specific scripted weapons.
b9e6136eb
- LW_REFARROW, LW_REFFIRE, LW_REFFIRE2 (reflected arrows, fire, fire2)
e3b23aa7d
Player
- optimize zasm scripts
16da940b1
First thing when loading a quest the ZASM scripts will undergo optimizations. Most optimization passes apply improvements similar to that which have been implemented in the zscript compiler, but are not present in older quest scripts. Others are novel and improve even modern zscript compiler output.
Savings for a few quests:
- Stellar Seas - 163762 ops (5%)
- Yuurad - 604668 ops (4%)
- Umbral Cloud - 105994 ops (8%)
The optimizations done currently are:
- Removing unreachable blocks of code
- Replace many PUSH/POP with equivalent single PUSHARGSR/POPARGS
- Reduce ops used for conditionals (COMPARER)
This is on by default, but can be disabled with
[ZSCRIPT] optimize_zasm = 0
inzc.cfg
. - add zasm optimize_setv_pushr
f2dd0314e
- Custom mirrors can 'block' instead of reflect per-direction
d3f813f6f
Editor
- Item Wizard (Shields)
f30dd7095
Bug Fixes
- implement set volume for GME music (spc,gbs,vgm,gym,nsf)
74d24c557
- Enemy Flames not reflecting off of shields, even with reflect flag set
3ea00017a
- issues with numbers between 0 and -1
489b85ea7
Player
- not showing error dialogs in title screen, and unbreak -only switch
949bb6abe
- clear spin state during screen scroll
23a9466d4
This avoid a ghost sword visible during scrolling, and also prevents a nasty bug where the player's action state would be frozen until hit.
- prevent crash in save creation by resetting global vars
9d9ea42c2
When a game is loaded, many global variables are initialized to a known state. These variables were not reset when the game ends and returns to the title screen. However, save creation happens to call code that checks the active subscreen pointer, which was invalidated. Accessing this could randomly crash or corrupt the program.
Now, these global variables are reset also just before loading the title screen.
- prevent failing to save after continue
e2922a7d3
Editor
- undefined memory write when applying modern quest ruleset
faeaa94a3
- lockblock/chest combo wizards not saving 'Use ExState' flag
bb1899ec8
- some more issues with warp dialogs
2afa91eec
ZScript Standard Library (std.zh)
- DMFS_ constants being off-by-one
c0144e90d
ZScript
Refactors
Player
- use common structured zasm utilities in jit_x64.cpp
c40c79a06
Misc.
Player
- add -analyze-zasm-duplication for finding duplicated functions
aa467263c
Not fully finished, just a start.
- temporarily disable compare zasm opt as I improve in a branch
52d0aa35a
ZScript
- add 'itemdata->LAttributes[]' to access attributes as a full 32-bit long value
136e7fa2a