AGS 2.71 *UPDATE* now released!

Started by Pumaman, Sun 18/12/2005 13:04:22

Previous topic - Next topic

Pumaman

Well, it's been a good 6 months or so, but version 2.71 is finally here! But was it worth the wait? Well, here's the changelog.

Please read this Upgrading to 2.71 page to explain the String changes.

Changes in 2.71 UPDATE:
* Fixed CDAudio not being able to return values.
* Fixed type mismatch error attempting to use new-style global strings.
* Updated Christmas easter egg to allow you to continue and load the editor if you really want.

Full changelog from 2.7 to 2.71:
* Added friendly string support, and modified various built-in functions to return a String rather than requiring a buffer.
* Added option to compress the sprite file to reduce disk usage.
* Added editor sprite caching, to improve performance and reduce memory usage of the editor with large games.
* Increased max speech files per game to 10000.
* Added == and != operator support for strings.
* Added support for having pointer variables in structs.
* Added Clickable property to GUI controls to allow you to disable a control without affecting its appearance.
* Added new Dynamic Sprite features: CreateFromExistingSprite, CreateFromBackground, Crop, Resize, Rotate, Flip and SaveToFile functions; and ColorDepth, Width and Height properties.
* Added Game.GetMODPattern, ListBox.InsertItemAt and Maths.ArcTan2 script functions.
* Added Slider.Min and Slider.Max to allow the script to access these slider properties.
* Added Object.IgnoreScaling and Character.Scaling properties; renamed Character.IgnoreScaling to ManualScaling.
* Added const string support to prevent accidentally passing the parameters the wrong way round to functions like StrCopy.
* Added option to PlayFlic not to clear the screen before starting playback.
* Added "Adjust volume with scaling" character option and equivalent Character.ScaleVolume property.
* Editor now uses "Speech" and "Music" sub-folders to store speech and music files in to reduce the clutter in the main game folder.
* Added "New Run Script Action" to the right-click menu in the interaction editor, to allow you to quickly create a Run Script interaction without having to go through the interaction dialog.
* Added "noloopcheck" keyword to allow you to bypass the script loop checks.
* Added GP_ISFRAMEFLIPPED option to GetGameParameter.
* Editor now forces all background imports to the game's colour depth.
* Game now attempts to mute audio when alt+tabbing away to another application.
* Implemented lazy evaluation for && and || operators.
* Improved script compiler speed.
* Arrays and structs are now officially supported, and are documented in the manual.
* Ambient sound volume is now dropped along with the music volume while speech is being played.
* Added menu option to rebuild only the music or only the speech vox, since in large games rebuilding both could take a long time.
* If Sound is disabled in the game Setup, then it no longer plays in PlayVideo either.
* Insert and Delete keys now have allocated keycodes and are officially supported.
* Narrator speech now closes the Display() window when the voice finishes, if play.skip_display is set to auto-remove after time.
* Compiler now does type checking on return values from custom functions.
* Display command now obeys the SetVoiceMode setting.
* Pamela lip-sync now allows multiple phenomes per frame.
* "void" is now properly supported as a function return type.
* PgDn, PgUp, Home and End are now mapped to the ASCII codes of their equivalents on the numeric keypad, rather than duplicating arrow keys.
* Underscores can now be used in GUI and view names, and invalid names pasted into the box are now rejected.
* The hi-color Palette pane now displays the current colour number in a text box so that it can be copy & pasted easily, and allows you to type in a colour number and find out the RGB.
* Renamed the setup.exe in the AGS distribution to setup.dat to prevent unzip programs from trying to "install" it.
* Renamed "Player Enters Screen" events to "Player Enters Room" to use consistent terminology.
* If a dynamic sprite attached to an object is deleted, the engineÃ,  now prints an error message rather than crashing.
* Setting game.close_mouth_end_speech_time to 0 now continues sierra- style speech animation indefinately, like it does with lucasarts speech.
* Removed "Target DOS" option from the menu, since the DOS engine is no longer available.
* Fixed compiler bug allowing enums to be redefined.
* Fixed compiler crash when declaring a large struct.
* Fixed engine error if Turn Before Walking was enabled and a character only had left/right loops.
* Fixed walk-to point getting randomly moved if you alt+tabbed back into AGS from another application.
* Fixed the Import Dumped Text option truncating dialog options to 70 characters.
* Fixed memory leak in GUI.SetSize/Width/Height methods.
* Fixed volume jump if a track was fading out and you changed rooms to a room with a louder volume setting.
* Fixed Overlay.X/Y properties returning wrong value for SayBackground overlays.
* Fixed editor crash when deleting sprite folders.
* Fixed editor crash when selecting a sprite for a GUI control.
* Fixed editor crash on Characters pane if the character's normal view had no frames in loop 0.
* Fixed crash rather than error message if script exceeded stack limit.
* Fixed Single GUI Import not updating GUI images properly, and allowing duplicate GUI control names to be imported.
* Fixed editor crash if you manually removed a #sectionend and then tried to edit that script function.
* Fixed colours in GUI editor showing up wrong in 32-bit colour games.
* Fixed SetCharacterIdle skipping the current frame if called while the character was moving or animating.
* Fixed + having a higher precedence than - and thus 5 - 3 + 2 giving 0 rather than 4.
* Fixed only one edge interaction being run if the player walked off two overlapping room edges.
* Fixed GIF import crash with some gif images.
* Fixed "out of memory" crash in game if you accidentally used a full-screen image as the talking view for sierra-style speech.
* Fixed CyclePalette not updating the screen when cycling backwards.
* Fixed compiler allowing built-in types to be used in struct definitions.
* Fixed Auto-Number Speech Lines starting from NARR0 rather than NARR1 for the narrator.
* Fixed GUI control event handler function names being incorrectly truncated.
* Fixed compiler to not allow a struct to be a member of itself.
* Fixed compiler not giving an error if you forgot a semicolon after an object method call.
* Fixed editor crash if you typed a string longer than 200 characters into a text property.
* Fixed character disappearing if it was tinted/lit and used an 8-bit sprite in a hi-color game.
* Fixed music not resuming after PlayVideo if crossfading was enabled.
* Fixed the player character's PreviousRoom property starting off as the first room number, rather than -1 as it said in the manual.
* Fixed static methods in plugin headers not being picked up by autocomplete.
* Fixed IsKeyPressed not working with backspace (ASCII code 8 ).
* Fixed voice speech not being played if a SkipUntilCharacterStops command was in effect when the speech was displayed.
* Fixed Restore Game occasionally corrupting the managed object pool.
* Fixed some usability issues in the Import Sprite dialog, where moving the mouse off the side of the image while right-dragging would cause the cursor to jump around.
* Fixed WAV music files not being picked up from MUSIC.VOX
* Fixed region light level picking up tint amount if you switched it from tint to light and then selected a different region.
* Fixed Out of Memory crash if you had a character off the bottom of the screen and a walkable area with continuous scaling touched the bottom of the screen.

