https://zquestclassi...leases/2.55.11/
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: optimize ORR/ORV/ORR32/ORV32 in x64 jitzq: add 'Script Bugfix' option (default on) to new file dialogzscript: support `Trace(string)`When a string is given to `Trace()`, it now smartly prints that string,same as `TraceS` would.zscript: log error when GetPixel input is out-of-bounds# Bug Fixesrefuse large string allocation when loading qstCorrupt or newer qst files should never crash (just show an error), butin some cases the loading code can try to allocate huge strings from baddata. Now, refuse to allocate large strings to avoid a potential crash.properly apply 'custom' counter max increases given by starting itemszc: prevent crash from div-by-0 with enemy miscMany configurable enemy misc values are used as the dividend in amodulus operation. If these values are set to 0, a crash can happen. Theresult now is to return 0 (same result as when configured with 1).zc: ignore corrupted enemies in 1.90 or older questsSomehow, quests saved in old versions could sometimes set invalid screenenemies. Modern ZC has more enemies, so those bad quests were nowloading scary new enemies like Ice Wizzrobes where before they might donothing interesting.Now, when loading 1.90 or older quests, any enemy ids that were notpossible at the time are now ignored.zc: stop drawing dive items in lens view after pickupThis bug only happened if the `Old Special Room Screenstate Detection`QR was on.zc: pitfalls + Block Hole flag on same layer as block using wrong next combozc: handle when save no longer exists with "Reload Last Quest" onInstead of closing the program when the last quest save file cannot beloaded, load the title screen instead.Also, store the save path instead of the slot index, since the lattercan change when manually adding or deleting save files.zc: do not unselect A button when loading saveA bug in initializing the game resulted in the A button always beingunequipped (unless it was forcibly set with a script).zc: cane of byrna sparkles lingering after death if extra dying frame qr is onzc: prevent possible crash in ZCSubscreen::get_item_poszc: avoid "invalid save slot index" when creating new saveCreating a new save slot could sometimes invalidate all existing saveslots (until the program was restarted).zc: tile width/height not working for custom/ice weaponszc: wrong combo ID used for some water behaviorWhen the "New Water Collision" QR is off, the combo type instead of thecombo ID was being used to control some behavior (such as the damageamount).zc: pit/water corner cutting (newer movement only)zc: minimap title requiring map item didn't actually check for itemWhen "Invisible w/o Map item" was set, the map item wasn't always beingchecked.zc: falling/drowning issuesEnemies/items/weapons were not using correct hitbox for falling/drowningEnemies/items were immune to drowning in sideviewzc: move custom eweapon to lweapon sprite list when reflectedzc: walk-through-walls not being respected for pit/water scroll checkzc: prevent memory leak from replay stepszc: 'Move' missing from combo page rclick menuzc: held-up items treated 'Only Held' pickup string flag as 'Always'zc: cutscene trigger combos that allow F6 softlocking on F6zc: walking over pits in some cases (made pits more sensitive)zc: prevent trigger change effect resulting in invalid comboWhen the combo change for a trigger effect produces a combo with a badID (negative or larger than the max), the engine would crash. Now, theresulting combo is clamped to the valid range.zc: allow background to be transparent in active subscreensWhen the compat QR "Old Engine Subscreen Quirks" is off, a bug causedthe background for active subscreens to never display the playing fieldeven when the subscreen did not have a solid background.zq: allow item editor to enter larger numbers for the Power fieldzq: subscreen editor color selectors not showing cset 12/13 properlyzq: improve test mode screen matchingTake into account the dmap xoff value when selecting the default dmapto use for test mode.zq: prevent test mode from using screens >= 0x80zq: use correct width for tile anim preview frameszq: properly set enemy move flags when saving old questsQuests older than 2.11 were accidentally clearing enemy move flags ifsaved in the editor, resulting in enemies not be able to traverse overwater or pits.zq: handle all filesystem errors when creating quest packagezscript: clear eweapon script when it endsWhen a script ends, the scripting engine is supposed to clear theobject's script so that it cannot run again. But a bug prevented thatfrom happening for eweapons.Normally that wouldn't matter, but if the weapon was reflected it wouldthen try to run the eweapon script on the newly created lweapon.And normally, _that_ would maybe mostly work, but another bug actuallycaused a crash to happen instead.So now eweapons have their script cleared when it ends, and the crash isavoided.zscript: prevent crash when drawing to system bitmap render targetsScript draws to the `RT_BITMAP0`, `RT_BITMAP1`, etc. bitmaps couldresult in a crash.This regressed in 2.55.9.zscript: correctly handle COMPAREV2 in x64 jitzscript: use correct sprite for step in weapon MakeAngularThe wrong variable was being referenced to access the weapon's stepvalue. Instead of using the weapon, it used whatever was last set to aglobal `sprite` variable in the scripting engine (which could possiblyresult in a crash).zscript: load initial screen before onSaveLoad global scriptWhen the "Use Old Global Init and SaveLoad Timing" compat QR is off, theonSaveLoad global script ran before the initial screen even loaded. Thatmade accessing anything on `Screen` do the wrong thing.Now, this global script can access the initially loaded screen.# Refactorscheck each file section version for validityremove date check when loading qstThe date check had some correctness issues and was kind of complicated,and the explict version checks are sufficient, so it's been removed.zc: use monospace font for text overlay (fps, etc.)zq: save test mode replays to "replays/test" folderJust to separate from replays for normal saves.# Testsadd stellar_seas_intro.zplay# CI[win] update vcpkg to 2025.08.27

