Jump to content

Photo

2.55.13

release

  • Please log in to reply
1 reply to this topic

#1 connor.clark

connor.clark

    Junior

  • ZC Developers

Posted 17 March 2026 - 09:11 PM

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.
 
The Windows and Mac prerelease of 2.55.13 can be downloaded here. Keep this separate from your main ZC install. Once the version has been officially released, replace this prelease build with one from official channels (the updater, GitHub, or zquestclassic.com). This link will expire at that point.
 
Use this thread to discuss or ask questions about the new changes.
 
Changelog:
 
# Features
 
 
zc: add option to manually upload single replay file
  A new `Replay > Upload single replay` menu option allows users to
  manually upload individual replay files.
 
zq: implicitly add `<qst dir>/scripts` to include paths
  This introduces a new convention: place your scripts in a folder called
  `scripts` next to your `.qst` file, and you'll be able to compile your
  quest without ever modifying your include paths.
 
std_zh: add `CheckItemDataScript()` to script_runners.zh
 
# Bug Fixes
 
gui label wrapping
remove visual delay when click+dragging on a list
 
load music using case insensitive file lookup
  When loading music, ZC looks for a folder named `music` (among others).
  If a quest places its music in `Music`, the music will still be loaded
  but only on case-insensitive filesystems (such as Windows). Previously,
  this would often fail on case-sensitive filesystems like Linux and the
  web. ZC now ignores casing when loading music files across all
  platforms.
 
prevent grid widget from possibly hanging CPU
zc: pushed torches not shining
zc: correctly check locked chest state for smart screen scrolling
  When 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 percentage
zc: control scheme using wrong value for quest-specific scheme
zc: DCounter[] not working for counters >= 32 (the new custom counters)
zc: reset cursor after canceling new file
  The heart cursor was sometimes displaying at an invalid position.
 
zc: control dialog crash
zc: always cancel charging when scrolling
  The QR "Scrolling Cancels Charge" was introduced ~3 years ago as a
  compat QR, but it was accidentally implemented backwards.
  
  Instead, the QR check is removed so this charging bug is now fixed for
  all quests. It is highly unlikely that any existing quests relied on
  this bugged behavior.
 
zc: resolve multiple out-of-bounds enemy ID accesses
  This fixes a few potential crashes, including when Digdogger spawns
  Lanmolas.
  
  * 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 types
zc: make bombs explode instead of sometimes just deleting them
  The 'Break On Solid/Landing' and 'Timeout' weapon flags were simply
  deleting bombs; they now correctly trigger an explosion.
 
zc: for combo triggers, ensure bombs explode
  The 'Kill Triggering Weapon' weapon effect was simply deleting the bomb;
  it now correctly explodes.
 
zc: lweapon wind getting confused if more than 1 onscreen
  The player would teleport between winds when one died while another was
  on-screen. Now, the player remembers which wind they are in.
 
zc: cores of some enemy types not issuing generic script death events
zc: 'copycat' trigger sometimes triggering the same combo again instantly
zc: combo triggers triggering themselves extra times
zq: classic / cambria tilesets having a 'pop' in the 'Jump' sfx
zq: 'Move' using bad tile count for weapon sprites' tile usage
zq: 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 notes
  Now large notes will produce a scrollbar for the preview, rather than breaking the UI.
 
zq: use correct max widgets for subscreen pages
  The code incorrectly used 256 as the max in some places, but now all
  places use 8192.
 
zq: total subscreens not properly bounded
  Previously, you could create an unlimited number of subscreens, which
  could corrupt the quest file. The limit is now properly capped at 255
  per subscreen type.
 
zq: scc editor using wrong value for 'goto string' dropdowns
  If strings were re-ordered, the list position was being used instead of
  the string number.
 
zq: Under Combo dialog broken for layers
  The 'map' being used for each layer was off-by-1, causing the dialog to edit the wrong screens when editing layers
 
std_zh: add std_time.zh back
  This file was deprecated in 2.55.4; however, a few things should have
  been 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 comment
  wrongly said it expects `NPCT_` type constants.
 
zscript: enemy script movement functions wrongly over-accounting for screen edges
zscript: Screen->Quad() being unable to use tiles >65519
zscript: don't repeat division
  When the left-hand side is constant (ex: `10 / x`), the compiler was
  emitting inefficient ZASM that repeated the same division twice. The
  result was still correct, but it was doing extra work.
 
zscript: bad weapon ID bounds check
zscript: make the `DrawCombo` "frame" parameter useful
  It now specifies which frame of the combo's animation to draw. If a
  negative value is passed, the current frame is used, preserving the
  legacy behavior.
 
zscript: improve how `DrawTile` wraps around
  When drawing a >1 tall tileblock with `DrawTile`, it now wraps multiple
  rows 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 so
  only 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 emit
  1L (rather than 10000L) for the `true` keyword.
 
zscript: itemdata `Counter` fields not allowing new counter values
  The set values were being capped at 32.
 
 
# Documentation
 
specify the "instant" SCC warp effect first does blackout
 
# Refactors
 
 
zc: speed up loading replays by 20x
  Very large replays could take many seconds to load, which made long save
  files load slowly.
  
  Also now logging the time taken to load replay files.
 
zq: clean up undercombo dialog based on feedback
 

  • nicklegends and Mani Kanina like this

#2 Mani Kanina

Mani Kanina

    Rabbits!

  • Moderators
  • Pronouns:She / Her
  • Location:The Moon

Posted 18 March 2026 - 06:58 PM

zq: implicitly add `<qst dir>/scripts` to include paths
  This introduces a new convention: place your scripts in a folder called
  `scripts` next to your `.qst` file, and you'll be able to compile your
  quest without ever modifying your include paths.


Holy shit, based. This is the kind of feature I've wanted for years and which I'll never end up using now that I have it because I'm too used to my work arounds instead.
  • nicklegends and Taco Chopper like this



Also tagged with one or more of these keywords: release

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users