AGS v2.7 Refresh 2 now released!

Started by Pumaman, Mon 02/05/2005 18:56:18

Previous topic - Next topic

Pumaman

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 dirty
BB82: .S3M music doesn't work
BB87: Change operator precedence so 5-2-3=0
BB90: Rename "No interaction" checkbox
BB92: MathSqrt and MathRaiseToPower functions
BB97: Plugins: QueueRunScriptFunction
BB98: Plugins: NotifySpriteUpdated
BB99: Plugins: SetSpriteAlphaBlended
BB103: GetOverlayX, GetOverlayY
BB104: Import/Export single GUI
BB124: Increase character blocking width
BB130: Keep script editor open while testing game
BB198: GUI background click pass -1 as button
BB199: Detect wrong number of parameters in function import
BB205: Check type of imported variables / function parameters
BB223: Warning if load old game in Beta version
BB234: Script modules / #include
BB245: Display specific character's inventory
BB248: Read-only GUI sliders
BB252: ProgressBar GUI control
BB268: MoveObjectBlocking
BB271: Initialize local variables to zero
BB273: ListBoxSetItemText
BB276: SetButtonTextColor
BB346: Centre text in message box
BB353: Words with spaces in parser word list
BB356: Display room info on "Areas" pane
BB368: SetCharacterTint
BB388: Determine if character is talking
BB397: Floating point variables
BB398: Make objects block the way
BB424: .IT music support
BB489: NewRoom inside script inside interaction crashes
BB490: Can't restore minimized script window
BB494: "Room" menu in editor
BB506: 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 WRONG

http://www.adventuregamestudio.co.uk/ags_27.zip?refresh2

ryanlandry

I'm at work right now, 3:30...but i can't wait to get home and try it out :|

i just recently became familiar enough with the scripting to be able to do almost anything i need to do on the first or 2nd attempt, and now it's gonna be as intuitive as takin' a leak!

merci, your program owns the world.

-RSL
A fly in the hand is worth?...

edmundito

Hooray!

Saturday School was/is written in all 2.7 goodness... hopefully it'll be out this week, just got those bugs to kill!
The Tween Module now supports AGS 3.6.0!

Pumaman

Oh, one thing I forgot to mention -- the DOS engine is no longer included.

When I had my hard drive crash I lost my DOS compiler installations, and I really can't be bothered to get it all downloaded and set up again unless anyone really needs the DOS build.

Pablo.too.lazy.to.login

Yes! Finally it's fully ready. Gotta start practicing the new script language. Thank you very much CJ for making yet another great version of AGS.

monkey0506

Aww....I really kind of wanted to release my game as a DOS build.  Since it is supposed to be in that retro-style...  Oh well, this is amazing.

Gilbert

Ah well... I think I'll stick to V2.62 then.

Good for me that I don't really need to learn the OO-scripting anymore.

Kinoko

#7
HOORAY! Thanks a million CJ ^_^ I've been waiting for this for a long time. I'm sure it'll be a long time before I get used to the changes but it's kind of exciting at the same time, like being able to experience trying AGS for the first time again. Ahh, like a second marriage...

Hopefully this (coupled with my being stuck at home sick) gives me the motivation to get to work on my game again.

EDIT: One thing I've noticed is that I no longer get the problem of the game not running the first time I 'test' it. I used to have to test once, ctrl+alt+del and then test again the first time after turning the computer on. Now it runs like normal all the time.

edmundito

Quote from: Kinoko on Tue 03/05/2005 03:10:41
HOORAY! Thanks a million CJ ^_^ I've been waiting for this for a long time. I'm sure it'll be a long time before I get used to the changes but it's kind of exciting at the same time, like being able to experience trying AGS for the first time again. Ahh, like a second marriage...
Or it's kind of like being married to someone for so long that you lose the spark in bed, so you have to get inventive and try a whole new way of "doing it", or have a second honeymoon. (Or maybe I've been watching too much Family Guy, including new episodes)

Quote from: Kinoko on Tue 03/05/2005 03:10:41
EDIT: One thing I've noticed is that I no longer get the problem of the game not running the first time I 'test' it. I used to have to test once, ctrl+alt+del and then test again the first time after turning the computer on. Now it runs like normal all the time.

