Well, it's been a good 6 months in development, but version 2.7 is now ready for your consumption! This is a major upgrade from 2.62, and in particular the scripting language has changed somewhat so it may well take a bit of getting used to.
If you've used previous AGS versions, please read this upgrading guide
to get you started with understanding the changes and answering any questions you may have.
Full changelog since 2.62:
* Added object-based functions for Characters, Objects, Hotspots, Regions, Inventory Items, GUIs, Overlays, Files and the mouse. This also indirectly adds some new functions, since there is now a way to do GetTransparency, GetBaseline, etc.
* Added named pointers to each character, eg. "cEgo", "cBman", etc. This allows you to do "cEgo.Walk" rather than "character[EGO].Walk"
* Added struct member function support, including static member functions.
* Added script array bounds checking.
* Added script module support, so that you don't have to cram everything into the global script. This also allows you to easily share code with other people by exporting the module.
* Added icons to script editor autocomplete.
* Added script Property support, to make the various interfaces more intuitive.
* Added support for optional parameters to text script.
* Added support for enums to script, including autocomplete support when calling a function that uses them.
* Added plugin API functions NotifySpriteUpdated, SetSpriteAlphaBlended, QueueGameScriptFunction, RegisterManagedObject, AddManagedObjectReader and RegisterUnserializedObject.
* Added simple inheritance support to structs, allowing you to create derived classes.
* Added support for protected member variables/functions and write-protected member variables.
* Added left-to-right operator precedence option.
* Added float data type, along with related conversion functions and trigonometric functions such as cos, sin and tan.
* Added "Enforce object-based scripting" option, which means that old-style commands (such as MoveCharacter) no longer work.
* Added sprite file indexing to speed up load time for games with a large number of sprites.
* Added Solid, BlockingWidth and BlockingHeight properties to Objects.
* Autocomplete now lists structure members.
* Added Crop Sprite Edges Symmetric option, to leave the central pivot point of the sprite unchanged.
* Added AbortGame function to allow script modules to perform checks on their parameters and easily give an error.
* Added #ifdef, #ifndef, #endif, #undef and #error preprocessor directives to the script language.
* Added DEBUG and STRICT pre-defined macros when in debug mode and strict scripting mode, respectively.
* Added script call stack when an error occurs, rather than just the current line number.
* Added script editor Preferences dialog, allowing you to control which automatic editing features are enabled.
* Added Character.BlockingWidth/BlockingHeight to allow you to customize the blocking size of a character.
* The "player" variable is now kept updated to reflect the current player character, so it's now perfectly safe to use player.Walk rather than character[GetPlayerCharacter()].Walk
* Added GUI OnClick handler to provide a more intuitive way to handle clicks on the GUI background.
* Added export/import single GUI function.
* Added ClipImage option to GUI buttons.
* Added option to select the transparency and palette settings for the Quick Import options.
* Improved the custom inventory window, so that it can display inventory for a specific character; and also it now has object-based methods to manipulate it, rather than messing around with variables like game.top_inv_item.
* Improved script type checking -- it will now catch far more errors if you try to do things like assign a string to an int, or pass character[EGO] to a function where EGO was wanted.
* Local variables are now automatically initialized to 0.
* Improved function calltips so that it highlights the current parameter.
* Added support for multi-word words in text parser.
* Removed various buttons on the Room Settings and GUI panes, and moved them to new Room and GUI menus, respectively.
* Script compiler now checks that the "import" declaration of variables in the script header matches the real definition in the global script.
* Added confirmation prompt in script editor if you choose "Discard and exit"; and added shortcut keys for the exit options.
* Increased max sprites to 30000.
* Increased max overlays from 10 to 20.
* Improved game startup speed and room loading speed.
* Changed MOD music player from JGMOD to DUMB, and consequently: Fixed some previously unsupported S3M's music files not playing. IT Impluse Tracker format mod files are now supported (music*.it)
* Removed limits on the total number of GUI controls you can have.
* If two room-changing functions are called in one script, an error now occurs (eg. using RestoreGame followed by NewRoom).
* Added the game name to the script editor title bar (useful if you're alt-tabbing between multiple games).
* Added ability to use a sprite as the inventory cursor hotspot dot.
* Dynamic sprites are now persisted in save games.
* Changed Test Game behaviour to hopefully fix problems with it hanging.
* SaveGameSlot/SaveGameDialog are now delayed-response functions, just like the RestoreGame ones. This means the game won't actually be saved until the script function finishes.
* Improved character 'skipping' sometimes at move speed 1.
* Increased max custom properties from 20 to 30.
* Changing an object's name now marks the room as dirty.
* RawDrawImage and MergeObject now draw alpha-blended images properly.
* Sprite Usage report now tells you which GUI a GUI button is on.
* Added \[ to Display/Say/etc, to enable you to display the [ character rather than it doing a line break.
* Significantly improved script compile speed.
* Ctrl+Space now allows you to pop up the autocomplete list at any time, like in Visual Studio.
* If Split Resources Files is checked, the sprites are now put into the .001 resource file to stop the EXE getting too big (since it could cause performance problems due to anti-virus software).
* Added editor warning message if you Save Room As to a filename that's not roomX.crm or intro.crm
* Renamed "No interaction" character checkbox to "Clickable" (and thus reversed its behaviour) to make it consistent with the script.
* Renamed GUI "Foreground color" property to "Border color" since that's all it does.
* Importing a new background with a different size to the old one now gives you an opportunity to cancel.
* Improved accuracy of GetMP3PosMillis and voice lip-sync with OGG sound files.
* goto-previous dialog command now stops the dialog if there is no previous topic, rather than aborting the game.
* StrCopy now works with copying into char buffers less than 200 bytes (USE WITH CARE, there is no buffer overrun protection)
* Enabled Quick Import sprite options in 256-colour games.
* Added an option to Auto-number Speech Lines to number Display() lines for the narrator.
* PlaySound now returns the channel number that the sound is playing on.
* Renamed intro.crm to room0.crm, to stop it causing confusion.
* Renamed the manual to "ags-help.chm" to make it more obvious what it is when accessing it externally from the editor.
* Changed shortcut key for Freehand tool in Room Areas to Ctrl+D to stop it conflicting with Edit Script (Ctrl+E).
* Changing a character's script name now forces a re-compile of the dialog scripts.
* DisplaySpeech no longer changes the mouse cursor if the cursor mode is already the Wait mode.
* Auto-number speech lines now tells you which room the error was in, if there is a compile error when re-compiling.
* Script names can now contain the digit 0-9 after the first character.
* Fixed interactions getting disconnected and other problems after deleting an object.
* Fixed function calltip not appearing if you used the ( key to autocomplete the function name.
* Fixed "unknown interaction" crash if the room changed within an interaction.
* Fixed crash which could happen when an inventory cursor was in use.
* Fixed erroneous type mismatch error sometimes when using char arrays as strings.
* Fixed animated GIF import if the transparent color had the same RGB value as one of the real colors.
* Fixed PlayMusicQueued skipping some tracks if crossfading was enabled.
* Fixed script editor not re-opening properly if you closed it while it was minimized.
* Fixed problems creating a template with a filename longer than 15 characters (now truncates to 15 instead).
* Fixed Assign To View not always flipping the first frame when you asked it to.
* Fixed editor crash sometimes if you had been editing a room with no code in its room script.
* Fixed editor crash if you deleted a sprite folder whilst editing its name.
* Fixed #defined names so that they are not replaced if preceded by a dot.
* Fixed script compiler allowing array.member with no index specified.
* Fixed text parser not allowing 1-letter words.
* Fixed SetCharacterSpeechView not allowing -1 to turn it off.
* Fixed crash importing GIF files with comments (thanks to "Hard Rock" for the fix).
* Fixed slider background image not being exported as part of GUI.
* Fixed Paste From Clipboard sprites getting given an alpha channel if you previously imported an alpha-channel sprite from a file.
* Fixed FollowCharacter not working on two NPC's if Hide Player Character was ticked in the room.
* Fixed free disk space crash on game startup on some Win9x systems.
* Fixed pixel-perfect click detection not always working properly with flipped sprites.
* Fixed compiler crash if a single array or struct was bigger than 32KB.
* Fixed line numbers being missing from a couple of compiler error messages.
* Fixed SetChannelVolume not working properly with the ambient sound channel.
* Fixed occasional animation glitch if the previous loop in the view had no frames.
* Fixed compile error if you had more than 500 functions in the global script.
* Fixed speech animation not playing if DisplayMessage was used with a room message set to display as character speech.
* Fixed RunAGSGame crashing if called from a custom script function.
* Fixed IsKeyPressed(13) not working with the numeric keypad Enter key.
* Fixed GUI editor not allowing you to set a label text longer than 25 characters.
* Fixed clickable z-order of GUI controls to be the same as the visual z-order.
* Fixed rare crash which could occur with MoveObject.
* Fixed GUI Editor allowing you to add controls to a text window GUI.
* Fixed MoveCharacter error messages if a character was following another character and neither were in the current room.
* Fixed GetTime returning the wrong year.
The following items from the Tracker are now fixed/implemented:BB78: Object name change doesn't mark room dirtyBB82: .S3M music doesn't workBB87: Change operator precedence so 5-2-3=0BB90: Rename "No interaction" checkboxBB92: MathSqrt and MathRaiseToPower functionsBB97: Plugins: QueueRunScriptFunctionBB98: Plugins: NotifySpriteUpdatedBB99: Plugins: SetSpriteAlphaBlendedBB103: GetOverlayX, GetOverlayYBB104: Import/Export single GUIBB124: Increase character blocking widthBB130: Keep script editor open while testing gameBB198: GUI background click pass -1 as buttonBB199: Detect wrong number of parameters in function importBB205: Check type of imported variables / function parametersBB223: Warning if load old game in Beta versionBB234: Script modules / #includeBB245: Display specific character's inventoryBB248: Read-only GUI slidersBB252: ProgressBar GUI controlBB268: MoveObjectBlockingBB271: Initialize local variables to zeroBB273: ListBoxSetItemTextBB276: SetButtonTextColorBB346: Centre text in message boxBB353: Words with spaces in parser word listBB356: Display room info on "Areas" paneBB368: SetCharacterTintBB388: Determine if character is talkingBB397: Floating point variablesBB398: Make objects block the wayBB424: .IT music supportBB489: NewRoom inside script inside interaction crashesBB490: Can't restore minimized script windowBB494: "Room" menu in editorBB506: Mouse.ChangeModeView
Changes from Refresh to Refresh 2:
* Fixed GUI Button Click Action option not being changeable in the editor.
* Fixed auto-number speech not working with character.Think commands.
* Fixed the Player Enters Screen After Fadein running before fadein in the new room if ChangeRoom was called from Player Enters Screen Before Fadein.
Changes from 2.7 to 2.7 Refresh:
* Fixed crash using RestoreGameSlot from script module repeatedly_execute.
* Fixed Mouse Moves Over Hotspot not being run if the mouse was still but the room scrolled around it.
* Fixed translation files to be read from the datadir in acsetup.cfg, if specified.
* Fixed auto-number speech to not speechify global messages 983-999, since they are used for built-in dialogs.
Changes since 2.7 Final:
* Fixed crash using RestoreGameSlot from within a GUI control handler function.
* Fixed room loading errors that could occur after playing for a while.
* Fixed screen flickering briefly between games in RunAGSGame.
* Fixed inventory hotspot dot not working properly on 32-bit alpha-channel inventory item images.
* Auto-number speech lines now does DisplayAt and DisplayThought.MAKE A BACKUP OF YOUR GAME BEFORE UPGRADING, JUST IN CASE ANYTHING GOES WRONGhttp://www.bigbluecup.com/ags_27.zip?refresh2