View a summary of what's new in 2.55.
Features
Player
- press B to backspace in name entry grid mode
744499aaf - improve grid name entry mode
1f51cc913- Show on-screen controls for insert, backspace, confirm
- Press 'Tab' to use keyboard to type name
- gzip compress uploaded replays
6153fb25f - update replay versions on save load
c730b0ee7Previously, save files associated with replay file were permanently pinned to their initial replay version. This prevented older saves from benefiting from subsequent engine bug fixes. The replay version now dynamically updates when a save file is continued, seamlessly bringing new fixes to ongoing playthroughs without breaking existing replays.
Editor
- add 'Open Tile Page' to Combo Pages right-click menu
419fdbfc3 - Add 'Select' to combo page right-click menu
2e0e6f780On using "Select":
- Your current Combo + CSet you are drawing with are changed to the right-clicked combo.
- Your current Drawing Mode is changed to Normal.
- The active Combo Column will scroll to the selected combo.
- The combo page dialog closes itself (so you can go use the selected combo quickly). Useful to quickly start using a combo / section of combos via the pages interface.
- "DMap Levels" quest report, lists which DMaps are tied to each level
0af2a6d7f - show screen state carryovers in 'What Links Here' tool
e7992a256 - improve quest auto-backup and timed auto-saves
fda90c526- Enable auto-backup by default.
- Save all backups and auto-saves to a
YourQuest.qst.backups/folder. - Include timestamps and ZC version numbers in backup filenames for easier identification and recovery.
- Implement read-only protection to prevent accidentally saving over files loaded from a backup folder.
- typable searchbar in some old lister dialogs (ex. level palettes)
8dd17177b
Bug Fixes
- prevent crash from listers using too much memory
8ffe102bb - prevent crash when loading music with non-ASCII filenames
782cbb596 - [mac] prevent crash from deeply nested dialogs
a6aa14dd0 - prevent rare crash by checking if time mutex exists
344d442b6 - compat issues with quests before 2.53 related to owning mcguffin items
5e87baedf
Player
- check water correctly when scrolling down
a277612ffWhen scrolling down while swimming, the player could sometimes incorrectly use a walking animation rather than swimming.
This regressed in 2.55.12.
- minor index logic error related to subscreens
69d4ce5e1 - 'Show Hitbox' cheat hitboxes being slightly misaligned
6ab87bf89 - show cheat hitboxes for invisible enemies
fb0983d34 - prevent crash when combos trigger
dface2a9aRegressed in 2.55.13.
- melee weapon hitboxes lingering forever based on 'Live One Extra Frame' rule
3ebb28f73 - graphical errors in older quests
37475b9f2Many older quests were incorrectly drawing the player, held items, or some enemies and weapons over the subscreen.
Regressed in 2.55 alpha 120 (93f25b690).
- 'slashable' combos (tall grass, etc) wrongly 'cutting' via triggers tab
d80ca68c2Due to some old half-finished code, slashables were responding to all weapons set in their combo triggers tab, even with
->ComboType Effectsnot checked. This behavior has been fixed, now requiring->ComboType Effectsto trigger.Old quests loaded will automatically update any affected combos to behave as they did previously.
- Hero sometimes drowning when drown QR is off
1bfd4172e - Newer Hero Movement buggy collision re: damage combos along the top of the screen
85a2b22f0Hitting the corner of any solid horizontally was wrongly checking the TOP of the screen for damage combos.
- 0-damage brang/hshot items not obeying script-changed damage values
278a0f17eIf a script changed the damage of the weapon but not the item, enemies who don't have "Damaged by Power 0 Weapons" checked would take the ITEM's damage amount rather than the WEAPON's. This also affected generic scripts changing the damage in an enemy hit event.
- Spinning Tiles not becoming the next combo
b5d6fe0f5No idea when this initially "broke", or if it ever worked at all, but the help text says it is supposed to, so fixed it with a compat rule.
- statue shooters / spintiles / etc not working properly with triggers
fd6f3baa1triggers changing combos wasn't calling
screen_combo_modify_preroutine()/postroutine() - Sprite light radius ignoring hit offsets
e7cb154d7 - prevent soft-lock in whirlwind over water
31acb4665This regressed in 2.55.13 (b27da2ea2).
Editor
- prevent long label from visually breaking combo editor
5f76b941b - delete invalid command history
9e5205318When reducing the map count, the command undo/redo history were retaining entries for old maps. If attempting to undo/redo a command from a deleted map, the editor would crash.
Now, those entries are deleted when the map count reduces.
- prevent screen palette truncating to byte (0xFF)
2038dc8a2 - Rename
Under Combo->Undercomboin many places for consistencyc4bffbd24 - don't show compat QR confirmation when creating new quest
98b53c99aWhen creating a new quest from an older tileset, don't show a confusing confirmation dialog about disabling compat QRs. It won't hurt a new quest to disable these QRs, and this dialog is likely to confuse new users.
- show correct combos from adjacent screens
7d4c4f88dWhen the screen editor displays combos from adjacent screens, it was randomly showing the wrong combos.
Regressed in 2.55 alpha 109 (be515839b).
ZScript Standard Library (std.zh)
- set
MAX_DEFENSEto correct value69e12ea8cIt should be 41, but it was 42.
ZScript
- broken bitmap draws
99d851094Some bitmap drawing methods were broken, such as masked draws used in a boss fight in Nayru's Odyssey. For that quest, it caused the boss to always be invisible.
This regressed in 2.55.10.
https://discord.com/channels/876899628556091432/1490714916439593141
- npcdata->InitD[] / WeaponInitD[] being *10000
6d1d92a4c - class destructors ending prematurely
470b5bf18When a destructor calls a user function, the script engine incorrectly ended the destructor after that function call, skipping anything that came after.
- skip JIT compiler for larger scripts
89061ed7aIf the experimental JIT feature is on, now really large scripts are not compiled. It takes too long to compile large scripts in 2.55 so now we don't bother.
- some included headers using bad DrawCombo frame parameter
f91768189this fixes combo draws not animating properly in ghost, tango, and EmilyMisc.zh
- add newlines missing in some error messages
1b67f37fb - change
Region->OriginScreenIndextointinstead oflong8fd165bc8 - add getters for
ffc::LastChangerXandffc::LastChangerYe00fe7fd4These were never implemented.
Refactors
- [mac] unify F-keys for reset/quit
66102a674Previously on Mac, reset/quit were mapped to different keys than on other platforms because historically F9/10 were reserved by the OS. However, that is no longer the case on modern Macs.
These function keys on Mac now match other platforms:
- Reset is now F9 (was F7)
- Quit is now F10 (was F8)
- Screensaver and Palette Toggle have been moved back to F7 and F8, respectively
- speed up subscreen draws by simplifying string operations
f710001f8
Player
- turn off replay_debug by default
45a023a99This makes replay files significantly smaller by disabling debug mode, which stores a hash for every graphics frame in the replay file. This is no longer needed for replays recorded by players so it's time to disable it.
Editor
- format map, screen locations more consistently
dd0ceb26c- Format map + screen pairs using a common format: decimal for map, hex
with a
0xprefix for screen, and spaces for legibility. Example:19 : 0x5A. - Fix an issue in quest report tools that incorrectly used hex to format the map component.
- Format map + screen pairs using a common format: decimal for map, hex
with a
ZScript
- increase ZASM hang threshold
19cdd25b4Every set number of ZASM instructions, the scripting engine checks if the player hit F9 or F10 to allow them to quit during an infinite loop. The default was to check every 1000 instructions, but that is way too frequent. Now, the engine checks every 100k instructions. This reduces the amount of unnecessary overhead related to checking for key events.
ZUpdater
- disable on Mac, Linux
a2fbc9f44