github ZQuestClassic/ZQuestClassic 3.0.0-prerelease.52+2024-04-22
3.0 Prerelease 52 2024-04-22

pre-release21 days ago

To download this release, visit the ZQuest Classic website or see the bottom of this page.

The following are the changes since 3.0.0-prerelease.51+2024-04-14:

Features

Visual Studio Code Extension

  • support @link tags in hover tooltips 1430272d2
     

    Comments may contain inline links to other symbols with the @link tag:

    // Better than {@link counter2} ... {@link counter2|that counter is lame}
    int counter1;
    // This also works as shorthand for links: [counter1]
    int counter2;

    When hovering the mouse over any usage of counter1, the tooltip will render these as clickable links that navigate you to the specified symbol.

Bug Fixes

ZScript

  • handful of zasm commands using wrong name fd5901f67
  • Trace(string) using wrong register db2256d50
  • wrong names for zasm npc InitD and item WeaponHitWidth 00c1ec410
  • various symbols with broken compiler output 672597c11
     
    • npc->Attack()
    • npc->CanSlide()
    • npc->ConstantWalk(int[])
    • npc->ConstantWalk8(int[])
    • npc->FloatingWalk(int[])
    • npc->HaltingWalk(int[])
    • npc->HaltingWalk8(int[])
    • npc->isDead()
    • npc->NewDir8(int[])
    • npc->Remove()
    • npc->Slide()
    • npc->StopBGSFX()
    • npc->VariableWalk(int[])
    • npc->VariableWalk8(int[])
    • Trace(char32[])
  • remove some unimplemented symbols and correct some types f6d59d044

Visual Studio Code Extension

  • invalid uri on windows for links in hover tooltip 179d55946

Refactors

ZScript

  • move zasm table and serialization to shared lib c483f611c
  • remove separate zasm defines for compiler bcd079539
  • improve location of many error messages 52949459f
  • reduce the scripts included by default eed542419
     

    This removes some scripts that aren't useful, or aren't a good fit for default inclusion.

    • delete gameover_menus.zh
    • delete LISP.zh
    • delete Music.zh
    • delete sprites.zh
    • delete styles.zh
    • delete theRandomHeader_v2.zh
    • delete ZVersion.zh
    • delete tango/1.0 and tango/1.2 (keeping just 1.3)
    • move sram.zh to deprecated/sram.zh
    • move theRandomHeader_v3.zh to deprecated/theRandomHeader.zh
    • move time.zh to deprecated/time.zh
    • move example scripts to headers/examples
    • remove std including EmilyMisc.zh - include yourself as needed
  • deprecate many getters/setters, replace with variables 46ca3bfa8
     

    ~40 built-in methods exist in this style:

    int Max(); // Returns the max.
    void Max(int value); // Sets the max.
    int GetCurDMapScreen();

    These have been deprecated and replaced with a variable, like so:

    int Max; // The max number.
    int CurDMapScreen;
    
  • move internal symbols to new binding .zh files 011539980
     

    Internal symbols were defined in .cpp files, but now they are defined in .zs files with a new internal keyword and @zasm doc comments. These files live in bindings, and are automatically included for every compilation.

    This should simplify the process of adding new internal symbols. It also enables viewing documentation of any internal symbol in the VS Code extension (w/ a hover tooltip), and all the documentation we have for internal functions and variables has been inserted as comments in the binding files.

    This also deprecates functions that create an object of internal types, like Game->CreateBitmap(width, height) - and replaces with normal constructors - new bitmap(width, height).

  • remove library symbol cpp files 76a67b371
  • remove internal class type b76078275

Misc.

Visual Studio Code Extension

Don't miss a new ZQuestClassic release

NewReleases is sending notifications on new releases.