The following are the changes since nightly-2023-09-30:
Features
Editor
- options to control the size and color of the dither when using "Highlight Current Layer"
08be9cd24
- added cset to the autocombo preview, made autocombo engravings in the combo list draw over the selector
466c7b5ba
- added a popup when using an invalid autocombo explaining why it's invalid
da634dba1
- added a "Connect to Edge" flag to certain autocombos, changing how they interact with the edge of the screen
7e0ddb89a
- quick map view hotkey, 2x and 4x map scale
98ad766b7
Bug Fixes
Editor
- fixed layer 6 highlighting and overhead combo drawing
b55a98696
- fixed "view map" solidity drawing
9de52adc0
- correctly load parts of old qst when grabbing tiles
f4ed68578
- sfx data corruption due to improper struct initialization
be96107dc
The following are the changes since 2.55-alpha-118:
Expand changelog
Features
- subscreen scripts, ZScript subscreen access
Add 'Subscreen Scripts', which run while the engine active subscreen is open. Add ZScript types 'subscreendata', 'subscreenpage', 'subscreenwidget'
Relevant changes:
- feat: subscreen scripts, ZScript subscreen access
cb2d6b521
- feat: 'subscreendata' datatype implementation
64026507c
- feat: 'subscreenpage' datatype implementation
0d049c655
- feat: 'subscreenwidget' datatype implementation for shared vars
5e8e6dcc8
- feat: start 'subscreenwidget' datatype implementation for type vars
57649a824
- feat: more 'subscreenwidget' datatype implementation for type vars
9a8334236
- feat: more 'subscreenwidget' datatype implementation for type vars
5c0c1a9ef
- feat: finish 'subscreenwidget' datatype implementation for type vars
252033a21
- fix(zc): fix a couple subscreen drawing issues
e82b08532
- refactor: start implementing subscreen scripts
e19d0fda1
- lightbeams now respect solid ffcs/pushblocks (compat QR'd)
8555d9430
- 'Mirror (Custom)' combo type for customizable reflection
5c06dfcf4
- Spotlight combos work on ffcs, fixed lightbeam-ffc hitboxes
fd039e808
- Subscreen widgets now have unique labels, and display coordinates
4553336cd
ZScript can get a subscreen by it's label. Display coordinates are the coordinates that make up the bounding box rectangle for a widget.
- change grid-snapping on FFCs, blue squares, item square, etc
c4f28895e
Now, these all snap to the half-grid by default, but do not snap to the grid while 'Shift' is held.
Player
- add command "-create-save "
cc459c65b
- remove encoding layer for save files
a0c81ae88
Just like the previous work to remove the encoding layer for qst files.
Previous save files can still be read, but when next saved will no longer be encoded.
Should be a tad faster to read and write, especially reading in bulk as the title screen no longer needs to read the entire file to decode, when it only needs the first part of the file.
Also changes save file writing to disk to instead write to a temporary and move to the destination when done. This may prevent a source of save file corruption.
Editor
- 'Highlight Current Layer' option, when enabled dithers out non-active layers.
69267fb51
- "Open Tile Page" now saves which page was last opened
f6f3090e1
- options to control the size and color of the dither when using "Highlight Current Layer"
08be9cd24
- added cset to the autocombo preview, made autocombo engravings in the combo list draw over the selector
466c7b5ba
- added a popup when using an invalid autocombo explaining why it's invalid
da634dba1
- added a "Connect to Edge" flag to certain autocombos, changing how they interact with the edge of the screen
7e0ddb89a
- quick map view hotkey, 2x and 4x map scale
98ad766b7
ZScript Standard Library (std.zh)
- add 'SF_LAST', convert SF_ constants to enum
053b63911
ZScript
- 'auto' variable declarations
1b06c63ea
- 'sprintf' will resize the buffer if it is too small.
bc9fc80f8
Visual Studio Code Extension
Bug Fixes
- active global script double-running due to warp script check
28d9aaf3d
- wrong 'maxdigits' on old subscreen counters
8c4b2b9b7
- fixed memory leak when changing enhanced music tracks
c9bcdb22a
- favorite combos corruption when loading 1.92 or older quests
cca598afc
- some small errors related to subscreens/subscreen scripting
d2721853c
- [linux] use /var/tmp instead of /tmp for save-then-move
2803f8fcb
/tmp is for files that are not expected to persist. When running under flatpak, a tmpfs is mounted to /tmp, so we cannot move files from that to a real physical drive. This resulted in saving failing.
/var/tmp is the better choice, since files there are expected to persist and so will always be a physical drive.
- [linux] for flatpak, create tmp file in app directory
98f366eda
- moveflags not set correctly for pre-2.50 enemies
58d73e0cf
- replays depending on wrong moveflags
8c359cdb3
not sure of a better commit title
- handle empty init data delta, which is when no change is made
ecb6e1bd7
Player
- pushblock solidity inconsistency
58ea254ad
- oddities with pushblocks and pits/water
54f0de9a7
- sidewarps at edge of map not working with walk-through-walls cheat active
b4cc7cbb6
- Screen 0x80+ 'safe return point' bugginess
b53ee67ef
- 'Magic Containers' cheat not updating max magic soon enough to refill
7f9ee156d
- bugginess with push flags on 'Push (Generic)' combos
f10def353
- Oddity with swords/spin attacks not properly hitting triggers
ae7bf3e44
- remove accidental code that resulted in less precise sin even outside replays
0545938cf
- incorrect value for cos(90) in replay mode
2d46cdd1e
- fixed unresponsive input in SCC menus
e394d09cd
- fixed line heights after drawing tiles to strings with SCCs
f05923d8c
Editor
- 'esc' choosing 'yes' in 'Really want to quit?' popup
f683887dd
- sanitize quest title for package name
e64f888d2
- allow spaces in package name
87519c7ea
- fixed crash in combo wizard for signposts
dd826371d
- fixed bugged inner bottom corner in DoR autocombo
22817644a
- right clicking autocombo combo panes no longer resets cset to 0
6300f4d89
- clearing an autocombo in the editor also clears args and flags
b71f9a3dc
- combo aliases with layers now flag layer screens valid
e09d0e3f9
- fixed out of bounds array access with the drawing mode menu
f8f4ea09b
- hopefully fixed inconsistent DoR autocombo behavior
ae6d73cd2
- improved DoR autocombos connecting with the edge of the screen
dea3b0e1a
- filter invalid characters from test init data cfg header
25f477fd8
- made selecting a favorite combo update the drawing mode dropdown
d5c1183c4
- reduced information on the autocombo preview in compact mode
8eef7f843
- normalize path component for test init data cfg header
eaa537d99
- fix several issues with the 'default.qst' subscreens
8e9d475bc
- fix autocombo height change not being treated as a list command
de70ed253
- made autocombos preview correctly with the combo brush
88ef45f62
- fixed combo pools being able to fill the same combo multiple times
c0c0f6d2b
- layer visibility checkbox for layer 0
b51c89ce7
- fixed layer 6 highlighting and overhead combo drawing
b55a98696
- fixed "view map" solidity drawing
9de52adc0
- correctly load parts of old qst when grabbing tiles
f4ed68578
- sfx data corruption due to improper struct initialization
be96107dc
ZScript
- typechecking error related to arrays of class objects
e981a6591
- fixed paldata mix() not flagging changed colors as used
7cb103ba6
- fixed incorrect argument ordering in DrawTiles() and erroneous error logging in serveral drawing functions
ff7752406
- fixed incorrect max count for user objects
d571f7688
- paldata objects not clearing properly on init
13a78f04e
- generic script local arrays and '->Own()'ed objects bugging out on 'Continue'
850fca401
ZUpdater
- use headless mode when run from launcher
1f91452cd
Web
- avoid double save when using the quick-load feature
2e2fb45da
Documentation
- move packaging_quests.md to packaged docs
b5467ee10
ZScript
- made note of rotation arguments for PutPixels()
f31a9e75f
Build
Web
Chores
Refactors
- extract legacy encoded reader for qst to try_open_maybe_legacy_encoded_file
9b5c4579f
- removed leftover references to favorite combo aliases
8a122dd40
- use transform matrices for render tree
badeba084
The previous adhoc system supported translation and scaling in a very broken way, making it impossible to construct a non-trivial render item hierarchy.
Now it uses proper transforms matrices. Implemented with dirty flags - each render item has a world matrix (and inverse, for mouse lookups) that only update when the underlying transformations change (or one of its parents)
- add TabBuilder gui class
a9e768c99
- gamedata and user_object stuff, script '->Own()' handling
76a8c3d2f
Player
- only check already loaded saves for 4th qst red easter egg
8362c1e93
Otherwise, it takes noticeable time to load every save file when the file select screen loads.
- move some things from .zmod to be hardcoded
103242d4d
- remove module info/loading from menu
6d27582d0
- remove classic_zelda.dat
e1d9bd937
ZUpdater
- extract getting next release and installing to functions
6346d4838
- [win] use curl and json libs instead of python
765ab0322
- use zupdater binary instead of python in launcher
20528f43a
- [win] use native library for unzip
bcf1582dc
zupdater is now Python-free for Windows.
Tests
CI
- fetch full history when building to generate nightly changelog
0389cd277
- fetch full history when building web test
22aee7c8f
- use correct variable for release tag in sentry debug upload
cfdeef5b9
- use Release instead of RelWithDebInfo for windows test, for caching
000548dcf
- use sentry-cli 2.20.6 instead of latest, to fix debug info upload error
3b862dda7
- disable sound for linux replays
0c6b1c77e
install_sound
randomly starting failing in CI.
- create web.zip and upload to GitHub release
ffb2f56cf
- set concurrency for release workflow
335bc90c1
- trigger website delpoy on release
d8cbf92e1
- add --ignore-missing to sentry set-commits command
fdf2059e9
Misc.
- add script for expanding ZASM opcodes/registers en masse
6f8ca315a
- update zasm expansion script to handle name lists from file
820a5978f
- package changelogs for recent alphas, and include nightly changes
c67dc4d1a
- update GitHub org
f5f1591cf
- fix transparency on some cave tiles in the default quest
2cbfecefa
- improve parser timeout handling
5ebd2423f
- update default.qst (add auto combos)
ec1a38337
- log error when file move fails
d52938c9d
- add AUTHORS file
008738d7a
- rename editor exectuable from zquest to zeditor
b34503993
Visual Studio Code Extension
ZLauncher
Web
- rename from Zelda Classic to ZQuest Classic
a37ec4ce8
Sectioned Changes
Relational Combos Update
Relational Combos Update
The old "Relational" and "Dungeon Carving" modes have been replaced by a new drawing mode that can handle various relational drawing behaviors. Alongside this, favorite combos list has been expanded and improved to make designing screens faster than ever before.
Autocombos
The Autocombo, similar to the "Alias" and "Combo Pool" drawing modes before it, adds a list of user defined patterns which are used for relational drawing. Each autocombo has a set of combos used for the pattern, a combo for erasing from the pattern with right click, and a display combo which affects how it will appear in the editor for user convenience. They can also auto generate a pattern from a default arrangement of combos like how the older drawing modes worked, but do not need use combos placed in that order.
Unlike most other features, autocombos can read and modify combos on adjacent screens with the "Cross Screens" flag.
Autocombo behavior can be selected from the following 9 types:
- The "Basic Relational" type is a standard relational mode with 4-directional tile awareness.
- The "Relational" type works like the old relational drawing mode with 8-directional tile awareness. It also has a flag to use the old combo layout when generating.
- The "Flat Mountain" type is the simplest of the set, with only 6 tiles representing the corners, sides, and top.
- The "Pancake Mountain" type is for drawing flat topped mountains, formed by drawing the edges and then extruding the side faces downwards.
- The "Fence" type is similar to "Pancake Mountain" but without the combos for extruding sides.
- The "Dungeon Carving" type works like the old dungeon carving drawing mode, drawing 2 tile high dungeon walls. It also has a flag to use the old combo layout when generating.
- The "Complex Mountain" type has you fill in the top layer of a mountain and then fills out the bottoms, backs, and sides with a 3/4 perspective. Unlike the other sets, this one is imperfect and may require some manual correction, but it makes using the hardest mountain sets in common usage far easier.
- The "Positional Tiling" type lets you form a rectangular pattern that it then tiles based on X/Y position within the map. With shift + click you can set where the top-left corner of the pattern is located.
- The "Replace" type lets you set an arbitrary set of before and after combos to replace when drawing. Instead of erasing, right click will reverse the process.
Favorite Combos Expansion
The favorite combos list has also been greatly expanded. It now allows for 9 pages of combos. Right clicking the page selector buttons will create a drop-down allowing you to jump to any page.
It can also now hold entries from any of the four drawing modes. When selecting an entry from a different drawing mode, the current mode will automatically update to match. This should make switching from relationally drawing a screen's layout to placing down large objects as aliases to adding finer details a breeze. Each of the three special drawing modes will have icons drawn over their favorite combo entries, which can be disabled with the "Show Favorite Combo Modes" option in Ect->Options...
.
Lastly, adding favorite combos now respects the AutoBrush setting, making adding large blocks of single combos to the page far quicker.