The one with custom Guys, quest package exports, and a ZScript VS Code extension.
Features
- Torch combos support shapes, dirs, new Square shape.
57f6cea0c
Also refactor how shape drawing works to remove the need for duplicate ZQ versions.
- Add general SFX/Sprites to combos (no zscript access yet)
4d55a2a74
- add solid damage combo QRs
ab146e65f
also fixed "No Solid Damage Combos" QR and fixed more issues with Newer Hero Movement
- Customize 'Guy' per-room (compat ruled)
00302d51e
- multiple new options related to subscreen item selection
6ff6a775f
- Cursor can be allowed to select empty slots (Freeform Subscreen Cursor)
- Can be set to require pressing B to equip (Always Press To Equip)
- Items have 'Non-equippable' flag, allowing them to be cursor-selected without allowing them on buttons.
- add quest package export for standalone app
669ed4833
In the ZQuest
File -> Export
menu, there is a new option to package your.qst
file as a standalone application. This gives you the option to distribute your quest in a way that allows people to play without grabbing any other files, or needing to select a file when starting a save slot.For a qst
game.qst
with a title "My Game", it looks like this:- My Game - My Game.exe - data/ - zelda.exe - zc_args.txt - game.qst - ... all support files ...
This is located in the
packages
folder of the root installation folder.Double clicking
My Game.exe
launches./data/zelda.exe
with the CLI switches listed inzc_args.txt
. By default, the export tool provides these switches:-only game.qst -notitle
. You can set whatever else you like. For example, if you want to skip the save file screen entirely, you can use-standalone
instead of-only
.Every time a package export is done in ZQuest, the folder is created from scratch.
To include additional files, make a folder
./packages/My Game_extra
and place whatever your quest needs (music, images,zc_args.txt
,zc.cfg
, etc). The export tool will copy this folder into the package folder at the end, which allows you to overwrite whatever you want.Custom icons are also supported. See
docs/packaging_quests.md
for details. - add -window-title switch
e9a7e4f6c
Editor
- 'Quick Compile ZScript' favorite command
8652f1c91
- Option to auto-recompile when saving quest
28db73dc7
- save autolayer info to reapply to blue void screens as a default
d955ace97
ZScript
- Add script access to draw lights (circle, cone, or square) arbitrarily.
bd032d78d
- '@InitScript(int weight)' annotation allows multiple global init scripts (all merged into ~Init).
dcaa46921
- jit compile MULTV
02cb588d3
- JIT compile scripts with background threads
e0a845b53
Control how many threads are used with
[ZSCRIPT] jit_threads
.# Number of background threads for compiling scripts. # -1 to set to number of available CPU threads # -x to set to (number of available CPU threads) / x # 0 to only compile on the main thread jit_threads = -2
Visual Studio Code Extension
- create VS Code extension
dabe7c091
This adds support to VS Code for displaying error/warning messages, syntax highlighting, and code formatting. You can install it by searching for "zscript" in the extensions Marketplace. See the extension homepage for more:
https://marketplace.visualstudio.com/items?itemName=cjamcl.zquest-lsp
- update vscode extension keywords
6ecf0775a
Bug Fixes
- memory leak when allegro does not find file
4ab4a512f
- for linux, use posix_spawnp when launching processes
d93e3c2eb
- set dirty flag for vedit text field components
e21e66f69
- bad ternary from solid damage commit
c46056a29
- ZQ doesn't lock up if parser crashes [windows only]
51eaa167d
- properly set sentry breadcrumb category
654dd9c24
- add win7 compat for GetOverlappedResults
8a0699eb5
Player
- reset button down state correctly
bb1e906cd
- 'npc->Remove()' no longer leaves behind enemy bg sfx
691b022d8
- clear darkroom bitmaps to dark color during player death animation
22e241747
- Lantern inconsistency during scrolling caused by previous commit
00a536cc2
- memory leak in read_one_subscreen
17f5ecc64
- more reproducible fairy hearts, for replay in Debug mode
901a3e05d
- various newer hero movement
9762141db
- new respawn points with ladder
5641cf8c1
- check for invalid screen index in subscreen map draw
f327193e1
- reduce some data races
8c2dda32e
- smart conveyors snapping you to the grid
337727343
- Crash related to reflected magic having invalid parent
c3f9d7d48
- specific NES door softlock
26541dbc3
softlock when moving through a bombable or walk-through door in mid-air with "No Scrolling Screen While In Air" enabled. (Now, with this rule on, you won't be able to go through the door until you land)
- input prompt not showing when configuring gamepad
a226a2ee9
- prevent invalid memory access in triggerfire
b3c209499
- prevent invalid memory access in joytn
1aa558687
Editor
- set list position for strings of older quests
9cd257e09
This resulted in the Strings GUI not correctly showing all the strings.
- use correct index when saving string editor "Next"
52d8e4081
- some pasting/blue void screen related issues
cf1dfbbc3
- blue void issues related to F4 (screen palette) dialog
33ee353c3
- grabbing tiles from qst files
3312ba667
Commit
142485
regressed this, by accidentally throwing out the next section id when skipping unwanted sections.
ZScript
- global object arrays being wrongly cleared on F6->Continue
f9383ff99
- fix for-each loops on non-const arrays.
9c6e31bca
- free jit script handles on engine shutdown
52db50c21
- Negative Array rule issues
0da042ba3
Fixed negative array rule not being respected on first load of game (either via test quest or when loading from file select); also fixed negative array rule not being turned on via compat.
- compile crash
3cadfecb3
- several class related bugs
9024587f5
- QUOTEDSTRINGs not merging for all use cases (ex. annotations)
c9caaafa5
- screen script run function arguments
52b34fb60
- shutdown jit thread pool before resetting scripts
bb213c146
This prevents a segfault when a thread is compiling some old script after a new quest has loaded.
- Broken labels and stack size in global init scripts
1a0707e41
- more string literal related issues
0b0fcee0f
also added macros to help fix more of these that might pop up
- prevent MODR divide-by-zero in jit
6afb11354
- make div-by-zero an error instead of a warning, when divisor is literal 0
9e7563267
- script engine hanging on empty script
9bf81e42c
Visual Studio Code Extension
- support missing edge case for parsing error
8b70ca3d0
Documentation
ZScript
- docs for light-related new drawing functions, LIGHT_SQUARE constant
173389422
Build
- remove alogg, use a5 audio streams for ogg
7beab3968
Also refactors zcmusic to use
ALSTREAMFILE
for any a5 audio stream. Currently, mp3 and ogg use this.Co-authored-by: Moosh64 44924261+Moosh64@users.noreply.github.com
- fix compiling zcbase for msvc debug
84ef4d15e
- upgrade to latest allegro
845acc646
https://github.com/liballeg/allegro5/compare/68946485f315c5a6df753250ec5979ab291c60a9...c2bf1e11bed0b63539267115baf190741e0a437a
https://github.com/connorjclark/allegro5/compare/my-fork-2..my-fork-3
- for linux, use libcurl with openssl instead of gnutls
1227b954a
- disable WANT_OPUS when building allegro
bff683d3c
- upgrade to latest fmtlib, for compile time checks
36a0f1932
Chores
- bump version to alpha 116
c360cac20
- add docs/constants for new square light shape
ba9d67ed2
- bump dmap section version to reserve for z3
05bb58363
- fix compile previous commit
f5202713a
- add include
7dbcfc0fd
- try fix linux compile
123e7a21c
- update instances of "Zelda Classic" to "ZQuest Classic"
ca2dd6d8f
- update comment instances of "Zelda Classic" to "ZQuest Classic"
f3ae9af4b
- add commit to .git-blame-ignore-revs
43ccd326e
- update changelog for A116
1869a68c7
Refactors
- un-inline zc_math functions
eba451962
This allows for us to always optimize these functions, even for Debug builds. Good for replay determinism.
- actually skip reading qst sections when requested
142485948
Only the tile importer for qst files uses the feature of skipping sections when loading a qst file. This would still read and process every section, it just wouldn't persist anything. So it wasn't really any quicker.
This paves the way for removing
keepdata
from all of our loading code. - add 'qrs.h','qrs.cpp' and move 'box_' related functions
b0a55a23e
- optimize some more headers/zdefs stuff
9b309630c
- move Hotkey struct to 'hotkey.h'/'hotkey.cpp'
629fd8d9f
- move dmap struct/flags to 'dmap.h', various constants to 'sizes.h'
ab539b694
- move packfile-related functions to 'packfile.h'
3387b9ea8
- move combo pool/alias data to 'cpool.h'/'cpool.cpp'
65cd926a2
- move font enum to 'fonts.h'
436d3f270
- move MsgStr stuff to 'msgstr.h'/'msgstr.cpp'
4007bb471
- move newcombo stuff to 'combo.h'/'combo.cpp'
2c3fe05c7
- move combo 'advanced paste' to 'combo.cpp', use enum flags, rename 'sizes.h' to 'general.h'
a4afbd4a3
- move triggerflags to combo.h
e37432d49
- move misc data stuff to 'misctypes.h'/'misctypes.cpp'
abac74960
- only use 'QMisc' as a single global 'miscQdata' for all programs
03522af1b
- remove keepdata boolean from packfile reading
ef3faef68
Player
- remove windows midi_patch; improve switch out/in
dc48c2763
This code was pausing/restarting MIDIs and resetting the volume in a convulted manner, likely to workaround some old bug with MIDIs seen on windows only. We've since upgraded to allegro 5, which gives a different backend for playing MIDIs, so this bug is likely ancient history now.
There was some issue with blurring window focus losing percussion, sometimes. Not sure if this change will have an impact, but let's see.
Replaced the midi_patch UI toggle with pause_in_background.
https://discord.com/channels/876899628556091432/1114306020848717904
- do not recreate script_data when resetting
4bbe968da
- delete unused enemy clone ctors
dd6239cdb
ZScript
- optimize function code, add PEEK to allow combining POP/PUSH back-to-backs
8402c406b
- optimize 'SETV reg,X - TRACER reg' to 'TRACEV X'
41ca67ec7
Tests
- better error message when zelda binary not present
0c8e2605f
- return failing exit code if replay mode desyncs
b9b09cd80
- remove timeout for Coverage and Asan builds
908a011bc
- use python server instead of node for local compare report
18f8a08fa
- disable sound for replay tests
a9d38c70d
- check exit code for replay tests
1f31223cd
- only check exit code for replay tests under Asan
acd61977e
- add download_artifacts.py
dca122f8e
- add asserts for group_arg logic
bdfbe948d
- condense --snapshot args generated for failing run
b8048b986
- refactor compare report to use ReplayTestResults
aa282f96e
- fix regression from refactor in aa282f
3da06ae9a
- fix silly lazy unit test
0591e6a99
- update test_replays with new unexpected gfx frames, changed in 7ed7b
5e13ce424
- fix argument passing to run_replay_tests.py
e6ea4e1a9
- update expected zasm, changed by 8402c4
39f685f44
- add -headless switch for disabling display and sound
4d17ccf7f
- update expected zasm, changed by 52b34
62de6e7d3
- print backtrace on crash
92d6b3237
Every Python test and invocation of our programs in CI is now called via
run_target.py
, which will attempt to print a backtrace if the program crashes. - fix sharding for replays with sub-second durations
e12e09605
- add playground_slopes.zplay
503a5c97f
- use debugger for replay tests by default only in ci
4c0859a33
- add playground_screen_script.zplay
2dda68a5f
- add replays for step triggers, trigger groups, and cutscene triggers
94c96655f
- add --show flag for replays script, alias for --no-headless and --throttle_fps
0cca40ff8
- update playground maths script to not divide by literal 0
69a9a16af
- update run_target default build folder selection to work on windows
82631d33c
- add playground_sideview_slopes.zplay
f0a3b9644
CI
- allow Asan config type for test workflow
13ebdc854
- pass build type to replay tests script
c59f68b10
- when updating artifacts, only upload the updated/ folder
bc1be95c6
- do better job of reducing size of compare report
7ed7b02d8
- enable jit_threads
86d162ea5
- limit yuurand.zplay for coverage because of rng desync
8f12f54c4
- fix previous commit 8f12f54
54c1b9c2b
- select previous alpha when generating automated changelog
e390bfdac
- remove github's version of generated changelogs
10f1b630d
Misc.
- fix bisect process spawn for non-windows
58f518995
- add .mailmap file
bf78bab6b
- add changelog overrides
3991c9e31
- set failing_frame in replays for rng desync, even in replay mode
6bbe3a0e9
- add new commit scope for the extension: vscode
57d2c1930
- improve changelog markdown
2392d3e70
- remove commit body after "end changelog"
a30bbd8aa
- add sentry tags for qst/screen
14e9d8791
- add script to get all quests on purezc
7755714fb
- add render_debug option for debugging render tree
0456127c6
- improve newlines in changelog markdown generator
0988d3efe
- show deprecation warning in 32bit windows build
5000dcd90
- add -crash switch for crash reporting test
743a300dd
ZScript
- add missing asm debug for first uncompiled command
c19830c04
Visual Studio Code Extension
- publish 1.0.5
6092d4483