I've become so afraid of AGS testing, that I'm even afraid to try this out on my compy. I hope it works once and for all! :)
The Tween Module now supports AGS 3.6.0!

Gilbert

Actually, all (or in a better word - most) of the test game problems were hopefully fixed in this version.
If there're still problems, report.

edmundito

Chris, it worked! I love you sooo much, Chris. I want to have your baby somehow.

This is too much. I'm just going to cry out of joy.  :'(
The Tween Module now supports AGS 3.6.0!

Kinoko

It's great, I got to the point once where I was too sick of the problem to work with AGS on my good computer. I'd rather use my crappy old P133 and at least be able to test normally. I got over that but I got into the habit of just testing and pretty much instantly ctrl+alt+deleting. Good thing I held off this time.

ags-thriller

When there is no DOS-Version, you don't need the Wavetable-Syntheser or Midi-Driver [Edit]write in the help[/EDIT], because it was only for the DOS-Edition and new User will be maybe a little confused (I prupose to kill the "compile as DOS-Game" - Entry in the las final version) Good work. Normally I HATE object-orientied working, but it seems like a nice entry to a real modern programming-language...

Ghost

Yeah, hooray! Now I have sucessfully re-written the complete GUI stuff from my game in 2.7 beta... and can start work on the game in 2.7. life really can be so great! Works all fine, too. where can I deliver that big bag of gold to, mr jones?  :=

RickJ

I have noticed some odd behaviour.  Near the end of long AGSEDIT sessions button and other graphics fail to be drawn.  This includes the view of the room's background images in Room->Settings tab.    AFter closing the editor and re-opening the problem disappears.   

magintz

Looking at this version of AGS I began to think back when I first joined AGS, making my first practice game in the old DOS engine and a little 2 room game where the only 2 puzzles where to get a key from under a door mat and then open the door with the key. Has anyone still got a copy of the old dos version it might be nice to look at.
When I was a little kid we had a sand box. It was a quicksand box. I was an only child... eventually.

Scummbuddy

#16
strazer has a page with a couple downloads of ol'

http://www.strazer.net/ags/tidbits.htm#history

I cant remember who has a page with all of them, though.
- Oh great, I'm stuck in colonial times, tentacles are taking over the world, and now the toilets backing up.
- No, I mean it's really STUCK. Like adventure-game stuck.
-Hoagie from DOTT

Pumaman

Quote from: RickJ on Thu 05/05/2005 20:18:44
I have noticed some odd behaviour. Near the end of long AGSEDIT sessions button and other graphics fail to be drawn. This includes the view of the room's background images in Room->Settings tab. AFter closing the editor and re-opening the problem disappears.

How long is a long session? Is this problem particular to this version, or has it always happened?
Sounds like some sort of resource leak, but it's hard to say.

When this problem happens, could you open Task Manager, enable the GDI Objects column and see what it says for agsedit?

RickJ

Quote
How long is a long session? Is this problem particular to this version, or has it always happened?
  • A long session would be perhaps 1 or 2 days without closing the editor. 

  • This seems to happen with the latest version, however, I have noticed on previous versions that ocassionally (perhaps during a long edit session) that file manager windows won't open until AGSEDIT is closed.   When AGSEDIT is closed all of my attempts at opening the file manager seemed to be queued up and so all these file manager windows start poping up. 

    Quote
    Sounds like some sort of resource leak, but it's hard to say.
    That would seem consistent with what I observed.   My AGS computer is a couple years old and only has something like 192 Mb of RAM.   

    Quote
    When this problem happens, could you open Task Manager, enable the GDI Objects column and see what it says for agsedit?
    I'm running WinME (Arrrrgh!!) on the AGS machine.  I don't think WinME task manager has that?  Unless you are talking about something other than than what comes up in responsde to the 3 finger salute??

Pumaman

Ok, I'll bear it in mind. Having to close the editor once a day isn't too serious a problem, so I won't treat it as a bug that should hold back this release.

QuoteI'm running WinME (Arrrrgh!!) on the AGS machine.  I don't think WinME task manager has that?  Unless you are talking about something other than than what comes up in responsde to the 3 finger salute??

Ah ok yeah, the Win9x task manager doesn't do this. Thanks anyway.

SMF spam blocked by CleanTalk