The following are the changes since nightly-2023-11-06:
Features
- Allow weapons to change sprite when lit on fire
b727121cb
Editor
- added buttons to the dmap editor to preview enhanced music looping
1822e0e47
Bug Fixes
Player
- set game played to false to fix quest progression sword/health bug
be675976b
ZScript
- fix SPRINTFA calling the wrong function
c49ed2840
Refactors
- Split graphical weapon init code, in prep for ignite sprites
9ca67c7b0
- make tooltips simpler to install, and map prev/next tooltip
ca09be0e2
ZUpdater
- just query website for release channel info
a724610af
Tests
- for replay tests baseline prompt, only consider releases predating current commit
d026d8834
Misc.
- allow '<:' in commit (similar to '!:'), to squash with prior commit in changelog
6ea35b2c7
ZLauncher
- add support zc button
11ec92044
The following are the changes since 2.55-alpha-119:
This data array can be edited in the 'Screen Data' dialog, and all changes made by scripts are saved to the save file.
Disables the pickup sound for an item if true.
This adds a "channel" configuration to releases that limits what releases the updater will consider when looking for new versions. This allows us to configure a "2.55" release channel, and prevents the from updating into 3.0 releases while still allowing it to grab new releases from 2.55.
This is necessary long term as it allows 2.55 users getting easy bug fix updates without moving them to 3.0, which should only be done explicitly.
Instead of using the monitor scale / DPI to multiply the size we set the window to, it now looks at the monitor resolution and uses the largest integer multiple of the base resolution (256x240 for zplayer, 456x342 for zeditor and zlauncher). This always takes into account the scaling of the OS (the monitor width/height changes when you modify that). If a window size is saved from a previous run, it will use that instead -- unless it won't fit, then it goes back to getting the largest resolution for the given monitor. More details:
This bug resulted in the tooltip / highlighter being offset when the window size changes.
Also adds new '(None)' door type. The player will not 'auto-walk' when entering from a '(None)' door, and no combos are placed when setting one in zq.
This should resolve problems with making save files observed on some Linux setups.
I'm so mad at how dumb this was. Specifically, it doesn't draw if you have "subscreen over sprites" disabled unless you're scrolling.
The map import tool was checking if the first screen's Should no longer need to ever manually 'rebuild transparency table'. As such, the default keybind for 'Reset Transparency' is now '(None)' instead of 'B'
This pretty much doubles FPS across the board. huzzah
This saves ~500ms on my Mac when loading Yuurand.qst
This adds Consolidates the logic for when a render item is dirty, and moves allegro 4 bitmap handling into a new derived class.
Change how Init Data is stored and saved to the quest file (and rearrange the dialog slightly) - Allow setting mcguffin level state for all levels in init data/cheats instead of just levels 1-8 - Init data health can be in HP instead of just in Hearts - Can set init values for script counters 26-100 (was missing before) - Change how data is stored and saved to the save file
This is the first step to moving This reduces CPU usage by ~3%.
Previously, 4-bit tiles were only unpacked just before being drawn. Unpacking means converting into a format ready for drawing, which is somewhat slow to do in functions as hot as tile drawing. Now, when a qst is loaded all 4-bit tiles are unpacked in memory. When saving a qst the reverse happens. This change has no impact on the qst file format.
This reduces CPU usage by ~7%.
This reduces CPU usage by ~5.5%.
This refactor reduces CPU usage by roughly 6%.
This results in some unavoidable minor graphical changes for quests with the QR "Subscreen Appears Above Sprites" disabled. Specifically, sprites (such as jumping enemies, weapons, etc) continue to draw over the subscreen background as before, but now also draw over the individual subscreen UI elements. In most cases this looks better, and better follows what the QR text says will happen.
Use the same smart FPS throttle that the player uses in the editor too.
This doubled the FPS in the Web version.
Also add a callback to RenderTreeItem, which allows the main drawing code to directly render the minimap as needed.
The previous hack of using a global variable incremented in the constructor had strange behavior, and would result in different ids given when reloading a quest.
Previously it would only look at the main branch, but that does not support long-living branches nor multiple release branches.
gzip compresses better than allegro PACKFILEs:
And it's a bit faster to load a qst in the Web version when it doesn't have to decompress it. For Yuurand.qst, loading time (including downloading) from 17.4s to 14.5s
Expand changelog
Features
b080de56c
Init Data
dither pattern picker/previewer ef1e3e5f6
ba6344865
8b7aa8ed7
809119087
3fb03f0b0
5ac8fd1ee
b4eb8aa23
8a18af11e
4d9976b23
65c4a5d61
1bc071fcf
d4a3aa3b8
a57ecc4dd
b727121cb
Player
5f9a3d367
Editor
918cdafca
c706b3af3
8c0e4b37b
26019c058
24e46ffb2
1822e0e47
ZScript Standard Library (std.zh)
memcpy
version that only takes 2 args (auto-determines size) 3bb11dda8
ZScript
21c168a1b
b9b290a14
340d55b9c
4a1bf1223
ZUpdater
bb9023ea8
Web
34580b86f
Bug Fixes
2f0fe8052
d120f2c3a
1695530d3
ed36204f0
e6bdfb99d
5add82df0
.app
to allow for app bundle to be renamed b393e5875
6d47e8136
02764be1b
62bfe66d4
e7dbfacdd
fadfa27d2
d3e8e7fcc
e45016fb2
c577892d9
fdd6da3c1
020466990
20f6fa908
Instead of using the monitor DPI to scale up a base resolution,
default to as large a resolution as possible while maintaining an
integer scale. This particular commit retains the previous behavior
for Windows, but the next one will move Windows to the new behavior
(separate commits just in case a revert is necessary)
not after.
instead of 2x the base resolution. Should improve rendering time a bit
part of screen and mess up mouse events if the initial display height
was bigger than the available height
Macs fullscreen display creation is bugged. Fine for Windowed -> then
Maximize, and fine for older Macs, but for now just set the default
to windowed mode to be safe
a049b6ce6
d7312b9dc
f59d8b314
c7ffbf652
6e97f2aaf
5018d9e54
Player
4748d9a89
ddd3f26a1
ee0eda1e2
d0e2908b1
60e9d9f41
325834d44
804484ddd
7c5c7c992
5163053b5
31f3840e4
7215fd92d
8cacad3d5
913003180
8f416879e
be675976b
Editor
23ad85cfb
f8d89f5ad
640378df8
f8fdd7bb7
5391348e4
50c6377e1
valid
field was a special value denoting it was "cleared" by the user. It's unclear why valid
holds this information, but presently it's not useful and breaks map imports randomly.
163f9a91f
cde9a4688
be4390661
3d674f868
4c7dfe677
1c9b81f57
8664554e2
972e6919a
243088418
164f77d33
b5a7ee226
95fac7ac8
4732eb4b0
5f76b78fe
1f65a0cca
8cd737c5a
ZScript Standard Library (std.zh)
cc67be852
ZScript
95edf1e5e
48511cdd5
2bd7e877d
Game->CurrentItemID()
being completely broken 9fc212abb
29c39e15a
58e391f63
c49ed2840
Web
9c309afab
8206a3008
Documentation
080b61e10
Build
ee5e02a1c
d388d1a6c
749746d6d
e3038f133
3bda28548
2ede55147
d5de2ebbd
Web
d79ef7d06
f8b2af856
fb44b2a78
7dbb75dee
bbdb9be63
Chores
it's
-> its
a7e3cf4ec
81b871ade
Refactors
8f547f8f5
01e13ec0a
b1a7b8d43
bounded_vec
container type 9edaa62a2
8ef8665a7
8d64f8374
b52d7eaea
prepare
and render
functions to the RenderTreeItem class. Also makes them virtual so that new classes can be made to represent a render item. The minimap drawing code was moved to this.
8a8ef4667
6af0dcc23
acb7c8481
be7c81d3c
09dfea4eb
15628e6f3
3a6d2d394
ffc.cpp
to zcbase.
44cb8bb72
4c922be5e
7a8021809
0ecfa71f6
2f6cf5a72
ff01c741b
973303a3c
990eb380b
9ca67c7b0
ca09be0e2
Player
8861f51f1
78af21af8
c22e9d68f
c1601e941
a42586c11
93f25b690
b3c942902
9646be4b1
2a571d392
Editor
ef146dede
3ca0a1208
df2602f85
66d882141
50f1344a3
042728610
0ebbc8450
911019c55
21ecb9203
d0549a3ed
eb1a43609
ZScript
8e6c48a21
02dbb040c
ZLauncher
986b27145
1c8149e0f
ZUpdater
a724610af
Web
cf3ce065b
452efb90a
Tests
9065169e6
a92664884
762ac2db5
c5f02cfb1
2cf6ae4c6
6545e847d
df4644a4e
27f017136
8ef2c1575
492bc6b8b
1af5883f2
f9fa641ef
d0147e77e
d026d8834
Editor
53d06c6f2
CI
c17ef05ea
1d3ebb548
78cf78184
f589ada7e
3869a0869
ec906a94b
ced10c828
69c4cf890
c5f2a5b1a
36666a369
3e2554782
33be44347
Misc.
3bba771c0
69784d2fa
1b30ef164
3ebdba27f
e3ef8f63a
9d8e9239a
f0f80f38d
716ec391f
06bea6850
4b54dd752
9a3e56796
6ea35b2c7
Player
9919433e6
31c7829ca
f2084a1a0
Editor
-uncompress-qst
CLI command 696657428
2b681111a
ZScript
e6296db90
5986e6021
3e720b62d
e8f60b40e
ZLauncher
11ec92044
Web
8aa27f494
dee67d885
3fb07895d
b1e6584dd