Releases: adventuregamestudio/ags
v4.0.0.19 (AGS 4.0 Alpha 23)
Contains all the additions and fixes from 3.6.2 Patch 2 (excepts ones related to backwards compatibility).
Own changes:
Editor:
- Fixed memory leak occuring when compiling room scripts, which may eventually lead to "out of memory" errors.
Compiler:
- Compiler checks arguments of text formatting functions where possible, and reports mismatching args during compilation.
- Fixed a wrong error was reported if a "null" is passed as a
const string
function parameter.
Script API:
- Added GameInfo struct that contains meta-information about the game, such as developer's name, developer's URL, version, and so forth.
- Added VideoPlayer.FrameWidth and FrameHeight properties.
- Added VideoPlayStyle enum, PlayVideo() now uses VideoPlayStyle as "flags" argument.
Engine:
- Improved video playback's synchronization between video and audio streams.
- Fixed engine was closing the game too early while connected Editor is displaying a script error popup, if there was "Watch Variables" pane active at the same time.
v3.6.2 - P2 (3.6.2.12)
This is a 3.6.2 Patch 2.
Editor:
- The multiline Text edit window can now be called for all the "free text" properties in the game, by pressing the "..." button.
- "Edit Custom Properties" and "Edit property schema" dialogs are now resizable, and remember their size and position.
- When making a game template Editor will now use an optional "template.files" file, if one is found in the project folder. This file should contain include/exclude filepath patterns, and lets include subfolders into the template too.
- Fixed Editor application freezing at the Splash screen if any exception occured when starting up. Now it should close itself properly.
- Fixed "Export sprites" dialog visual style and being cut on Windows 11.
- Fixed script preprocessor not recognizing macros which begin with a underscore.
- Fixed that error reports occuring when opening a room had only their first line displayed in a message box, instead of a full error message.
- Fixed wrongly issued warnings about voice-over filenames not matching selected naming style.
- Fixed that during a test game run new function names may still be auto-inserted into the object's event property when user clicks on "..." button (or double clicks the gui control), while actual functions won't be added to script, as the script is forbidden from being modified during game test.
- Fixed that if there was already a function name inserted into a gui control's event property, but actual function not present in script, the function is not created when user double clicks the gui control.
Compiler:
- Fixed error occuring when processing a global variable which type is an empty struct.
Script API:
- Fixed default values for save slots range in FillSaveGameList(), RestoreGameDialog() and SaveGameDialog(), they did not match historical behavior of these functions. The default slots range is now 0-99.
Engine:
- Fixed game refusing to load if a font file is not found, use font 0 as a fallback instead.
(This restores a historical behavior, but now it works for any font, not only WFNs.) - Fixed characters being forcedly moved to a walkable area after a call to FaceLocation() or a similar function.
- Fixed a single black frame displayed before the video when PlayVideo() is called.
- Fixed "fade-out" transition could sometimes not play to the end.
- Fixed mouse cursor and @OVERHOTSPOT@ labels displayed for 1 frame between fade-in and "After fade-in" event, which could cause them flickering unexpectedly if "After fade-in" script contains blocking cutscene.
- Fixed @OVERHOTSPOT@ labels not redrawing after blocking action ends if the cursor remains over the same hotspot where it was before the action.
- Fixed game interface could become enabled for a single game frame each time right before the Dialog options are displayed. This could cause e.g. a "normal" cursor or @OVERHOTSPOT@ text to appear for the split second.
- Fixed gui texts aligned to Bottom or Right had a position mistake in 1 pixel.
- Fixed slightly broken slider's handle position for thin sliders with very small handle sprites.
- Fixed SayAt() not being clamped at the screen width (as it was historically).
- Fixed AudioClip.IsAvailable not working correctly.
- 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).
Compatibility:
- Corrected a fix for the misaligned text centering on buttons in pre-3.6.0 games (the previous fix introduced in 3.6.2 Patch 1 happened to be breaking some other cases).
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.
Templates:
- Source asset files (sprites) are included along with the template games now.
v4.0.0.18 (AGS 4.0 Alpha 22)
This is AGS 4.0 Alpha 22.
Contains all the new features and fixes from 3.6.2 release and 3.6.2 Patch 1 (excepts ones related to backwards compatibility).
Own changes:
Editor:
- Editor requires .NET Framework 4.7 to run.
- In General Settings added "GUI common controls handle only left mouse button" option that lets prevent RMB from activating gui controls, except those that have separate actions for left and right mouse buttons.
- Added XOffset and YOffset properties for the View Frames.
- Redesigned Color Finder panel, now it lets to specify alpha color component, and convert between several different color representations.
- Fixed error occuring when creating a new Font.
- Fixed error occuring when renaming a room.
Script API:
- Added ShaderProgram and ShaderInstance structs, meant for the custom shaders support.
- Added Character.Shader, GUI.Shader, GUIControl.Shader, Object.Shader, Overlay.Shader, Camera.Shader, Viewport.Shader, Mouse.CursorShader, Screen.Shader.
- Added Button.GraphicFlip property.
- Added GUIControl.Rotation.
- Added GUIControl.ScaleX and ScaleY properties, GUIControl.SetScale() function.
- ViewFrame.Flipped property is now settable and returns eFlipDirection instead of bool.
- ViewFrame.Speed property is now settable.
- Added ViewFrame.XOffset and YOffset properties.
Engine:
- Support custom shaders, initialized through script API. Shaders are loaded and compiled from GLSL (for OpenGL) or HLSL (for Direct3D) shader scripts, and may be attached to game objects, camera, or the whole game view. Shaders may have user-defined constants, and have up to 3 secondary textures on input.
- Support compressing game saves using Deflate algorithm. Added config option "compress_saves" in "misc" section, disabled by default.
- Always compress a screenshot in game save using Deflate algorithm.
- Consistent GUI translation: the values of textual properties will never be automatically translated on assignment or reading them, only the text displayed on screen will be translated.
- Fixed error occuring when either a screenshot is made, or Crossfade or Dissolve room transition is run.
- Fixed error which had a chance to occur when ordering a character to walk after recently restoring a save.
- Fixed character not making the first animation step before starting a move.
v3.6.2 - P1 (3.6.2.11)
This is a 3.6.2 Patch 1.
Editor:
- On failed new font import do not replace the font with font 0 in preview, as that's confuses users and hides import errors.
- Fixed an unhandled exception which occured on Text Parser panel when user pressed Enter while no item is selected.
Engine:
- Try to detect incorrect argument types in string formatting functions such as String.Format, in attempt to avoid crashes when a '%s' format is used (this is still not 100% secure though).
- 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.
- Fixed a crash occuring when reading Character.DestinationX/Y properties while the character is turning on spot after a call to FaceDirection.
- Fixed a crash occuring when SpeechView is assigned a view that has no loops.
- Fixed Lucas-Arts speech positioning mistake occuring, for example, when there's a big transparent GUI covering whole screen.
- Fixed dialog options with no text, they were displayed and could be selected by player, which should not be happening.
- Fixed Character.PlaceOnWalkableArea() and Room.NearestWalkableArea() returning wrong results if Room's mask resolution is not 1:1.
- Fixed Direct3D and OpenGL renderers displaying sprites with occasional "magenta" pixels when "Smooth scaled sprites" setting is enabled but graphic filter is set to "Nearest-neighbour".
Compatibility:
- Support detecting and loading game data from Linux game ports where it's called "agsgame.dat", and is created using an older version of the third-party "agspack" utility.
- 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.
3.6.2 Release
This is a stable 3.6.2 release. The contents of this update are listed in Changes.txt as usual.
If you're making games with this, please be sure to read "Upgrading to 3.6.2" article in the manual.
People who were working on this release:
@AlanDrake (fixes)
@edmundito (fixes)
@ericoporto
@ivan-mogilko
@rofl0r (compatibility fixes for old games)
@tag2015 (compatibility fixes for old games)
Also:
homelightgames - made scalable images for the wizard dialogs.
v3.6.1 - P11 (3.6.1.33)
This is a 3.6.1 Patch 11.
Editor:
- Clear output panels when loading a different project.
Engine:
- Fixed engine could run scheduled previous room's event after changing to a different room.
This could happen, for example, if the room was changed in "on_event" with eEventEnterRoomAfterFadein; in such case a previously scheduled "After Fade-in" would run before proper "Before Fade-in" of the new room. - Fixed in 8-bit games Fade effect did not having a frame delay (was passing instantly).
Compatibility:
- Fixed certain old 8-bit games (like "Trilby's Notes") did not recover after the FadeOut() script command.
v4.0.0.17 (AGS 4.0 Alpha 21)
This is AGS 4.0 Alpha 21.
Contains all the new features and fixes from 3.6.2 RC3 (excepts ones related to backwards compatibility).
Own changes:
Editor:
- In General Settings added "GUI common controls handle only left mouse button" option.
- Fixed default values for Character and Object's Enabled and Visible properties set when upgrading a pre-4.0 game project.
- Fixed default value for "Use old-style voice clip naming rule" setting set when upgrading from older 4.0 alpha versions.
- Fixed newly created WFN fonts had their size multiplier property discarded when a game is compiled.
Compiler:
- Fixed a bug where naming a parameter like its function led to a crash.
Scripting:
- Support regular (non-managed) struct and array variable initializers, where you can specify their element values either in the order of their declaration or as a "name1: value, name2: value" sequence. For arrays the latter would be "0: value, 1: value" and so forth.
NOTE: this works only for global variables at the moment.
Script API:
- Added DialogOptionsNumbering enum, to use when setting dialog options numbering mode.
- Added multiple new properties to Dialog type: OptionsBulletGraphic, OptionsGap, OptionsGUI, OptionsGUIX, OptionsGUIY, OptionsHighlightColor, OptionsMaxGUIWidth, OptionsMinGUIWidth, OptionsNumbering, OptionsPaddingX, OptionsPaddingY, OptionsReadColor, OptionTextAlignment. Most of these are replacing previously existing old-style variables in "game" struct and OPT_* options. OptionsGUIX/Y and OptionTextAlignment are completely new features.
- Added new game-wide option OPT_GUICONTROLMOUSEBUT that defines whether common GUI controls are affected by the right mouse button or not (InventoryWindows are excluded from this, because they have their own special handling for RMB).
Engine:
- Standard Dialog options now support Right-to-left text mode.
- Fixed a number of Room's script indexed properties not working correctly, such as: Room.Hotspots[], Room.Objects[], Room.Regions[], Room.WalkableAreas[], Room.Walkbehinds[].
- Fixed blend modes not handled correctly by Software renderer.
- Fixed certain blend modes not respecting transparency with OpenGL renderer.
- Fixed default dialog options highlight color had wrong value.
- Fixed Character.FaceDirection() not respecting blocking style parameter.
- Fixed characters and objects not making last planned step when moving.
v3.6.2 - RC3
Contains all fixes from 3.6.1 P10
Own changes:
Editor:
- Added a readonly "ProjectFilename" property to Fonts, which displays their in-project file name.
- Added "Palette index" selection for sprite's import transparency option.
- Added "Change Room Number" context menu command for the Rooms in Project Explorer.
- Fixed importing GIFs with "palette 0 / N" transparency option would refer a palette color from each individual frame's palette rather than the original GIF palette, which could lead to wrong colors used as transparents.
- Fixed Autocomplete failing in case of UNIX line endings in script file.
- Fixed Font preview could crash the Editor with out of memory error in case of a very big font.
- Fixed Editor won't won't let change existing TTF font's size if SourceFilename property is not set for any reason.
- Fixed Frame index not applied when importing sprites from a GIF (regression since 3.6.2 Beta).
- Fixed unhandled exception occuring when user right-clicks or double clicks on a informative message in the Output panel.
Script API:
- Added Room.BackgroundCount readonly property.
- Added GetWalkBehindBase() function, complementing SetWalkBehindBase().
Engine:
- Fixed GUI controls with transparency are not drawn correctly by the Software renderer.
- Fixed DynamicSprite.Rotate mistreating "degrees" argument.
v3.6.1 - P10 (3.6.1.32)
This is a 3.6.1 Patch 10.
Editor:
- Fixed a check for an imported room mask size did not correctly account for the room's mask resolution setting (it worked, but mishandled some edge cases).
- Fixed exceptions occuring when reimporting a sprite or a audio clip from source, if the source filename string was wrapped in double quotes.
- Fixed script variables generation could sometimes produce a non-latin character in a variable name if the Editor is running on a system with non-English current locale.
- Fixed '\n' linebreaks not saved correctly in dialog option strings.
- Fixed translation compiler mistreating escaped opening bracket in a text line (
"\["
);
it must keep it as-is, because "[" char is a old-style line break in AGS. - Fixed LogPanel not applying filter settings right after they were changed.
Engine:
- Fixed a AudioChannel did not report a correct Position right after a AudioClip.PlayFrom() call.
- Fixed Button resizing to sprite 0 size if NormalGraphic is set to 0 (default button look).
- Fixed Character movement recalculation when changing move speeds while walking, and movement path contains 45-degrees diagonal segments.
- Fixed a solid Character (serving an obstacle) can get ignored by a walking Character, if the obstacle character's position appears within the walking character's own blocking zone.
(This seems to be a redundant condition introduced very long time ago in the engine by mistake.) - Fixed object's look not updated after it was assigned a dynamic sprite, redrawn, sprite deleted, object redrawn without a sprite (used a placeholder), and then another dynamic sprite assigned with coincidentally the same number.
- Fixed font outline index limited to 127 (although we theoretically support higher font numbers).
- Fixed font outline parameters not initialized correctly if engine is built by a system that treats "char" as unsigned 8-bit type.
- Fixed a crash which occured when script mistakenly tried to call RunInteraction() for a inventory item 0.
- Fixed loading translation entries larger than 1024 bytes.
- Fixed SDL log level was defaulting to "verbose" if not read from config (should be "info").
WinSetup:
- Fixed "Save and Run" command sometimes caused 2 engine processes, one of which terminated later.
This did not prevent a game from running, but could result in temporary CPU and memory overload.
v3.6.0 - P13 (3.6.0.60)
This is a 3.6.0 Patch 13.
Editor:
- Fixed translation compiler mistreating escaped opening bracket in a text line (
"\["
); it must keep it as-is, because "[" char is a old-style line break in AGS.
Engine:
- Fixed loading translation entries larger than 1024 bytes.
WinSetup:
- Fixed "Save and Run" command sometimes caused 2 engine processes, one of which terminated later.
This did not prevent a game from running, but could result in temporary CPU and memory overload.