MAKE A BACKUP COPY OF YOUR GAME BEFORE UPGRADING, JUST IN CASE ANYTHING GOES WRONG

http://www.adventuregamestudio.co.uk/ags_271.zip?update

(Note: This version has the same file name as the previous version, but the latest version has editor version 2.71.631).

Gord10

Great :D  Downloading right now.
Games are art!
My horror game, Self

monkey0506

#2
I'm glad that AGS 2.71 is official now.  The String type is one of my favorite new features, and it's so much easier than the old-style strings.  I'm off to download the new AGS!

Wretched

Just testing 2.71 on one of my games and get the following odd crash, this happened before and after I rebuilt all rooms.

---------------------------
Adventure Game Studio
---------------------------
An internal error has occured. Please note down the following information.
If the problem persists, contact Chris Jones.
(ACI version 2.70.861)

Error: run_text_script1: error -6 running function 'room_a':
Error: invalid instruction 70 found in code stream
in Global script (line 32)
from Room script (line 13)


---------------------------
OK   
---------------------------

and the innocuous offending line in global script

29  //Real Room
30  function GS_RealRoom(int RoomRef)
31  {
32    if (RoomRef==32 || //Babe Magazine
33        RoomRef==44)   //Love letter
34    {
35      return(false);
36    }
37       
38    return(true);
39  }

strazer

If you really need a line break in there, try

32    if (RoomRef==32 || /* Babe magazine */
33        RoomRef==44)   //Love letter

Otherwise I'd suggest something like

32    if (RoomRef==32 /* Babe magazine */ || RoomRef==44 /* Love letter */)
33    {

Candle

So the // line breaks are broken? or were removed in this release?

Gilbert

I think the problem was that the comment broke halfway through an expression, but if that worked previously I couldn't understand why it won't work anymore.

Pumaman

#7
Quote(ACI version 2.70.861)

Error: run_text_script1: error -6 running function 'room_a':
Error: invalid instruction 70 found in code stream
in Global script (line 32)
from Room script (line 13)

You've got an old version of the engine. Make sure there's no ACWIN.EXE lurking in your game's folder.
If there isn't, make sure you extracted the full 2.71 zip file to a new folder.

QuoteWhen does the main site get updated with this, btw?

Once it's had a few days for people to find any errors (there's always something that crops up when the masses start to use a new official version), and also to give some time for the linux & mac engines to catch up if they need to.

