Skip to content

v4.0.0.9 (AGS 4.0 Alpha 13)

Pre-release
Pre-release
Compare
Choose a tag to compare
@ivan-mogilko ivan-mogilko released this 18 Sep 00:05
· 477 commits to ags4 since this release

This is AGS 4.0 Alpha 13.

Contains fixes from 3.6.1 Patches 5 and 6 (except ones related to backwards compatibility).

Other changes:

Common:

  • Support true 32-bit colors in GUI, text messages and drawing commands in script. Color number properties now correspond to the encoded 32-bit RGB (R8G8B8 format). Older projects will have all Color properties upgraded by the Editor (but not colors in script!).
  • Removed support for 16-bit games. Any older 16-bit project will be converted to 32-bit on import by the Editor.
    SPECIAL NOTE: 8-bit games are still supported.

Editor:

  • Editor will now remember certain window states: "Sprite selector" window and splitter position, splitter position in "Sprite manager".
  • Copy, paste and delete commands now apply to all the selected GUI controls in GUI editor.
  • Support editing group properties for selected GUI controls.
  • When importing room backgrounds of a different size Editor will now let user decide whether to reset, keep or rescale room masks.
  • Ensure that Editor exports room backgrounds in their actual color depth.
  • Removed obsolete "Copy walkable area mask to regions" command from the Room editor.
  • Merged all "***Color" and "***ColorNumber" paired properties into a single "***Color" property. This property is internally saved as a number, but is viewed and edited as RGB combination for 32-bit games, and as a palette index for 8-bit games.
  • Added Custom Properties for: Audio Clips, Dialogs, GUI, GUI Controls, Regions, Walkable Areas.
  • Textual GUI controls can now select "Null Font" as their font: this will prevent any text to be drawn even if one is assigned, and make it have zero size (when it matters).
  • Added "/maketemplate" command-line option that tells Editor to run, make template out of the said game, and quit.
  • Fixed "Flood Fill" operation on mask in the room editor for masks of sizes which are not multiples of 4.
  • Fixed "Recent games" menu could throw a error if a saved Editor's config contained empty paths for any reason.
  • Fixed "Make template" operation was not adding Rooms subfolder to a template.

Compiler:

  • Compiler no longer requires explicit pointer declaration for imported global variables of managed types. Now they are always assumed to be pointers by default, and non-pointer imports of builtin managed types are not permitted, unless a backwards compatibility option is set.
  • Fixed compiler could cause memory corruption while compiling certain expressions.
  • Fixed parsing of bracketed expressions inside ternary operation ( ? : ).
  • Fixed a error message reported in case of undefined symbol, now it correctly states that the symbol is undefined, instead of making a vague statement of "unexpected expression".

Script API:

  • All ***Color properties and function arguments now require a 32-bit RGB number. Where Game.GetColorFromRGB() is used to create a color number, there the script should continue to work as before, but if a literal number was used in script, these must be updated by hand or wrong colors will be displayed at runtime.
  • Added eNullFont constant that lets assign or pass a "null font" to any property or function parameter which expects a font's ID. This "null font" will simply make any text not drawn and have no actual measurements (size, spacing, etc).
  • Added global events: eEventDialogStart, eEventDialogStop, eEventDialogRun, eEventDialogOptionsOpen, eEventDialogOptionsClose (these are handled in "on_event").
  • Added Custom Properties interface to types: AudioClip, Dialog, GUI, GUIControl, Region, WalkableArea. This includes functions: GetProperty(), GetTextProperty(), SetProperty() and SetTextProperty().
  • Added static Dialog.CurrentDialog property and non-static ExecutedOption and AreOptionsDisplayed properties.
  • Added RenderLayer enum, and optional "layers" parameter to DynamicSprite.CreateFromScreenShot(), that tells which of the game's render layers to capture when making a screenshot.
  • Added Overlay.SetPosition() and SetSize() functions for convenience.
  • Added Overlay.Tint(), SetLightLevel() and RemoveTint() functions, Overlay.HasTint, HasLightLevel, LightLevel, TintBlue, TintGreen, TintRed, TintSaturation, TintLuminance properties, matching Character and Object tinting functionality.
  • Expanded String.IndexOf() with new parameters: "StringCompareStyle", "index" and "count".
  • Added optional "sprite" parameter to SaveGameSlot(), that lets to pass a number of an arbitrary sprite to write into this save instead of a standard "screenshot".
  • Added new game-wide option OPT_SAVEGAMESCREENSHOTLAYER that lets to define which of the game's render layers will be captured when making a standard screenshot for the save game.

Engine:

  • Do not alter or clamp palette for 8-bit sprites loaded into a 16/32-bit game at runtime.
  • Assigning InventoryItem.Graphic will no longer reassign CursorGraphic too even if they were identical previously.
  • Added new accessibility config settings in "access" section: "speechskip" and "textskip". These let player to override game's skipping style for character speech and text messages respectively.
  • Fix transformed (scaled or rotated) overlays could look wrong in Software renderer.

WinSetup:

  • Redesigned winsetup into a tabbed dialog.
  • Added "Accessibility" settings for skipping speech and text messages.