Features
- ZScript arrays now are separately typed from non-arrays.
cf2769fe9
Array types can be declared by adding
[]
.
ZScript
- option 'OLD_ARRAY_TYPECASTING' to use old array type handling
d7555bf9e
Bug Fixes
- correct the version string for 2.55.x releases
7d9ceee14
- incorrect default right string margin
1428ca004
Player
- visual text bug in sound panel
5f16c4d04
- active shields interacting with light beams while inactive
96aeccbc5
Editor
- arrow buttons above combo columns sometimes not working properly
1af434da4
- "Used Tiles" completely failing to calculate
009d59164
ZScript
- object fields not being available in dtor
7feb9afdd
This regressed because of the recent GC changes.
- compiler crashing on for-each loops
b00f59aad
This regressed because of the recent error locations refactor.
- some bindings ZASM using wrong literal values
975cf9c60
- 'loop()'s not having location metadata associated with their identifier
68a5f70c8
- 'hero' and 'link' script types not compiling
4ce3a2186
- code gen for range loop using wrong op
213361564
- handle engine subscreen in ScriptTypeToString
19edaac07
Documentation
Editor
- touch up attack/whimsical ring help text ('damage' -> 'power')
c5da0a5c6
Refactors
Player
- rename the "ZScript Debugger" to "ZC Console"
d44b13ffa
ZScript
- array literals better deduce their element types
3717da293
- use faster register allocation in jit
50b8b0bf2
asmjit's register allocation was using a bin-packing algorithm. This turns out to be very slow for the assembly that our jit compiler emits, since the vast majority of variables exist for only a single basic block. Instead of bin-packing, the much faster and simpler linear scan register allocation algorithm is now used.
For a very large 200k-instruction script, compilation went from 19.5s to 2.8s (a 85% decrease).
With this improvement, the 20k-instruction limit for jit has been removed. One example of the impact of this is that
yuurand.zplay
, which the jit compiler was previously mostly disabled for since most of its scripts are huge, now has all its scripts compiled. This increased the average FPS foryuurand.zplay
from ~320 to ~2000, while still reducing the total time spent compiling.Theoretically this change in register allocation may produce slower runtime code, but there was no drop in FPS realized in the
maths.zs
stress test. - remove ZASM debugger
bb5404c8d
This was already made inaccessible from the GUI in 1da2d02, but now it is removed entirely. Work on a real debugger will begin soon.
- type-safe opcode classes and use zasm table for stringification
75dc4d745
- separate zasm code from script data
75f981f57
Tests
- add eiyuu.zplay
982031f5c
- make some test scripts emit no warnings
6720fc50e
- update test scripts for new array syntax
873e7ecd6
- add item_spawns_cloud.zplay
0ab66ae79
- add crucible_quest_short_1.zplay
f7650745d
Misc.
ZScript Standard Library (std.zh)
- update headers and bindings with array typing
b23b23484