Releases: adventuregamestudio/ags
v3.6.0 - P6 (3.6.0.53)
This is a 3.6.0 Patch 6.
Editor:
- Fixed GUI editor could display selection rectangle from a different GUI editor pane,
if two or more are displayed on screen at the same time. - Fixed Script editor not marking "autoptr" and "builtin" as keywords.
- Fixed Script editor not applying color theme to character literals.
Engine:
- Made String.Chars and Length properties work faster in ASCII mode.
- Issue a warning when blocking Display or Say commands are called during fade-out.
- Fixed engine failing to startup sometimes if controller device subsystem failed to init
(it should not init at all in this version, as we do not support joysticks yet). - Fixed "Before fade-in" event could be called recursively under some peculiar conditions
(regression since 3.6.0). - Fixed buttons on a non-clickable GUI were still changing to "mouse over" graphic under cursor.
- Fixed button click not registered if it has been made not visible and visible again during a
single game frame (regression since 3.6.0). - Fixed TextWindow borders drawn behind the rightmost corner pieces, which may be seen if the
edge sprites are half-transparent. - Fixed a brief black screen flash occuring right after the video playback ends
(regression since 3.6.0). - Fixed engine refusing to load legacy saves if the audio clip count does not match
(number of audio clips should not affect saves).
WinSetup:
- Added an option to disable "smooth scaled sprites" setting.
- Added an option to disable language selection.
- Made filter names in "disabled" section treated in case insensitive way.
v3.6.1 - Beta 11
Editor:
- Added "Export Global Messages to script" menu command. This command is meant for upgraded pre-3.2 game projects, and will generate a script with a String array, moving global messages texts there.
- Made Editor be somewhat more tolerate to missing XML nodes in Game.agf, in many cases it will still let open a game.
- When upgrading older game projects, Editor will insert a call to SetRestartPoint() in the end of the 'game_start' function in GlobalScript.asc. This is done to complement removal of an automatic startup SetRestartPoint() call in the engine. This inserted command is safe to remove.
- When upgrading pre-3.2 rooms with disabled SaveLoadEnabled property the Editor will reset this property and insert a comment with a warning into the corresponding room's script. This is done because this property is deprecated as is no longer accessible.
- Fixed Project Explorer's folders collapsing after certain user actions, such as dragging items or renaming things.
- Fixed Script editor not marking "autoptr" and "builtin" as keywords.
- Fixed Script editor not applying color theme to character literals.
Scripting:
- Support "#else" preprocessor directive.
Script API:
- Added support for a text formatting to a number of functions: DisplayAtY(), Character.SayAt(), Character.SayBackground(), DrawingSurface.DrawStringWrapped().
Engine:
- Removed an automatic SetRestartPoint() call at startup. This is done in case user does not want to use default "restart" save slot, or has a custom save system.
- When starting up, engine will now precache only first 4 or 8 loops of the starting player character's View. This is done to avoid filling sprite cache with too much sprites at once in case when the player's View contains lots of additional animations.
- Fixed engine failing to startup sometimes if controller device subsystem failed to init (it should not init at all in this version, as we do not support joysticks yet).
- Fixed characters occasionally "teleporting" when ordered to move (regression since Beta 10)
v3.6.1 - Beta 10
Changes in 3.6.1 - Beta 10
Editor:
- "Goto Definition" command in script will now work for most of the game entities too, such as Characters, GUIs, and so forth. In that case it will find a game's entity and open a respective editor panel for it. This still does not work for some types, such as Room objects, and Views.
- Added main menu commands for opening a Project folder and Compiled folder.
- For script's tabs added a context menu command for opening this script's location.
- Added "Scale Character sprite offsets" property to General Settings. This property refers to scaling of Character.z and sprite offsets added by LockViewOffset script command.
- Config will now be saved in UTF-8, letting to support setup program's title text in unicode.
- Fixed GUI editor could display selection rectangle from a different GUI editor pane, if two or more are displayed on screen at the same time.
- Fixed Editor could miss some of the files when cleaning up old compiled files after the Game's Filename property is changed.
Engine:
- Characters will now have their graphic offsets, set by Character.z property and LockViewOffset() function, scaled along with the character's own scaling. This is done so long as the respective game option is enabled in the General Settings.
- Allow to change Character's move speed while its moving.
- When Character is ordered a new move command while already moving, the engine will try to make a smooth transition between old and new moving without a delay.
- Engine will now skip blocking Character.Say commands instantly while skipping a cutscene.
- Fixed buttons on a non-clickable GUI were still changing to "mouse over" graphic under cursor.
- Deprecated in-game "console", as practically useless.
- Fixed Characters may be seemingly "walking in place" for some time when arriving at destination.
- Fixed speech portraits not animating (regression since 3.6.1 Beta 8)
- Fixed "Before fade-in" event could be called recursively under some peculiar conditions (this is a regression since 3.6.0).
- Fixed button click not registered if it has been made not visible and visible again during a single game frame (this is a regression since 3.6.0).
Compatibility:
- Fixed a "New Room" command in old-style dialog scripts was preventing "First time Enter room" event to be called.
v3.6.1 - Beta 9
Changes in 3.6.1 - Beta 9
Contains all additions from 3.6.0 Patch 5.
Editor:
- Zoom controls in Character and View panes now allow downscaling too. View editor displays the preview sprite stretched to fill the parent panel.
- View editor now allows to select multiple frames at once, across multiple loops too, using standard Shift + LMB and Ctrl + LMB combinations. Properties panel lets modify properties for all the selected frames at once.
Script API:
- Added ScriptName property to AudioClip, Character, Dialog, GUI, GUIObject, Hotspot, InventoryItem, Object.
- Added static GetByName() function to AudioClip, Character, Dialog, GUI, GUIObject, Hotspot, InventoryItem, Object.
Engine:
- Improved performance when updating and deleting dynamic sprites, and notifying any objects that have to redraw themselves. Engine no longer resets Graphic properties of objects referencing deleted dynamic sprite to 0.
- Text Overlays internal images are now registered as dynamic sprites, and their IDs may be read from Overlay.Graphic. This lets find out their sizes using Game.SpriteWidth/SpriteHeight and optionally draw them somewhere using DrawingSurface.DrawImage.
- Fixed managed structs in script may cause program crashes after you restored a save and try to save again (regression in previous 3.6.1 Betas).
Compatibility:
- Warn of write into "readonly" script variable, instead of error, as some older games may to try to write there.
- Fixed inventory window not updated after game.top_inv_item is assigned a new value.
v3.6.0 - P5 (3.6.0.52)
This is a 3.6.0 Patch 5.
Editor:
- Reimplemented multiple sprites properties editing in the Sprite Manager. This ability was dropped in 3.5.0 unintentionally.
- Fixed Autocomplete not treating certain struct members as "static" or "protected" if their declaration is too long.
Engine:
- Fixed Character.WalkStraight() was resetting walking animation if called during walking.
- Fixed Character's idle animation getting reset to frame 0 when the speech is played without a valid speech view (idle animation should continue playing in such case).
- Fixed idle animation sometimes not starting immediately after Character finishes walking.
- Fixed a crash occuring if script tries to get or set a custom property for a non-existing Room Object (this seem possible to do by iterating over
object[]
array).
Compatibility:
- Implemented "legacysave_assume_dataver" override option in config, which lets to instruct the engine which game data version to assume when restoring legacy (pre-3.5.0) saves. This "hack" appeared to be necessary because of a mistake done during development of the older engine versions, where the save format was changed, but engine was made to rely on the game data version instead of incrementing save format index.
- Implemented "legacysave_let_gui_diff" override option in config, which lets the engine to read less gui elements from restored save than the number registered by the game. This is to emulate a (possibly unintended) effect in pre-3.5.0 saves.
- Fixed engine could try to load game data from game.exe without checking whether data is actually appended to it when restoring a legacy save in a game with a different file structure.
- Fixed number of GUI elements were not tested when loading a legacy save, which could lead to GUI data getting overwritten incorrectly without a warning if number of controls changed since. If the test failed, engine will act according to "legacysave_let_gui_diff" config option: either quit with error or log a warning and continue.
Plugins:
- Fixed potential "index out of bounds" exceptions in the built-in PalRender plugin.
Templates:
- In "Verb Coin" template fixed action label could be updated incorrectly if the cursor was moved over buttons on any other GUI.
v3.99.106 (AGS 4.0 Early Alpha 4)
This is AGS 4.0 Early Alpha 4.
Contains updates and fixes from 3.6.1 Beta 7 and 8 (except ones related to backwards compatibility).
Other changes:
Editor:
- Translation sources are now saved in PO format.
- Fixed room data xml was saved without linebreaks and indentation.
- Fixed all room images (backgrounds, masks) were rewritten on disk each time a room is saved, even if they are not modified.
Compiler:
- Fixed forward-declared but unresolved function not reported correctly.
- Fixed accessing dynamic arrays with a numeric literal index was not tested for "out of bounds" mistake.
- Fixed multidimensional array index delimiters (",") were confused with function parameter delimiters in call to a function.
Script API:
- Added Joystick struct, meant to work with joystics and gamepads in script.
Engine:
- Support joystick and gamepad input.
- Fixed DynamicSprite.CreateFromSaveGame producing invisible screenshot sprites.
- Fixed an attempt to read screenshot from a save with no screenshot could cause engine to crash.
- Fixed 16-bit sprites in 32-bit games turning completely transparent.
v3.6.1 - Beta 8
Changes in 3.6.1 - Beta 8
Common features:
- Implemented Deflate compression option for sprites.
Editor:
- Fixed Line tool in the Room Editor triggering sometimes after a context menu was called with Shift + RMB.
- Fixed Autocomplete not treating certain struct members as "static" or "protected" if their declaration is too long.
Engine:
- Fixed Character's idle animation getting reset to frame 0 when the speech is played without a valid speech view (idle animation should continue playing in such case).
- Fixed idle animation sometimes not starting immediately after Character finishes walking.
- Fixed a crash occuring if script tries to get or set a custom property for a non-existing Room Object (this seem possible to do by iterating over
object[]
array). - Fixed invalid gui could be interacted with if a previous interaction displayed a message box on screen, sometimes leading to engine crashes (regression since the previous Beta).
Compatibility:
- Implemented "dataver_for_legacysaves" override option in config, which lets to instruct the engine which game data version to assume when loading legacy (pre-3.5.0) saves. This "hack" appeared to be necessary because of a mistake done during development of the older engine versions, where the save format was changed, but engine was made to rely on the game data version instead of incrementing save format index.
- Fixed engine could try to load game data from game.exe without checking whether data is actually appended to it when restoring a legacy save in a game with a different file structure.
- Fixed number of GUI elements were not tested when loading a legacy save, which could lead to GUI data getting overwritten incorrectly without a warning if number of controls changed since.
Plugins:
- Fixed potential "index out of bounds" exceptions in the built-in PalRender plugin.
v3.6.1 - Beta 7
Changes in 3.6.1 - Beta 7
Contains all fixes from 3.6.0 Patch 4.
Editor:
- In Dialog Script editor support most Edit menu and context menu commands from the regular Script editor, with a few exceptions.
- Added "Replace with all sprites from folder" command to the View editor's context menu.
- For Audio Clips in the project tree added "Force Reimport", "Force reimport all file(s)" and "Replace Source File" context menu commands.
- For Output Panel added "Copy selection" context menu command.
- Improved LipSync panel looks in case user's system has display scaling option enabled.
Engine:
- Support handling multiple mouse clicks per game frame, similar to how multiple key presses were supported since 3.6.0.
- Fixed program crash occuring when trying to get a screenshot from a save which does not contain one (regression in previous 3.6.1 Betas).
Android:
- Fixed crash in AGS Player when opening a games directory for browsing a list of games (regression in previous 3.6.1 Betas).
v3.6.0 - P4 (3.6.0.51)
This is a 3.6.0 Patch 4.
Editor:
- Export Game's Title into translations.
- Fixed Game.agf was not created after importing a 2.* game project (regression in 3.6.0).
Engine:
- Character.AnimationVolume property is now applied to the portrait animation as well.
- Removed few of the less important game messages from logging, because they may quickly clutter the log under some circumstances.
- Fixed when animating a character portrait, the first frame's linked sound is not played.
- Fixed IsSpeechVoxAvailable() returning positive result if run from IDE and Speech folder is empty.
- Fixed speech and messages were skipped by modifiers and other special keys (Ctrl, Alt, etc).
- Fixed crash occuring when you resize DynamicSprite while it is displayed on screen.
- Fixed audio clip started right before a ChangeRoom would not play until after the room changes.
- Fixed in Software display mode the room Overlays may not be properly covered by a walk-behind under very specific conditions.
- Fixed System.Log() would cause engine crash if there are more format placeholders than args.
- Fixed some game options that are not allowed to be changed at runtime could still be overwritten when restoring an old save, leading to a weird game behavior.
v3.99.106 (AGS 4.0 Early Alpha 3)
This is AGS 4.0 Early Alpha 3.
Contains updates and fixes from 3.6.1 Beta 6.
Other changes:
Common:
- Removed support for '[' as a linebreak character in text.
Editor:
- Support loading PNGs with transparent chunks as Room Masks.
Engine:
- Fixed flipped button frames displayed without transparent parts.