https://zquestclassi...leases/2.55.10/
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:
# Featureszq: CSet now listed in combo pool placement modezscript: add `ReadBitflags` and `AdjustBitflags` helper functionszscript: add `Flag[]` to `Screen` and `mapdata`The new `Flag[]` variable is a boolean array of all the flags associatedwith a screen. This replaces `Flags[]` and `EFlags[]`, which are morecomplicated since they grouped bitflags by category and required bitwiseoperations to access individual flags.```// Oldbool v = Screen->Flags[SF_ROOMTYPE] & (1 << SFR_SIDEVIEW);// Newbool v = Screen->Flag[SFL_SIDEVIEW];```Because of their complexity, `Flags[]` and `EFlags[]` never supportedwriting to it. `Flag[]` makes that possible now.Also removes `GetMapscreenFlag` and similar helper functions, as usagewas low/non-existent and `Flag` totally replaces it.zscript: option to run weapon scripts an extra time during spawnThis is an optionally enabled scripting QR. It may fix some timingissues, such as a script wanting to make the weapon immune to pits beingtoo late if the weapon spawned ON a pit.# Bug Fixesdialog lists scrolling wrongly in some casessupport test init data in replayszc: bottom 8 pixels not showing in some casesFor the F6/Active Subscreen/Map/Death script engines, the bottom pixelswere being cut off even when showing the bottom 8 pixels is enabled.Some scrolling/end game effects were also impacted.zc: qr for strings on layer 6 timing fixzc: use proper start screen after reset for test mode + recording a replayzc: prevent crash on `Game->Reload()` on instant reloadRegressed in 2.55.7zc: hover boots duration being halved over pitszc: don't skip saving game in test modeMethods of saving the game other than directly via them menu (such asautosave on screen entry, or via scripting) were not saving any datawhen in test mode. Now, continuing or otherwise reloading the currenttest mode session will persist those saves.zc: don't stop recording in test mode on quitOnly the "Continue" option correctly continued recording when ending thegame in test mode, while the other options would end the recording andstart a new one. Now, it continues as one recording."Game > Reset" still restarts the recording in test mode.zc: lifted weapon not disappearing on deathzc: subscreen items no longer hidden after collecting triforceIf the "No Cutscene" flag is checked for the triforce item, collectingthe triforce was incorrectly hiding subscreen items indefinitely.zc: some drawing commands ignore the `Toggle Transparency` combo animation flagzc: lifted combos follow hero dir properlyzc: QR "Bottles can't be used with any maxed counter" being backwardszc: progressive item / item bundle related crasheszc: prevent softlock when enemy falls into pit after eating herozc: add compat QR for rope enemy speed2.55.6 added the ability to configure rope enemy speed using miscattribute 10. However, this broke some earlier quests, so now there isa compat rule to suppress this new configurable behavior.zc: prevent crash when using Kill All cheat on Patrazc: bottom 8 pixels not rendering cheat-layers (ex.solidity)zc: remove some noisy traces in hero logiczc: use black for drawing empty space in active subscreenThis is related to the bottom 8 pixels feature.zc: bombs that are auto-lifted being immediately thrownThis regressed in 2.55.8.zc: stop softlocking when using hookshot into slopezc: conveyors not properly forcing direction between movementszc: conveyor force dir / spin issuezc: prevent crash when using whistle item with no soundzc: prevent scrolling over liquid/pits that should drown/fall youzc: lift sound not played when re-lifting weaponszc: prevent rare crash related to creating hero weaponszc: liftable bomb's explosions no longer liftablezc: thrown weapons not properly rotatingzc: weapons no longer "die/stop on solids" when already deadzc: prevent crash when accessing invalid enemy datazq: prevent crash when generic script data length is 1zq: Clicking snapshot option in menu capturing the menu itselfzq: Update cambria tileset- Fix falling / drowning animation for enemies- Bomb flower combos interact w/ weapon triggers- Add shatter animations for pots when slashed- Fix solidity for combos 3916 and 3917- Make fairies catchable with the Bug Net- Gave the Bug Net and use sound- Fix CSet errors in Door Combo Sets- Fix accidentally uncombo'd tiles- Fix locked door combos using the lock block combo type, which canconflict with engine locked doorszq: `Step->Effects` combo wizard 'Damage' off by *10000zq: View Map cutting off screens in fullscreen modezq: changing resolution in View Map via space barChanging resolution via Space resulted in a bug where the viewer wouldincorrectly use the wrong limit for the panning.zq: item editor crash on long item name/display namezq: include licenses in package exportzq: add '?' buttons for 'Show/Hide' lens layer, to clarify possibly misleading labelszq: slash combo wizard not setting sfx properlyzq: Item wizard for various slash->item types not opening with proper valueszq: preserve items on save when using test init datazq: prevent crash when formatting some message stringsThe code that generates the shortened text for each message string forthe string editor selector used too small a buffer. Strings that werelinked and had an id >= 1000 could potentially crash or corrupt theeditor.zq: negative values starting with `0.` not working in some textfieldszq: 'Force Walk' flag missing from conveyor combo wizardzq: .tsv strings import no longer drops last stringzq: prevent rare crash when opening questzq: prevent data loss when grabbing tiles from questzq: update Cambria tileset- Fix the item bundles unintentionally giving you rupees on pickup- Fix Stone of Agony having no effect- Fix Combo 3638 not being a torch combo- Fix the Spooky House palette having palette cycling- Fix various example screens using the wrong trees- Fix auto combo #50 not working properly- Add dense forest autocombos- Change Cave (Walk Down) combos to Stair combos. Making the Cave(Walk Down) combo animation work properly would require making thetransparency color black, which we don't feel is ideal for thistilesetstd_zh: `AdjacentCombo` now returns -1 for invalid combo positionzscript: use correct DrawOrigin for bitmap draw functions, RT_SCREENzscript: `lweapon->isValid()` now accurate for lifted weaponszscript: `eweapon::Explode` works nowThis was incorrectly using the reference for lweapon, and likelycould result in crashing.zscript: correct index for `npcdata::BFlags[]`, `npc::Behavior[]`These arrays were incorrectly bounding the given index between 0 and 4,but these arrays have 16 values. That bounding is removed, and now anerror is logged if accessing an out-of-bounds index.zscript: always deallocate local arrays when script endsWhen the bugfix QR `Always Deallocate Array` is off, local arrays aresometimes not deallocated when FFC/item/global scripts end. This canquickly hit the limit for the number of arrays allowed, and results inbad things.If a local array pointer is passed to another script without changingownership, this QR being off prevents it from being deleted. Otherwise,as long as the calling script stays alive that array remains valid.There is no known quest that relies on this behavior - so this QR nowhas no impact and local arrays owned by a script are always deallocatedwhen it ends.Currently, the appropriate way to keep a local array alive beyond thelife of the script that created it is to call `OwnArray` in some otherscript.zscript: scripted enemy spawns broken for scripted enemies`Screen->SpawnScreenEnemies()` would break the script engine if itspawns an enemy that has a script - it caused the calling script toforever call `Screen->SpawnScreenEnemies()` once a frame. Althoughspawning dozens of enemies a second is very funny, this has been fixed.zscript: potential crash when accessing `Game->Suspend[]` out-of-boundszscript: `combodata::GenFlags[]` setter no longer brokenzscript: emit compile error if run function uses >8 parametersScripts can only be configured with up to 8 values for parameters, butthe run function allowed any number of parameters to be defined. Thiscould result in subtly broken scripts.Declaring more than 8 parameters for a run function is now an error.# Buildupdate libpng to 1.6.47, zlib to 1.3.1# Refactorsread weapon names from zinfo, not the deprecated module systemzscript: remove `Integer`, `Short`, `Byte`, etc. functionszscript: add bounds check for `Screen->SideWarpID`, `mapdata::SideWarpID`zscript: remove `Screen->NumFFCs[]` and `mapdata::NumFFCs[]`zscript: remove `combodata::Expansion`# Testsadd pkmn.zplay for advanced SCC usage# CI[win] update vcpkg to 2025.03.19# Misc.attach screenshot to crash reports

