This is 3.6.3 RC5.
Editor:
- Editor's setting "Popup message on compile" will be applied when saving rooms too (but never shown on pure success).
- In Editor Preferences added "Show Output panel on Compile" which configures on which events would Output panel be shown automatically.
- When Editor is run with /compile or /maketemplate parameter from command line, it will save the project file before running game compilation. This is done to avoid potential project data desync if any of the project files require upgrade to the new version.
- Handle loading a project where object lists have gaps in numeric IDs, or duplicate IDs. For each missing ID a "filler" object of respective type will be added to the game. The objects with duplicate IDs will be assigned the first free ID. This lets to keep editor and game logic execute properly. The users will have a opportunity to decide what to do with affected objects after the project is loaded.
- Made color properties expand to Number and RGB readonly fields to let user see both representations, and copy particular ones.
- Fixed "Compile all" context menu command was enabled at Translations node even if there are no Translations.
- Fixed OutputPanel which was using 8-bit message icons instead of 32-bit ones.
- Fixed Output panel was automatically popping up when the Room gets saved.
- Fixed currently edited room was closed when renaming custom properties, although there's no need to.
- Fixed "Exclude script function calls" setting not working as expected in some cases.
Compiler:
- Fixed line numbering in script files with UNIX line endings (LF).
Script API:
- Added Character.LoseInventoryAt() function that removes an item at the given index in the character's inventory. This also lets remove particular instance in case character owns duplicates of the same inventory item.
- Added ListBox.RowHeight readonly property.
- Overlay.CreateTextual() and SetText() functions now enforce "text color" parameter in all cases, including when overlay is using textwindow gui for background. (Previously the textwindow gui would override text color.)
- Overlay.CreateTextual() and SetText() functions now will treat negative "width" parameter value as "auto-size", and will find the best match for the overlay's width between 3/4 of the screen and the longest text's line (after wrapping).
- Added String.Reverse().
- Region.Tint() no longer remaps amount value 0 to 100, amount 0 will reset the tint instead.
Engine:
- Do not start blocking animation or movement for a disabled Character or Object. This could lead to infinite game freeze, as neither animation or movement are updated if the object is disabled, and since the action is blocking, it will wait in a loop forever.
- DialogOptionsRenderingInfo.Surface will now return null at all times except when inside the dialog_options_render callback, thus behave as expected and according to the AGS documentation. (When running pre-3.6.3 games it will return valid surface for backwards compatibility.)
- Added "debug_pathfind_key" and "debug_walkable_key" config options to "override" section, that let define keys for toggling debug overlays for pathfinder and walkable areas respectively.
- Don't quit with error when any Overlay's function is called for a non-existing overlay, log a warning instead.
- Global messages and Room messages now properly support unicode texts (in case of translations).
- Add [WARN] and [ERROR] labels to the game warning and errors messages printed into the log.
- Reduced logging of certain things set in game, when this doesn't result in actual change.
- Fixed gui controls were changing their effective padding when border gets toggled between shown or hidden, causing unexpected text shifts.
- Fixed inconsistent Slider handle position, introduced by a incorrect slider fix in the previous patches. The slider looks should now be synced with 3.6.0 (and higher versions).
- Fixed black (RGB 0,0,0) region tint value turning into the maximal light level instead.
- Fixed FadeOut(0) causing transition to halt indefinitely when running with Software renderer.
- Fixed that the new room is not drawn immediately with Crossfade and Dissolve transition, but only after "Before fade in" event callback completes.
- Fixed pathfinder's debug overlay toggling off logic.
- Fixed pathfinder's debug overlay scaling in "upscaled" old games.
- Fixed NumPad keys in "old keyhandle mode" triggering both digit and arrow key events when NumLock is on.
- Fixed printing of global and room messages (regression since previous RC).
- Fixed potential crash when GUI.BackgroundGraphic is assigned a non-existent sprite (regression since 3.6.3 Beta).
- Fixed TextBoxes placing cursor too far away from text (regression since 3.6.3 Beta).
- Fixed a old-style InventoryWindow gui not working (regression since 3.6.3 Beta).
- Fixed incorrect dot position in numbered dialog options in right-to-left mode.
- Fixed default TextBoxKeyClaimStyle's behavior: it was meant to let many keys which do not represent a printable character to pass through.
- Fixed current dialog not stopping automatically if no more enabled options left (regression since previous RC).
- Fixed loading of 1-, 4- and 8-bit BMP files which width is not multiple of 4.
- Fixed Software renderer not clearing surface after the room viewport is moved around screen.
- Fixed Software renderer displaying room viewport incorrectly if it's moved partially offscreen.
- Fixed Debug(0) ("give all inventory") cheat reducing larger inventory item quantity to 1.
- Fixed formatting mistakes in some game log messages.
Compatibility:
- In pre-2.62 games let clicks interact with characters and objects under walk-behinds.
- In 3.5.0 - 3.6.2 games have ListBox item rows ignore border width (may result in +1 row).
- In pre-2.61 games always reset player character to normal view after speech.
- Implemented accidental return value for MoveCharacter(), because some old games actually test it (even though the function is declared as "void").
- Allow old games to "abuse" DynamicSprite.Crop() passing invalid crop coordinates.
- Don't update mouse properties in script during blocking actions in pre-2.7 games.
- Changed "attempt to write in readonly variable" from error back to warning, as many pre-3.x games seem to assign them by mistake.
- Fixed SetTextOverlay()'s coordinates in old high-res games.
- Fixed pathfinding not working running an old game in low-res mode but it's room is high-res.
- Fixed "upscale" mode not automatically applied whenever old game's native resolution is set as "default".
- Fixed gui control's border width becoming x4 as large instead of x2 in the old high-res games.
- Fixed slider handle visual position in pre-3.6.0 games.
- Fixed that script's name may not be mentioned when reporting an error or a warning when running pre-2.72 games.
- Fixed that certain 16-bit sprites, which were never intended to show up, appear as text window borders in pre-3.6.2 32-bit games. This happens when these sprites are assigned as borders by mistake.
- Fixed legacy pathfinder's regression, which can lead to chararacter not being to arrive at certain area (happens when running old games).
- Fixed potentially incorrect starting position of characters in rooms in pre-3.6.2 games, related to the use of "Character.PlaceOnWalkableArea".
- Fixed using old-style character name reference (
character[N].name) in string formatting. - Fixed backwards compatible "Lucas-Fan" font fixup not working (regression since previous RC).