Wretched

Ok thanks, I assumed that since CTRL_T built the exe file it would play the game using the exe thus bypassing the old acwin.exe I had in the root dir.

Anyway all works as before except for a couple of times, when after a cutscene the cursor 'stuck' in the Wait mode when before it would go back to one of the standard cursor modes. If you need more info I can track this down to the scripts.

Rui 'Trovatore' Pires

#9
InputBox still seems to accept only "string"s.

EDIT - And this seems not to work anymore - @GIx@. The GlobalInt tokens.

I'm only mentioning these things because they seem to be leftovers which aren0t much used anymore and as such may have been looked over in the engine's updates.
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

bullfrog

When I set a global string,

QuoteGame.GlobalStrings[1] = "blablabla";

I get a compling error:
QuoteType mismatch: cannot convert 'String*' to '____dummy__sym0*'

SetGlobalString
and
String = Game.GlobalStrings

work fine...



simulacra


Dusk

I have converted all my SOTE scripts from AGS 2.62 to 2.71, but now I get this exception when I launch the game:

---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occured in ACWIN.EXE at EIP = 0x00447F39 ; program pointer is -42, ACI version 2.71.894, gtags (426,164)

The error appeared at the first compiling with the global script totally cleaned up from non-object oriented scripting. But now I get the same exception if I compile unchecking the "Enforce object-based-scripting", too.
What could have gone wrong?
After that I also converted the room scripts to the new oo-syntax and did a full room rebuild, but it didn't help.
Note: I'm still using old style strings (next step programmed in the script conversion, but now I'd like to solve this problem first).

I did something very stupid, I feel it. Help! :)

bye, thanks

Pumaman

Quote from: Wretched on Mon 19/12/2005 18:46:03
Anyway all works as before except for a couple of times, when after a cutscene the cursor 'stuck' in the Wait mode when before it would go back to one of the standard cursor modes. If you need more info I can track this down to the scripts.

Can you provide more information? Is this still a problem?

QuoteInputBox still seems to accept only "string"s.

Did you use Game.InputBox?

QuoteWhen I set a global string,

Game.GlobalStrings[1] = "blablabla";

I get a compling error:

Type mismatch: cannot convert 'String*' to '____dummy__sym0*'

Hmm thanks for pointing that out, I'll look into it.

QuoteI have converted all my SOTE scripts from AGS 2.62 to 2.71, but now I get this exception when I launch the game:

Hmm, what is the contents of your game_start function? This error could occur if you try to do anything room-specific such as manipulating objects within the game_start function (when no room is loaded).

Pumaman

Ok, since that Type Mismatch bug was fairly serious, I've posted an updated version that fixes it, and the CDAudio problem.

Hopefully this should finally be the final version.

Traveler

You shouldn't have fixed the Christmas easter egg, it was a fun (and unique) "feature" :)

Pumaman

Hehe yes, I was in two minds about whether to change it.

But really, the first year it was funny, the second year it was kinda funny, and this year it was "oh no, not more people moaning about that" ;)

So the egg is still there, it's just that it will now allow you to load the editor anyway :)

Rui 'Trovatore' Pires

QuoteDid you use Game.InputBox?

Whoops. I hadn't noticed that one. Gonna have to pay extra attention now... functions I used to know now have another name but still appear in auto-complete.
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

monkey0506

Hmm...enforcing OO-scripting removes old functions like GUIOn & GUIOff...but enforcing new style strings doesn't remove functions like InputBox (although you can't use it, it is still part of the game...).

Dusk

Quote
QuoteI have converted all my SOTE scripts from AGS 2.62 to 2.71, but now I get this exception when I launch the game:

Hmm, what is the contents of your game_start function? This error could occur if you try to do anything room-specific such as manipulating objects within the game_start function (when no room is loaded).

Thankyou CJ, solved that. :)
I think that the problem (in a function called from game_start as you suggested) originated changing a brutal 2.62 character[who].room = ROOM_CONSTANT with a character[who].ChangeRoom(..)  (due to the fact that Character.Room is readonly).

Thanks again,
D.

SMF spam blocked by CleanTalk