While in the past, development of std.zh was not separate from ZC itself the complexity of the header and its continued deelopment have both evolved to the point where delineation between it and the base ZC sources is mandatory.
This is in part because the std header and related files for 2.55 and for 2.53 are incompatible on a parsing level.
Because we may in the future update std.zh for 2.53.x and we will certainly continue updating it for 2.55 I have created a separare code repository for the ZScript stamdard headers on GithHub.
In this repo I have pushed all major revisions to std.zh that have existed, starting with ZC 2.50.0 (Release).
Each version is in its own branch, and the most current files (for 2.55) are in the <master> branch.
I have arbitrarily numbered the versions prior to 1.5000, which comes with 2.53 Gamma 7/8 as there were neer specific version indicators in the older filesets. I used these arbitrary values to derive the current version IDs which are now embedded in std.zh as STD_VERSION.
All versions include appropriate documentation from their respective builds of ZC.
I organised all of the files to use the modern directory structure so that it is easier to compare them across the branches.
For easy reference, the branches/versions are:
This version shipped with ZC 2.50.0 Release
This version shipped with ZC 2.50.1 Release
It fixed a number of constants that were incorrect in 1.0000, and fixed a number of bugs in std_functions.zh.
This version shipped with ZC 2.50.3rc1
It includes many additional bugfixes in std_functions.zh, with a notable fix to OnSidePlatform() that could affect the behaviour of some old scripts.
This version shipped with ZC 2.50.3rc2 (marked Beta 2). This version was the first to include std_update, and some other new files. This is the first version to include std.cfg, locale, std_update.zh, mem.zh an the first version to split string.zh into constants and functions files.
The std_functions.zh and std_constants.zh files in this version were renamed to std_functions_2.50.2.zh and std_constants_2.50.2.zh, respectively.
This version was in the 126.96.36.199 build of ZC so numbed by DD.
Minor change, moving the string files into the std_zh path.
This version includes an expanded zscript.txt that explains more of the language syntax, features, error codes, and general usage. (i.e., new ZScript docs).
This version was also the first to include new, additional docs for the user, (some of which have since been revised, or shelved).
This version shipped with 2.53.0 Beta builds, and early Gamma builds. It is was the first version to import the string.zh files by default, when the user imported std.zh. (This was done in a way that would not present header duplication conflicts with older scripts.)
The namechanges on std_functions.zh and std_constants.zh from 1.3000 were redacted in this version, and mem.zh was removed in this version.
This version has been in development since 2.53 began, starting with 1.4000, and is included in this form as part of 2.53.0 starting in Gamma 7. This version includes a partial rewrite of many functions for optimised ASM generation (faster code execution). It also includes several extensions not in the prior versions, and removes some unused files that conflicted with other headers (e.g., std_shortcuts.zh), and fixes some functions operation in std_functions.zh.
Some changes to function behaviour depend on settings in std.cfg.
This was the first version to include std_extension.zh, which is imported by default. This was also the first version to internally include a version ID as const float STD_VERSION
It also includes Classic.zh and Music.zh, as part of an extended script library; and std_extension.txt.
This version is backward-compatible with ZC 2.50.0, 2.50.1, and 2.50.2, should anyone using these versions ever need to use it with them.
This is a rebase of 1.5000 for ZC 2.55, that rewrites most of std.zh to make use of 2.55 parser and ZScript fixes, features, and updates. It uses the existing optimisations from v1.5000, and expands upon them, producing even lighter ASM output.
This was the first version to include std_keyboard.zh, as a support header for the new 2.55 features that allow scripts to read the keyboard; and idata.zh (with the namespace idata) with some itemdata functions that did not make the cut for full inclusion in std.zh, but are included as a separate file for legacy support of quest scripts made in older 2.55 Alphas that used those functions.
Also in this version, are docs for the new ZScript parser, syntax, and language additions and enhancements, in the file ZScript_Additions.txt.
The std.zh version 1.6000 requires ZC 2.55 Alpha 16 or later to use.
The next major update, std.zh v2.0000 is planned for inclusion with 2.55 Beta. Development thereof will continue in the <master> branch, and will migrate everything into the namespace std, and sub-namespaces such as std::maths.