Releases: adventuregamestudio/ags
v3.6.0 - P12 (3.6.0.59)
Engine:
- Fixed deleted DynamicSprite which is still assigned to a mouse cursor may cause engine's sprite cache to enter a corrupt state, eventually leading to a crash.
v4.0.0.15 (AGS 4.0 Alpha 19)
This is AGS 4.0 Alpha 19.
Contains all the new features and fixes from 3.6.2 RC1 (excepts ones related to backwards compatibility).
Own changes:
Editor:
- When Room's background size is changed, adjust Edges according to the selected mask resize method as well (reset, keep or rescale positions).
Script API:
- Added Pathfinder.IsWalkableAt() and NearestWalkablePoint() functions.
- Added optional width, height and layer parameters to SaveScreenShot(). SaveScreenShot() now supports location tokens in file path.
Engine:
- Rewrote script interpreter, with the purpose to potentially allow certain features in the future. There must not be any changes in script behavior at the moment (but testers should keep an eye for any regressions).
- Fixed engine refusing to play video files if they have a non-standard extensions (e.g. in case when game author wants to hide their nature).
v3.6.2 - RC1
Editor:
- "Start New Game" Wizard dialog now has a with scalable intro image, increased dialog's height to accommodate a bigger template selection page.
- GUI selection in settings is now done using drop-down lists which list all eligible GUI types instead of having user to type GUI number. The setting will be automatically fixed if a GUI is removed.
- Property Grid and Room's navigation bar now display object's description along with the script name on the drop-down list labels.
- Added "Replace source paths for sprites..." context menu command in Sprite Manager. This command allows to batch-replace parent folder for all sprite source paths, in case you moved original files from one folder to another.
- Added "Replace source paths for audio clips..." context menu command for the Audio node. This command allows to batch-replace parent folder for all clips' source paths, in case you moved original files from one folder to another.
- When the room background size changes, reset room edges to defaults.
- Don't restrict compiling a voice-based lipsync if game has a Lucas-Arts style speech.
- Issue a compilation warning if found speech files named using different rule (opposing the current project setting).
- Fixed Project Explorer refreshing when user changes names or descriptions of room objects.
- Fixed Room Objects did not have a ScriptModule assigned when first created.
- Fixed Autocomplete not giving correct results in case of a long chained access, i.e. something like "var[0].member.member".
- Fixed Autocomplete giving wrong list of choices for wrong syntax cases like: indexed access of a type and non-array struct variable, member access of a static array.
- Fixed Autocomplete was wrongly treating indexed attributes as dynamic arrays (regression in 3.6.2 Beta).
- Fixed Autocomplete was not listing members of a dynamic array's element of struct type (regression in 3.6.2 Beta).
Script API:
- Added Room.NearestWalkableArea() that returns the nearest found point on a walkable area.
Engine:
- Character.PlaceOnWalkableArea() now does a 1-pixel step scan, ensuring walkable area will be found regardless of how small it is. Optimized the search algorithm to keep it fast enough even in very large rooms.
- Support voice-based lipsync (Pamela, Papagayo) with Lucas-Arts style speech.
- When mouse is locked in window, confine its position to the game viewport; exclude black border.
- Added "display" config option to "graphics" section. This is a 1-based display index, where 0 means "use default display".
- Added "--display" command-line argument that lets choose which display to open game window on.
- Fixed Software renderer being unable to restore a windowed mode on certain monitors, when switching from a real fullscreen mode.
- Fixed Lucas-Arts style character speech displaying offscreen if character is standing below the bottom of a room viewport.
- Fixed Character.WalkStraight() commencing a walk even if already at destination, which may cause character to jump back if you also move it elsewhere by a direct position assignment same game frame (regression in 3.6.2 Beta).
Plugin API:
- Updated few callback and function prototypes in order to make them 64-bit compatible (allow pass and receive pointers). This includes AGS_EngineOnEvent for AGSE_TRANSLATETEXT and render stage events, and CallGameScriptFunction which now lets pass a const char* argument.
Compatibility:
- Fixed very old games not being able to run script callbacks with positive number of arguments (regression in 3.6.2 Beta).
WinSetup:
- Added "Display" selection, allows to select which display to open the game window on.
v4.0.0.14 (AGS 4.0 Alpha 18)
This is AGS 4.0 Alpha 18.
Contains all the new features and fixes from 3.6.2 Beta 6 (excepts ones related to backwards compatibility).
Own changes:
Common:
- Color number properties now correspond to the encoded 32-bit ARGB (A8R8G8B8 format).
Editor:
- In 32-bit game projects you can assign full RGBA color definition, where alpha is optional, and is assumed 255 if not specified. Color value 0 means "transparent" regardless of game's color depth.
NOTE: color picker currently does not let define alpha, so only opaque colors may be selected using it; but you may still enter RGBA value by hand.
Script API:
- All existing Color properties now assume full ARGB values (0xAARRGGBB) in 32-bit games. This means that you must specify alpha value when assigning a color number directly, otherwise the game will treat the color as fully transparent.
- Added Game.GetColorFromRGBA() function that creates a color number for red, green, blue and alpha combination.
- Added DrawingSurface.BlendMode property that lets define blend mode for primitive drawing operations (line, rectangle, triangle, etc).
- Added DrawingSurface.SetPixel() function that lets to set a pixel value of specified color, disregarding any surface's drawing settings.
Compiler:
- Fixed unnecessary warnings about function parameters in function declarations "hiding" global functions of same name. Only report such warnings for function bodies.
- Fixed incorrect "overflow" error reported for a bitwise left shift operation, when shifting a byte value by 24 bits.
Engine:
- All color settings in a 32-bit game now respect alpha value, meaning they may be half-transparent. This refers to almost anything that may have a color: texts, GUI backgrounds, DrawingSurface's DrawingColor, and so forth. The exceptions are things that only make sense with opaque color: Tint settings, and screen Fade effects.
- Fixed Type.GetByName() functions not working again.
- Fixed loss of precision in sprite rotation, which could cause rotating sprites by a multiple of 90 degrees to cause unexpected shifts of an image by few pixels (regression in 4.0 Alpha).
- Fixed 32-bit images loaded with DynamicSprite.CreateFromFile() becoming completely transparent (regression since previous 4.0 Alphas).
- Fixed GUI not redrawing properly by software renderer.
v3.6.2 - Beta 6
Contains all fixes from 3.6.1 Patch 9.
Own changes:
Editor:
- Added "Game Speed" property in General Settings.
- Support importing 32-bit BMP files of extended formats (this support is formal at the moment, and does not guarantee that any of the extended data will be interpreted).
- Support importing indexed images which palettes contain translucent alpha as sprites with alpha.
- Fixed Button getting resized to the image's size when user cancels different sprite assignment.
- Fixed Editor may display a "save project" confirmation when run with "/compile" command-line parameter.
Script API:
- Fixed some script functions in AGS API were declared with "int" return value, while they are supposed to be "void".
Engine:
- Updated to SDL 2.30.11 and SDL_Sound 2.0.4.
- Support calling StopDialog() inside any regular script, even when dialog options are displayed.
- Fixed character may get stuck inside a non-walkable area after Character.WalkStraight().
- Fixed a potential lockup that may occur when the engine is run from the editor, and is told to stop at a breakpoint.
- Fixed 48khz OGG clips may have extra silence added to them in the end, causing "hickups" when the sound playback is looped.
Windows:
- Windows version of AGS is now built with MSVS 2019 and higher.
Compatibility:
- Fixed "Quest for Infamy" infinite scripted walk retriggering in certain areas (this was happening because of some changes to the 3.6.2 engine).
v3.6.1 - P9 (3.6.1.31)
This is a 3.6.1 Patch 9.
Editor:
- Fixed dragging an item to a folder in Project Explorer might cause that item to visibly appear in a wrong folder, if there are folders which name differ only in letter case.
Engine:
- Fixed Character.Animate() could cause game to error reporting "invalid loop" if this character was idling at the time, and Character.LockView() was not called prior to Animate(). (This is a regression in 3.6.1)
- Fixed inventory cursor hotspot (crosshair) not drawn properly over item sprites with alpha.
OSX:
- Fixed location of global config file: was in game installation directory, now in "Library/Application Support/uk.co.adventuregamestudio".
v4.0.0.13 (AGS 4.0 Alpha 17)
This is AGS 4.0 Alpha 17.
Contains all the new features and fixes from 3.6.2 Beta 5 (excepts ones related to backwards compatibility).
Own changes:
Editor:
- Fixed incorrect default values of GUI color properties (BackgroundColor, etc). This is a regression in 4.0 Alphas since we support full 32-bit color range values.
- Fixed default value of ListBox's SelectedBackgroundColor is being treated as "transparent", for the same reason.
Scripting:
- May omit struct's name when addressing a static member from within a struct's member function.
Script API:
- Added Game.RoomCount, RoomNumbers[] and RoomNames[] properties.
- Added Room.Number and Name properties.
Engine:
- Fixed program exception when Character.AddWaypoint() is called in script.
v3.6.2 - Beta 5
Editor:
- Fixed a "unterminated string" error in Dialogs was not pointing to the actual error location.
- Fixed a possible "index out of range" exception that may occur while user types a function declaration (a regression in previous 3.6.2 Beta).
Script API:
- Changed eEventGUIMouseDown and eEventGUIMouseUp events to receive click position in GUI-relative coordinates.
- Renamed File.ReadBytes() and WriteBytes() to ReadRawBytes() and WriteRawBytes() respectively, in sake of consistency with other File functions.
- Added File.ReadFloat() and WriteFloat() that safeguards the written value with a tag.
Engine:
- Increased the cap of simultaneously loaded scripts to 1024 (this includes all regular script modules, a single active dialog script, and a single active room script).
- Character.FollowCharacter() can now have a distance parameter up to 32766 (was limited to 255).
- Ensure that the objects with identical z-order (baseline) always keep same relative sort order when being drawn (note: engine does not guarantee a predefined order, only a persistent one).
- Fixed inventory cursor's crosshair hotspot was drawn incorrectly if active item's sprite has a alpha channel.
Engine Plugin API:
- Added IAGSEngine.CreateDynamicArray(), which lets plugins to create dynamic arrays.
- Added IAGSEngine.GetDynamicArrayLength() and IAGSEngine.GetDynamicArraySize(), which tell the passed array object's number of elements, and total size in bytes respectively.
v4.0.0.12 (AGS 4.0 Alpha 16)
This is AGS 4.0 Alpha 16.
Contains all the new features and fixes from 3.6.2 Beta 4 (excepts ones related to backwards compatibility).
Own changes:
Editor:
- Added Flip property to View Frame, replacing a boolean Flipped property. The new property supports all 3 flip variants: horizontal, vertical and both at once.
- Fixed certain errors like "not terminated string" in Dialog Scripts did not report correct Dialog and line, making it difficult to find the cause of mistake.
Compiler:
- Fixed function bodies mistakenly declared with "import" keyword could cause program memory corruption during compilation.
Scripting:
- When calling a function you may specify parameter names like "name1: value, name2: value", and when doing so - pass arguments in any order.
Script API:
- Added Overlay.Flip property that lets to set one of the 3 standard flip styles.
- ViewFrame.Flipped property now returns eFlipDirection instead of bool.
Engine:
- Engine now supports up to 1024 simultaneously loaded scripts (was 128).
- Fixed Type.GetByName() not working (regression since one of the previous v4.0 Alphas).
- Fixed Software renderer not handling all the Overlay transformations correctly (like rotation).
v3.6.2 - Beta 4
Editor:
- Property Grid now displays Custom Properties right in the main properties list for each item that supports them.
- Support reordering folders in Sprite Manager with drag & drop.
- Script's Autocomplete will now work for dynamic array's Length property.
- Editor will now report any script functions that look like event functions, but not assigned to corresponding events, as warnings when compiling the game.
- Fixed dragging an item into the folder in Project Explorer could move it into a wrong folder if the folders have similar names only different in letter case.
Scripting:
- Support zero-length dynamic arrays. This may be useful if you need to have a dynamic array with no elements, but don't want to bother about checking a null pointer.
Script API:
- Added Character.Following property that returns another Character that this one follows after.
- Added System.DisplayFPS property that toggles FPS counter (a replacement to Debug(4, 1)).
Engine:
- Removed arbitrary limit of 2k bytes for the result of String.Format().
- Fixed calling Character.Animate() during idling state could cause incorrect error, reporting invalid animation loop. (This is regression in 3.6.1)
- Fixed GUI controls get shuffled when restoring saves made by pre-3.6.2 engines (regression since 3.6.2 Beta 3).
- Fixed Game.ScanSaveSlots() erroring on GUI in saves made by pre-3.6.2 engines.