Releases: adventuregamestudio/ags
v4.0.0.23 (AGS 4.0 Alpha 27)
Another hotfix update.
Editor:
- Fixed Callstack panel not getting cleared when the game is shutdown, and clicking on its items could bring Editor into the wrong state.
- Fixed crash occuring under some conditions when the Editor is trying to display a tooltip with the struct's member in script.
- Fixed Autocomplete not displaying members of dynamic array's elements (was displaying dynamic array's "Length" property instead).
- Fixed Autocomplete mistakes related to multidimensional arrays in script.
- Fixed Autocomplete displaying generated types (dynamic array types), which it should not show to the user.
- Fixed Autocomplete not displaying parent type's extender methods for child types.
- Fixed script tooltip displaying extra pair of brackets for dynamic array variables.
Engine:
- Fixed potential crash caused by Character.AddWaypoint().
v3.6.2 - P5 (3.6.2.15)
This is a 3.6.2 Patch 5.
Editor:
- Fixed 8-bit sprite import with "Leave as-is" option when image file does not use a transparent color. This resulted in regular color in slot 0 becoming a transparent instead.
- Fixed Callstack panel not getting cleared when the game is shutdown, and clicking on its items could bring Editor into the wrong state.
- Fixed crash occuring under some conditions when the Editor is trying to display a tooltip with the struct's member in script.
- Fixed Autocomplete not displaying members of dynamic array's elements (was displaying dynamic array's "Length" property instead).
- Fixed Autocomplete mistakes related to multidimensional arrays declared in script. (Although v3.* script compiler does not support multidimensional arrays, this fix prevents strange results if user have these in script for some reason.)
- Fixed Autocomplete displaying generated types (dynamic array types), which it should not show to the user.
- Fixed Autocomplete not displaying parent type's extender methods for child types.
- Fixed script tooltip displaying extra pair of brackets for dynamic array variables.
Engine:
- Fixed Slider unexpectedly incremented MaxValue if it appears equal to MinValue.
- Fixed Character's speech text's behavior being modified by a non-blocking voice clip run by a Game.PlayVoiceClip() call.
- Fixed Game.PlayVoiceClip() not supporting narrator's voice.
- Fixed voice clips played by Game.PlayVoiceClip() not resuming after restoring a save.
(This is an old mistake present since the PlayVoiceClip function was introduced.)
v4.0.0.22 (AGS 4.0 Alpha 26)
This is another fixes-only update, a follow up to 4.0.0.21.
Editor:
- Fixed making a game template without patterns file would include all files in game folder instead of using a list of standard project files.
Compiler:
- Fixed incorrect registration of multi-dimensional arrays in RTTI table, which could lead to runtime errors.
- Fixed wrong script line could be referenced in the error report in some circumstances.
Engine:
- Do not implicitly toggle a "maxed fps" mode when SetGameSpeed is called with value 1000 or higher. This fixes a situation where calling SetGameSpeed(1000) in script enables "maxed" mode, but there's no way to disable it in script, since calling SetGameSpeed with a lower value will not turn it off.
- Fixed game.speech_text_gui setting was ignored when displaying a character speech.
- Fixed character waiting 1 extra tick when turning on spot.
- Fixed Character.FaceDirection() did not reset idle state, so idle animation could start even during turning.
- Fixed Slider unexpectedly incremented MaxValue if it appears equal to MinValue.
- Fixed Direct3D and OpenGL renderers displaying character sprites in a slightly deformed way.
- Fixed Garbage Collector messing up persistent object's (such as Character, etc) reference count, when it's referenced from a user's managed struct, and that struct's instance is getting disposed.
v4.0.0.21 (AGS 4.0 Alpha 25)
This is a fixes-only update. The update with the new functionality had to be postponed for some more time.
Some of the following fixes were carried over from the recent 3.* releases. Others are fixing regressions in AGS 4 itself.
Common:
- Fixed WFN auto-outline not drawn correctly if font's SizeMultiplier is > 1.
Editor:
- Make Font's OutlineFont property provide a drop-down list with fonts.
- Restrict Room's BackgroundAnimationDelay property to a range of 0-255 (engine's limitation).
- Fixed Project Explorer's blocking global shortcuts when focused.
- Fixed Character's animating preview not updating if a View is being edited at the same time.
- Fixed potential crash in Font Preview pane if the Font does not have any Font File assigned.
- Fixed text outline color in the Font Preview and GUI editors.
- Fixed Editor reporting "the script name in use" errors for Room Objects and Hotspots that don't have any script name set.
- Fixed View Editor reacting to shortcuts such as F or Delete when the input focus is set to a selected Frame's properties.
Engine:
- Don't log warnings for File.Exists and Game.GetSaveSlotDescription when a file was not found, as these functions are meant to test a file existence.
- Fixed engine's general misbehavior occuring if any Character, GUI or AudioClip does not have any ScriptName assigned.
- Fixed dialogs always switching to a dialog 0 after current option script, if there was any command called that triggers another script callback, such as "on_event".
- Fixed severe performance drop when dialog options are displayed.
- Fixed dialog options were rendering twice per game frame (this did not cause any graphical glitches, but could cause extra performance issues).
- Fixed room background animation running too fast if the BackgroundAnimationDelay was set to a value > 127.
- Fixed a DynamicSprite not updated on screen after CopyTransparencyMask() call (except when running with a Software renderer).
- Fixed Overlays with the matching z-order not always sorted in the order of their creation.
- Fixed text outline color not using a in-game setting.
- Fixed wrong text color used for a speech with "Sierra with background" style when no GUI is assigned as a text window and speech is displayed in a standard box.
- Fixed WaitInput() with infinite timeout suspending forever in a skipped cutscene.
- Fixed video playback in Software renderer mode displaying frames in a wrong order.
- Fixed PlayVideo() does not clear the screen before playing a video in Software render mode, which could result in having traces of previous scene staying on screen.
- Fixed Software renderer could potentially crash when the sprite cache reaches its limit and there's an overlay displayed on screen.
- Fixed a "division by zero" crash occuring when the engine is precaching a View without frames.
- Fixed reading plugin data from compressed saves.
v3.6.3 - Beta 2
This is 3.6.3 Beta 2
Contains all fixes and additions from 3.6.2 Patch 4
Own changes:
Common:
- Fixed WFN auto-outline not drawn correctly if font's SizeMultiplier is > 1.
Editor:
- Fixed "Go to..." dialog in Project Explorer not letting to type multi-digit IDs if any intermediate IDs are missing in the objects list.
- Fixed Project Explorer's blocking global shortcuts when focused.
Script API:
- Add eUndefinedFont constant that may be used in certain font properties as a indication that they are not initialized, and engine should go for a default fallback value instead.
- Dialog.OptionsFont is initialized as eUndefinedFont, meaning that if it's not set, then dialogs should use Game.NormalFont.
- Add Dialog.OptionsZOrder.
- Added Dialog.OptionsOverlay that lets access a overlay object which represents dialog options on screen (only returns overlay when the options are displayed).
- Added Dialog.StartOption() that runs dialog starting with the given option. The option's state (turned off, turned off forever) is disregarded in this case.
- Added Game.Speed property. Get/SetGameSpeed function is deprecated.
- Added System.FPS that lets read current real fps.
Engine:
- Fixed reading plugin data from compressed saves.
- Fixed debug Time counter jumping back and forth in "infinite fps" mode.
Compatibility:
- Let restore a save from game_start() in pre-2.7 games.
- When a Restore/SaveGameDialog() function is called, remember the game's "normal font" value at the moment of a function call, and use it when the dialog is finally shown after the current script end, even if "normal font" setting was changed again in meantime.
- Don't outline fonts on standard dialogs in pre-2.56 games.
- Let very narrow labels to still display a 1 character long text in pre-3.6.0 games.
- In 32-bit games made by AGS 2.* whenever GUI has a background graphic with alpha channel, render all colored (no sprite) child controls as fully transparent; and do not render the GUI's own background and border color too in that case.
- Allow a non-closed label macro (such as "@overhotspot") in pre-3.5.1 games.
- In pre-2.62 games Wait(0) should be treated as Wait(1).
- Don't do infinite loop check in scripts in pre-2.56 games.
- In pre-3.6.1 games with custom dialog options rendering force options redraw each time a mouse was moved (regardless of user script update instruction) to complement for a change in engine's behavior.
- Implemented a stub for AudioChannel.SetRoomLocation() variant with 3 parameters, needed for the "Nefasto's Misadventures" game which used a custom engine.
- Implemented an accidental return value for FaceCharacter() and FaceLocation() functions that they had in 2.* engines; some very old games have used that return value in script.
- Fixed TTF fonts in pre-3.2.0 games having an incorrect ascender (drawn lower) if the game has a "Fonts anti-aliasing" enabled.
- Fixed unwanted overhotspot text flicker which may potentially happen in pre-3.6.0 games.
- Fixed room object sorting order for the games made between 3.3.0 and 3.4.0 editors. They have had a mistake which unfortunately affected how objects with the identical baseline will be sorted among themselves.
- Fixed textual overlay heights in 3.6.0-3.6.1 games which fonts have incorrectly reported sizes.
- Fixed various broken dialog option metrics in older games, caused by the changes in the new engine.
- Fixed text window area width being slightly different in older games.
Installer:
- Fixed appID for 3.6.3 (forgot to do that when the Beta 1 was released).
v3.6.2 - P4 (3.6.2.14)
This is a 3.6.2 Patch 4.
Editor:
- Make Font's OutlineFont property provide a drop-down list with fonts.
- Restrict Room's BackgroundAnimationDelay property to a range of 0-255 (engine's limitation).
- Fixed Character's animating preview not updating if a View is being edited at the same time.
- Fixed Font preview scrolling too far down, and sometimes causing some letters to cut off.
- Fixed View Editor reacting to shortcuts such as F or Delete when the input focus is set to a selected Frame's properties.
- Fixed Editor reporting "the script name in use" errors for Room Objects and Hotspots that don't have any script name set.
- Fixed Editor Preferences resetting Android JDK and SDK path if one was typed or pasted directly into the text box rather than selected using a Folder browse dialog.
- Fixed Editor displaying an "unhandled exception" if an older file cannot be deleted while rebuilding the game. Should be recording such error and display as a regular message box or in the output panel.
Engine:
- Returned "Linear" filter for Software renderer. It was temporarily cut during development of version 3.6.0, but we forgot to bring it back.
- Do not enable "infinite FPS mode" if game script calls SetGameSpeed with a value 1000 or higher.
The problem is that the script API does not have any means to turn this mode off, so game will be stuck in "maxed FPS". The remaining method is Ctrl+E hotkey used to toggle "infinite FPS" if the game is run with "--fps" command line argument. - Do not apply disabled effect on a Button which runs a blocking animation. Also do not hide its parent GUI if game options tells that GUIs should be hidden when the interface is disabled.
- Changes to the current room's masks will now be remembered in game saves.
(This only refers to he current room; the mask changes are still reset when player leaves the room, just like the changes to room backgrounds.) - Dynamically update debug overlay with a room mask on it if a room mask is being drawn upon.
- Do not quit if failed to run PlaySilentMIDI(), log a warning instead.
- Do not try animating a cursor if the assigned view is invalid or contains no frames in loop 0.
- Don't log warnings for File.Exists and Game.GetSaveSlotDescription when a file was not found, as these functions are meant to test a file existence.
- Fixed engine's general misbehavior occuring if any Character, GUI or AudioClip does not have any ScriptName assigned.
- Fixed "Box Out" room transition not using a color set with SetFadeColor() when running with a Software renderer (this behavior was implemented in 3.6.2).
- Fixed room background animation running too fast if the BackgroundAnimationDelay was set to a value > 127.
- Fixed Character.FaceDirection() and similar commands not resetting idle state.
- Fixed Character.WalkStraight for games with legacy "low-res" coordinates setting.
- Fixed severe performance drop when dialog options are displayed (regression in 3.6.2).
- Fixed dialog options were rendering twice per game frame (this did not cause any graphical glitches, but could cause extra performance issues).
- Fixed that room objects may not get drawn during dialog options if they are started right at entering the room, and running game loops is disabled when options are shown.
- Fixed video playback in Software renderer mode displaying frames in a wrong order.
- Fixed PlayVideo() does not clear the screen before playing a video in Software render mode, which could result in having traces of previous scene staying on screen.
- Fixed a DynamicSprite not updated on screen after CopyTransparencyMask() call (except when running with a Software renderer).
- Fixed that disabled Buttons may not have their looks updated if GUI disabled style was changed in script ("OPT_WHENGUIDISABLED").
- Fixed wrong text color used for a speech with "Sierra with background" style when no GUI is assigned as a text window and speech is displayed in a standard box.
- Fixed automatic font outline could miss some pixels around the first and last letter of the text string if the font's glyphs contain pixels with negative offsets.
- Fixed Overlays with the matching z-order not always sorted in the order of their creation (regression in 3.6.2).
- Fixed SeekMIDIPosition() and GetMIDIPosition() crashing the game if a "silent MIDI" is playing.
- Fixed NumPad key presses doubling up when NumLock is on in a "old key-handling mode".
- Fixed Wait(0) call still suspending the game until the next update, should exit instantly.
- Fixed WaitInput() with infinite timeout suspending forever in a skipped cutscene.
- Fixed wrong palette used when loading secondary 8-bit backgrounds in a 16/32-bit game.
- Fixed that "unhandled_event" would be called only starting with the second object interaction if that object has a function name assigned for that interaction, but the actual function is not found in script.
- Fixed that "interface_click" not getting called if a GUI click event's function is missing in a designated script module, but is present elsewhere (although that function will be never run).
- Fixed mouse clicks could stop working after a call to a InventoryScreen() function, if player character does not have any items.
- Fixed Software renderer could potentially crash when the sprite cache reaches its limit and there's an overlay displayed on screen.
- Fixed a "division by zero" crash occuring when the engine is precaching a View without frames.
Compatibility:
- If PlayVideo() is used to play a non-OGV file, then engine will lookup to a OGV file of the same name to play instead. This is made to let game authors or players of old games to convert wmv/avi video assets to ogv without recompiling game scripts.
- Fixed loading games made by v2.56 editor which contain custom properties.
Plugins:
- Fixed a crash in AGSBlend plugin, occuring if DrawSprite function was called with transparency parameter = 100 (fully transparent).
v3.6.1 - P12 (3.6.1.34)
This is a 3.6.1 Patch 12.
Contains bug fixes accumulated for the last several months, that are applicable to 3.6.1.
Editor:
- Restrict Room's BackgroundAnimationDelay property to a range of 0-255 (engine's limitation).
- Fixed View Editor reacting to shortcuts such as F or Delete when the input focus is set to a selected Frame's properties.
Compiler:
- Fixed a crash caused by meeting certain unicode characters in script (outside of string or character literals).
Engine:
- Do not enable "infinite FPS mode" if game script calls SetGameSpeed with a value 1000 or higher.
The problem is that the script API does not have any means to turn this mode off, so game will be stuck in "maxed FPS". The remaining method is Ctrl+E hotkey used to toggle "infinite FPS" if the game is run with "--fps" command line argument. - Do not quit with error if a wrong GUI type is assigned as a "TextWindow GUI", display default message box instead and log a warning.
- Do not quit if failed to run PlaySilentMIDI(), log a warning instead.
- Do not try animating a cursor if the assigned view is invalid or contains no frames in loop 0.
- Don't log warnings for File.Exists and Game.GetSaveSlotDescription when a file was not found, as these functions are meant to test a file existence.
- Fixed engine's general misbehavior occuring if any Character, GUI or AudioClip does not have any ScriptName assigned.
- Fixed room background animation running too fast if the BackgroundAnimationDelay was set to a value > 127.
- Fixed Character.FaceDirection() and similar commands not resetting idle state.
- Fixed dialog options were rendering twice per game frame (this did not cause any graphical glitches, but could cause extra performance issues).
- Fixed slightly broken slider's handle position for thin sliders with very small handle sprites.
- Fixed sprite cache or texture cache not initializing properly if their size in config is assigned to a too large number. The cache sizes will be now correctly limited to the max possible size available to the current engine build (32-bit or 64-bit).
- Fixed Software renderer could potentially crash when the sprite cache reaches its limit and there's an overlay displayed on screen.
- Fixed switching display modes while running a 16-bit game could lead to current graphical overlays (like character portraits, etc) become corrupted.
- Fixed a DynamicSprite not updated on screen after CopyTransparencyMask() call (except when running with a Software renderer).
- Fixed SeekMIDIPosition() and GetMIDIPosition() crashing the game if a "silent MIDI" is playing.
- Fixed NumPad key presses doubling up when NumLock is on in a "old key-handling mode".
- Fixed WaitInput() with infinite timeout suspending forever in a skipped cutscene.
- Fixed mouse clicks could stop working after a call to a InventoryScreen() function, if player character does not have any items.
- Fixed engine overwriting existing translations when duplicate keys are found in the translation file (it should keep the first met translation instead).
- Fixed engine to not try to translate empty lines. There was a rare error when the translation contained an incorrect entry with empty key line but non-empty translation, in which case engine could display that "translation" anytime any label has empty text.
- Fixed a "division by zero" crash occuring when the engine is precaching a View without frames.
Compatibility:
- If PlayVideo() is used to play a non-OGV file, then engine will lookup to a OGV file of the same name to play instead. This is made to let game authors or players of old games to convert wmv/avi video assets to ogv without recompiling game scripts.
- Fixed loading games made by v2.56 editor which contain custom properties.
- Fixed loading saves made by v3.4 - v3.4.1 engine in games with custom properties.
- Disable smooth walk transition in pre-3.6.1 games, as apparently this breaks logic in some of them where precise walking coordinates and/or timing is required by scripts.
- Fixed misaligned text centering on buttons in pre-3.6.0 games.
Plugins:
- Fixed a crash in AGSBlend plugin, occuring if DrawSprite function was called with transparency parameter = 100 (fully transparent).
WinSetup:
- If any of the cache sizes in config is set to a value not present in the option lists, the list will be assigned to the nearest matching value, instead of resetting to default.
v4.0.0.20 (AGS 4.0 Alpha 24)
Contains all the additions and fixes from 3.6.2 Patch 3 and 3.6.3 Beta 1 (excepts ones related to backwards compatibility).
Own changes:
Common:
- Fixed an ancient mistake where Character's and Object's sprites would be drawn 1 pixel higher than their Y position demands. This affects both how the sprites are positioned in game at runtime and in the Room Editor.
Editor:
- The "Upgrade Game Wizard" dialog will be now shown if the loaded game must go through noteable modifications when upgrading to the current version.
- Fixed setting Color property in the editor to 0 makes a black color instead of transparent.
- Fixed non-latin unicode characters in room and room object/hotspot etc properties getting lost when closing and reloading a room.
Scripting:
- Support modulus-assignment operator (%=).
Script API:
- Expanded RepeatStyle with more animation flow styles: eOnceAndReset, eOnceAndBack and eRepeatAlternate. These styles are currently supported in Animate(), MovePath() and WalkPath() commands, and MotionPath struct.
Engine:
- Fixed buttons with non-clipped text wider than the button itself had a wrong interaction rectangle.
- Fixed reading saves with walking characters made after 4.0.0.16.
- Fixed reading saves with overlays made after 4.0.0.18.