https://zquestclassi...leases/2.55.13/
To help reduce the number of bugs in official releases, here is an unofficial prerelease build to give people a chance to find and report any obvious new bugs. The official release will come in a few days.
Use this thread to discuss or ask questions about the new changes.
Changelog:
# Featureszc: add option to manually upload single replay fileA new `Replay > Upload single replay` menu option allows users tomanually upload individual replay files.zq: implicitly add `<qst dir>/scripts` to include pathsThis introduces a new convention: place your scripts in a folder called`scripts` next to your `.qst` file, and you'll be able to compile yourquest without ever modifying your include paths.std_zh: add `CheckItemDataScript()` to script_runners.zh# Bug Fixesgui label wrappingremove visual delay when click+dragging on a listload music using case insensitive file lookupWhen loading music, ZC looks for a folder named `music` (among others).If a quest places its music in `Music`, the music will still be loadedbut only on case-insensitive filesystems (such as Windows). Previously,this would often fail on case-sensitive filesystems like Linux and theweb. ZC now ignores casing when loading music files across allplatforms.prevent grid widget from possibly hanging CPUzc: pushed torches not shiningzc: correctly check locked chest state for smart screen scrollingWhen combos on the next screen are checked for purposes of scrolling,the wrong state flag was being used for locked chests.zc: save combos using the wrong attribyte for magic restore percentagezc: control scheme using wrong value for quest-specific schemezc: DCounter[] not working for counters >= 32 (the new custom counters)zc: reset cursor after canceling new fileThe heart cursor was sometimes displaying at an invalid position.zc: control dialog crashzc: always cancel charging when scrollingThe QR "Scrolling Cancels Charge" was introduced ~3 years ago as acompat QR, but it was accidentally implemented backwards.Instead, the QR check is removed so this charging bug is now fixed forall quests. It is highly unlikely that any existing quests relied onthis bugged behavior.zc: resolve multiple out-of-bounds enemy ID accessesThis fixes a few potential crashes, including when Digdogger spawnsLanmolas.* Prevent unmasked segment IDs from indexing `guysbuf` in `fix_coords`by using the local `SIZEflags` member.* Fix off-by-one bounds check in `addenemy_z`.* Prevent negative replacement IDs from bypassing bounds checks in`defendNew`.zc: `Disabled In Sideview Water` not working on some item typeszc: make bombs explode instead of sometimes just deleting themThe 'Break On Solid/Landing' and 'Timeout' weapon flags were simplydeleting bombs; they now correctly trigger an explosion.zc: for combo triggers, ensure bombs explodeThe 'Kill Triggering Weapon' weapon effect was simply deleting the bomb;it now correctly explodes.zc: lweapon wind getting confused if more than 1 onscreenThe player would teleport between winds when one died while another wason-screen. Now, the player remembers which wind they are in.zc: cores of some enemy types not issuing generic script death eventszc: 'copycat' trigger sometimes triggering the same combo again instantlyzc: combo triggers triggering themselves extra timeszq: classic / cambria tilesets having a 'pop' in the 'Jump' sfxzq: 'Move' using bad tile count for weapon sprites' tile usagezq: do not clear selected screen on `File > New`This dialog can be cancelled, but when doing that the selected screen(including all bookmark screen buttons) was being incorrectly cleared.zq: 'Browse Notes' breaking gui on large notesNow large notes will produce a scrollbar for the preview, rather than breaking the UI.zq: use correct max widgets for subscreen pagesThe code incorrectly used 256 as the max in some places, but now allplaces use 8192.zq: total subscreens not properly boundedPreviously, you could create an unlimited number of subscreens, whichcould corrupt the quest file. The limit is now properly capped at 255per subscreen type.zq: scc editor using wrong value for 'goto string' dropdownsIf strings were re-ordered, the list position was being used instead ofthe string number.zq: Under Combo dialog broken for layersThe 'map' being used for each layer was off-by-1, causing the dialog to edit the wrong screens when editing layersstd_zh: add std_time.zh backThis file was deprecated in 2.55.4; however, a few things should havebeen preserved.std_zh: update the correct counter array in `DCounterAdd()`std_zh: rename misleading parameter for `NumNPCsOf``NumNPCsOf` requires the `NPC_` ID constants, but the function commentwrongly said it expects `NPCT_` type constants.zscript: enemy script movement functions wrongly over-accounting for screen edgeszscript: Screen->Quad() being unable to use tiles >65519zscript: don't repeat divisionWhen the left-hand side is constant (ex: `10 / x`), the compiler wasemitting inefficient ZASM that repeated the same division twice. Theresult was still correct, but it was doing extra work.zscript: bad weapon ID bounds checkzscript: make the `DrawCombo` "frame" parameter usefulIt now specifies which frame of the combo's animation to draw. If anegative value is passed, the current frame is used, preserving thelegacy behavior.zscript: improve how `DrawTile` wraps aroundWhen drawing a >1 tall tileblock with `DrawTile`, it now wraps multiplerows at the edges similar to combos with Skip Y.zscript: use correct index for `npc->Shield[]`Ever since it was added, this field did not divide the index by 10000 soonly really worked for index 0.zscript: bad bool checks for `Audio->PlaySoundEx()` and `Graphics->MonochromeHue()`The script engine was incorrectly dividing the bool parameter by 10000,which produces the wrong results when the compiler is configured to emit1L (rather than 10000L) for the `true` keyword.zscript: itemdata `Counter` fields not allowing new counter valuesThe set values were being capped at 32.# Documentationspecify the "instant" SCC warp effect first does blackout# Refactorszc: speed up loading replays by 20xVery large replays could take many seconds to load, which made long savefiles load slowly.Also now logging the time taken to load replay files.zq: clean up undercombo dialog based on feedback

