AGS 3.1.0 Final - World's Heaviest Bridegroom Edition

Started by Pumaman, Sat 05/07/2008 23:21:19

Previous topic - Next topic

Pumaman

So the world's heaviest man has got married, after being wheeled to the wedding on the bed that he can't get out of. If we all continue making games, one day we can hope to emulate his success.

Changes in 3.1 Final:
* Fixed problem where if you closed a window and chose not to save changes, when you opened the window again the changes were still there
* Fixed script changes being lost if you opened a room script, made some changes, didn't save them, then opened the room itself, then created an event handler
* Fixed PlayVideo restarting the music after the video finished, even if it was set to play game music
* Fixed the debug console being drawn behind characters and objects
* Fixed changes to blink interval not always being applied immediately
* Fixed crash in Character.Say if the character's talking view had been set to an invalid view number
* Fixed duplicate entries in autocomplete if you set an enum value to equal another enum value
* Fixed potential issue compiling game after you opened and then cancelled the New Room dialog


Changes in 3.1 RC 2:
* Added Preferences option for whether the help window should be kept on top of the editor window or not
* Added Character.SpeakingFrame property to enable script to access the state of the Sierra-style speech animation
* Incorporated Tip of the Day suggestions
* Output window is now cleared when a new compile starts
* RunAGSGame now shows an error if you try and use it while running with the debugger, since it doesn't work in this situation
* Fixed Characters pane chopping off bottom of view preview when run at 120 DPI
* Fixed ListBox.RowCount always returning 0 until the GUI had been drawn for the first time
* Fixed hotspots/walkable areas screwing up if a new background was imported with the same size but different resolution to the old one

Changes in 3.1 RC 1:
* Room objects editor now draws alpha-channel sprites correctly
* Added separate Replace menu option to go straight to the Replace dialog
* Added recent searches list and Case Sensitive option to the Find dialog
* Added Tip of the Day area to the Start Page
* Updated Start Page to reflect AGS 3.1 changes
* Updated to v1.7.2 of Verb Coin template (thanks Electroshokker!)
* Editor now gives error if speech file number > 9999 rather than leading to in-game File Not Found errors
* Replaced references to "contact CJ" in error messages with "post on AGS Forums"
* Re-worded loopcheck error to mention checking the call stack to find the problem
* Fixed some music skipping problems when using ShakeScreen and during room transitions
* Fixed crash restoring save game if there was an active dynamic drawing surface created by CreateCopy
* Fixed sound numbers over 999 not playing
* Fixed Mouse.DisableMode crashing if cursor mode 4 (UseInv) was set as a Standard Mode
* Fixed Help window sometimes not allowing you to switch back to the editor easily.
* Fixed editor crash if you tried to run two copies of it simultaneously
* Fixed autocomplete treating "else" as a variable declaration
* Fixed Display() not working if the game had no GUIs

Changes in 3.1 beta 9:
* Added support for custom dialog options rendering
* Improved autocomplete to work better when adding code to existing functions
* Rewrote debugger to use a different method of communicating with the engine (Named Pipes instead of Files) which should hopefully resolve some stability issues some people have been having with it
* GUI Text Box now allows the user to type in extended chars like éíñ when the textbox is using a TTF font
* Output window is now automatically hidden when the call stack window is shown
* Fixed call stack window to be docked under the script pane rather than being drawn on top of it
* Moved Dialog functions into separate section of help file
* Fixed D3D driver smoothing all sprites, not just scaled ones, when "Smooth scaled sprites" was selected
* Fixed black outlines of walk-behind areas when using D3D anti-aliased filter
* Fixed sprite import colours messing up if there were index-0 pixels on the image but index 0 was not being imported as the transparent colour
* Fixed potential crash in D3D driver when drawing room objects

Changes in 3.1 beta 8:
* Added graphics filters when using D3D driver; this allows low-res games to be played reasonably in a window using the D3D driver
* Added 4x Nearest Neighbour filter to allow 320x200 games to easily be run on widescreen monitors at 1280x800
* Editor now shows script call stack when you break in the debugger / when an error occurs
* Improved import of 2.72 games to ensure that unhandled_event is called with Use Inventory interactions
* Changed error message when unable to initialise graphics mode to say the real resolution rather than game resolution when using a graphics filter
* Fixed object baselines messing up if you had a high-res game but not using native co-ordinates
* Fixed D3D causing stretched pixels if it ran a 320x200 game at 640x400
* Fixed error starting up editor if you closed it while minimized
* Fixed default and empty game templates having plugin references in beta 7

Changes in 3.1 beta 7:
* Added String.Replace, String.StartsWith, String.EndsWith, TextBox.TextColor, Parser.FindWordID
* Added new file format for exported characters to enable characters with more than 20 frames in a loop or 16 loops in a view to be exported; this also fixes some character settings not being preserved in the old file format.
* Removed obsolete InventoryScreen usage from the Default & Empty Game templates
* Changed Default and Empty Game templates to 16-bit colour by default
* Fixed Mask Import From File rejecting some valid masks, and stretching others
* Fixed translations not working on script lines that had embedded speech marks or backslashes

Changes in 3.1 beta 6:
* Added Character.HasInventory function as a simpler, more user-friendly alternative to InventoryQuantity
* DrawingSurface.UseHighResCoordinates is now initially defaulted to the game's Native Co-ordinates setting
* Fixed editor not showing hotspot walk-to points correctly
* Fixed editor creating GUI controls in the wrong place
* Fixed GUI.Y property rejecting valid Y co-ordinates with native co-ordinates
* Fixed solid characters and objects not blocking on right side of screen with native coordinates
* Fixed another possible cause of debugger errors
* Fixed dialog options text window edges with transparent parts not drawing correctly with D3D driver
* Fixed error trying to save a game to a network share
* Fixed GUI editor to not draw the background colour outside the actual GUI size

Changes in 3.1 beta 5:
* Added Dialog.ID, Slider.HandleGraphic, Slider.HandleOffset, Slider.BackgroundGraphic properties
* Added new GUI Visibility option to have a normal GUI but initially switched off.
* Added ability to set initial GUI Transparency in the editor.
* Added Preferences option to allow you to do Exact Palette background imports in 8-bit games, like you could in AGS 2.x
* Added option for AGS Editor to pop up a message every X days reminding you to back up your game
* Changed winsetup so that it doesn't pop up the Administrator prompt on Vista.
* Removed room height limit of 1400 pixels.
* When clicking the "..." button to go to an event script, AGS will now zoom to the line after the { rather than the "function" line itself
* Formally obsoleted the InventoryScreen command, since it didn't work with D3D driver anyway. It will no longer compile if Enforce Object-based Scripting is enabled.

Changes in 3.1 beta 4:
* Fixed the following problems when using hi-res co-ordinates:
*- GetRegionAt (and thus region events);
*- Character.PlaceOnWalkableArea (and thus Ctrl+W debug key);
*- Character.WalkStraight (and thus arrow keys);
*- Ctrl+A debug option to see walkable areas
*- dialog options text window GUI being half width
*- drawing room areas in editor when a low-res room was in a hi-res game
* Fixed GUI Inv Window ItemWidth/ItemHeight not being doubled up when importing pre-3.1 game
* Fixed problem with Mouse.SaveCursorUntilItLeaves if the original mode was now disabled when it tried to restore it
* Yet another fix to try and sort out debugger crashing on some PC's

Changes in 3.1 beta 3a:
* Fixed problem with GetLocationName/GetLocationType in backwards compatible co-ordinates mode
* Fixed problem with GUI sizes when using the 3.1 engine to run a pre-3.1 EXE.
* Fixed autocomplete popping up when it shouldn't do if you pressed space after typing a member property/function

Changes in 3.1 beta 3:

* Added 1024x768 resolution support.
* Added pop-up calltip when hovering the mouse over a function/property in the script.
* When the engine aborts with an error, the editor will now automatically zoom to the line in the script where the error occurred
* Finished adding calltip help texts for built-in script commands.
* "Copy co-ordinates to clipboard" option now automatically adjusts them for scripting if Use Low Res Coordinates is enabled
* Added manual page "Upgrading to AGS 3.1" explaining hi-res coordinates
* Added support for /// help text with struct properties
* Added Character.HasExplicitTint property
* Added editor plugin API IScriptEditorControl methods: SelectionStart, SelectionEnd, SelectedText, CursorPosition, GetLineNumberForPosition, GetTextForLine, GetTypeNameAtCursor
* Added warning message when you use the Import New Background option in a room, to help newbies who are using it by accident instead of the Change button.
* Added warning when you change the game resolution setting because of the impact of co-ordinates changing
* Room right-click "Edit this room" option is now always available, even for the currnetly loaded room
* Changed New Game and Empty Game templates to enable hi-res coordinates by default
* Fixed issue with StopMoving and PlaceOnWalkableArea when using native hi-res co-ordinates
* Fixed screenshot capture not working properly when D3D driver running a 320x200 game at 640x400

Changes in 3.1 beta 2a:
* Fixed 320x240/640x480 games being initialized at wrong resolution
* Fixed a 320x200/320x240 text display problem

Changes in 3.1 beta 2:
* Added option to use native hi-res co-ordinates.
* D3D driver now automatically tries 640x400 if your monitor doesn't support 320x200, like the DX5 driver already did
* Removed Setup option to use the "wrong" resolution.
* Added Game.UseNativeCoordinates property.
* Added some more calltip help texts.
* Added feature for editor to send anonymous system information to AGS website (see manual page "Anonymous usage information" for info)
* Maybe fixed an issue where the calltip got a box character on the end when help text was present.
* Fixed beta 1 bug where characters sometimes wouldn't move.

Changes in beta 1:

* Added option to continue running game loops while dialog options are displayed
* Added "Go to sprite" context menu option to script editor when right-clicking on a number
* Added Game.ChangeTranslation and Character.Move script functions.
* Added support for calltip help text if you put a comment starting with /// on the line before the import declaration. I've added this text for the String, DrawingSurface, Character and Game methods, and would appreciate your feedback as to whether it's useful enough to bother going through and doing it for the rest of the script commands.
* Moved the inventory hotspot marker settings from the inventory panes to the General Settings area since it makes more sense there and should reduce confusion
* Editor now prompts you if you modify a script file in an external application while it is open in the editor
* Removed 30 character limit on hotspot descriptions
* On Windows XP and earlier, AGS will now create a "My Saved Games" folder in My Documents and then create individual game folders underneath, to avoid clutter
* Renamed String.Contains to String.IndexOf to reduce confusion with other languages such as Java and C#. String.Contains will continue to work as well for the foreseeable future
* Fixed alpha-transparent dynamic sprites losing their alpha channel when you restored a save game
* Fixed object image not being refreshed properly if it had a dynamic sprite which you deleted at the same time as making the object invisible

THIS IS A BETA VERSION. USE AT YOUR OWN RISK. ALWAYS KEEP A BACKUP COPY OF YOUR GAME BEFORE TRYING A BETA VERSION

Download here:
http://www.adventuregamestudio.co.uk/AGS-3.1-Final.exe

GarageGothic

Quote from: Pumaman on Sat 05/07/2008 23:21:19* Added option to continue running game loops while dialog options are displayed
* Added "Go to sprite" context menu option to script editor when right-clicking on a number
* Added Game.ChangeTranslation and Character.Move script functions.

All excellent features. ChangeTranslation should be particularly helpful so user don't have to mess with winsetup.exe.

Quote* Added support for calltip help text if you put a comment starting with /// on the line before the import declaration. I've added this text for the String, DrawingSurface, Character and Game methods, and would appreciate your feedback as to whether it's useful enough to bother going through and doing it for the rest of the script commands.

Have to try it in action before I can comment, but it sounds like a useful feature.

Quote* Removed 30 character limit on hotspot descriptions

Awesome, I ran into that limit recently.

Quote* Renamed String.Contains to String.IndexOf to reduce confusion with other languages such as Java and C#. String.Contains will continue to work as well for the foreseeable future

I understand your reasoning, but I must admit that I will continue to use String.Contains. It seems a much more natural name for the function and is instantly recognizable.

Quote* Fixed object image not being refreshed properly if it had a dynamic sprite which you deleted at the same time as making the object invisible

Thanks! That must be the quickest fix ever!  :D

Lt. Smash

#2
Quote from: Pumaman on Sat 05/07/2008 23:21:19
* Added support for calltip help text if you put a comment starting with /// on the line before the import declaration. I've added this text for the String, DrawingSurface, Character and Game methods, and would appreciate your feedback as to whether it's useful enough to bother going through and doing it for the rest of the script commands.
This is a very nice and useable feature. But it would be even better if you seperate the text from the fill-in advice or at least highlight it. Look for example at the freeware java eclipse platform.
Some other things that would be nice for the script-editor:
- Ability to drag and drop selected code.
- If the autocomplete dialog opens for enums etc. don't close the calltip dialog.
- If the cursor stands after a '}' and I hit enter, the '}' shouldn't move back one tab.
- Ability to write: surface.DrawingColor=RGB(12,33,234);(if this is possible?) instead of using the colours tab and searching for a color number.
- Ability to wheter choose if the editor should automatically close curly braces.
so if the player writes { and hits enter, two new lines will be added. One empty with the active cursor in it and one after with a closed bracket.

The other improvements are very helpful and I hope that some more of the AGS wishlist (like ability to change hs und obj descriptions via code) will be added.

TwinMoon

Quote from: Pumaman on Sat 05/07/2008 23:21:19* Added option to continue running game loops while dialog options are displayed

Wow. Great stuff, Chris!

Dave Gilbert

Hallo all!  I'm having a little issue with my switching characters code.  The last version of AGS I was using was 3.01, and this code worked fine.  Now that I've upgraded to the 3.03 beta, it's acting a little funny.

You start the game as the character "Rosa", and it works fine.  But when you switch to Joey, he doesn't move at all.  He turns and faces the correct direction, but he doesn't walk to the spot you clicked on.  If you switch back to Rosa she walks normally.

Does anyone know why such a thing would happen? I've posted the code below, which worked just fine in 3.01 if anyone really wants to take a look at it.

Thanks!

Quote
function CharSwitch()
{
  Character *otherchar;
  Character *curchar; 

  int newvp=1;
  int oldvp;
  if (player.ID == ROSA)
  {
    curchar = cRosa;
    otherchar = cJoey;
   }
   else
   {
     curchar = cJoey;
     otherchar = cRosa;
   }
     curchar.StopMoving();
      otherchar.StopMoving();
   
    if (otherchar.x > curchar.x)
    {
   
      while (GetViewportX() < otherchar.x-160  && newvp != oldvp)
         {
           oldvp = GetViewportX();
            SetViewport(GetViewportX() +6,  GetViewportY() );
            newvp = GetViewportX();
            Wait(1);
            ReleaseViewport();
            
         }
    }

    if (otherchar.x < curchar.x)
    {

      while (GetViewportX() > otherchar.x-160  && newvp != oldvp)
         {
           oldvp = GetViewportX();
            SetViewport(GetViewportX() -6,  GetViewportY() );
            newvp = GetViewportX();
            Wait(1);
            ReleaseViewport();

         }
    }

   
   
if (GetGlobalInt(25)==0)
{
  if (player.ID==ROSA)
  {
    Mouse.ChangeModeView(eModeWait, 49);
         mouse.ChangeModeGraphic(mouse.Mode, 619);   
      cJoey.SetAsPlayer();
    cRosa.StopMoving();
    cJoey.StopMoving();
      cJoey.FollowCharacter(null);
      cJoey.Clickable = false;
      cRosa.Clickable=true;
      btn_notes.Enabled=false;
      btn_change_joey.NormalGraphic=26;
      btn_change_rosa.NormalGraphic=49;

      if (GetGlobalInt(70)==0)
      {
        Wait(10);
         Multi.SRespond("turswitch>>>>");
         int x=Multi.response; 
         if (x==1)
            MyDisplay("TUTORIAL: [[Excellent! We're now controlling Joey.[[(You can also switch characters by pressing the \"TAB\" key on your keyboard))[[Let's see if Joey has better luck with the door.  LEFT-CLICK on the door to make Joey interact with it.");
            SetGlobalInt(73, 1);
      }
      
   }
   else
   {
      Mouse.ChangeModeView(eModeWait, 48);
         mouse.ChangeModeGraphic(mouse.Mode, 259);      
       cRosa.SetAsPlayer();
      cRosa.StopMoving();
     cJoey.StopMoving();
      cRosa.Clickable=false;
      cJoey.Clickable=true;
      gMaingui.Transparency=0;
      btn_notes.Enabled=true;
      btn_change_joey.NormalGraphic=25;
      btn_change_rosa.NormalGraphic=50;
      
      if (cRosa.InventoryQuantity[ipaperclip.ID] >0 && GetGlobalInt(70)==0)
      {
         Multi.SRespond("tutrosainv1>>>>");
         int x=Multi.response; 
         if (x==1)
            {
               Wait(10);             
               MyDisplay("TUTORIAL[[You're now controlling Rosangela again, even if you can't see her.");
              MyDisplay("TUTORIAL[[Since the main interface is open, we can see her inventory, and look! There's the paperclip!  Now let's try using it on that door.");
              MyDisplay("TUTORIAL[[To open the door, LEFT-CLICK the paperclip.  Then, move the cursor to the door and LEFT-CLICK again.");

            }
            
      }
      
   }
}   
}

Pumaman

3.0.3 is a beta so it's possible that there may be problems, in particular the character movement code was changed to support the new Character.Move command.

Would it be possible to upload something that would demonstrate the problem?

Also, I'll merge this into the 3.0.3 beta thread.

Dave Gilbert

Thanks CJ!  I'm uploading a one-room example of the problem.  You hit the tab button to switch between the characters.  You start off as Rosa and she can walk around the room.  If you switch over to Joey, he won't walk but he'll turn in the correct direction.

Link:
http://www.davelgil.com/boe/conv/conv_switch_chars.zip

GarageGothic

Quote from: Lt. Smash on Sun 06/07/2008 11:54:25- Ability to write: surface.DrawingColor=RGB(12,33,234);(if this is possible?) instead of using the colours tab and searching for a color number.

You could try:
Code: ags
surface.DrawingColor = Game.GetColorFromRGB(12,33,234);

Lt. Smash

Quote from: GarageGothic on Sun 06/07/2008 16:26:30
Quote from: Lt. Smash on Sun 06/07/2008 11:54:25- Ability to write: surface.DrawingColor=RGB(12,33,234);(if this is possible?) instead of using the colours tab and searching for a color number.

You could try:
Code: ags
surface.DrawingColor = Game.GetColorFromRGB(12,33,234);

Oh. Ok, then this is already implemented.

Pumaman

Quote- Ability to drag and drop selected code.

It should work within the same window, but it seems that it only works once you've started editing the code -- if you just open the window and try to drag it won't work. I'll look into that.

Quote- If the autocomplete dialog opens for enums etc. don't close the calltip dialog.

This seems to be a limitation of the text editor component that AGS uses, I don't know if I can change this.

Quote- If the cursor stands after a '}' and I hit enter, the '}' shouldn't move back one tab.

Yeah I've been meaning to change the way this works, it's not very user-friendly.

Quote- Ability to wheter choose if the editor should automatically close curly braces.
so if the player writes { and hits enter, two new lines will be added. One empty with the active cursor in it and one after with a closed bracket.

That's a possibility for a future version.

QuoteThanks CJ!  I'm uploading a one-room example of the problem.  You hit the tab button to switch between the characters.  You start off as Rosa and she can walk around the room.  If you switch over to Joey, he won't walk but he'll turn in the correct direction.

Thanks, I've investigated this and confirmed it as a bug in beta 1. I'll get it fixed for beta 2.

Lt. Smash

when you go and add this calltips for other functions, it would be nice if you add them also for variables like player.x = Sets the current players x feet position.

Dave Gilbert

Quote

Quote
Thanks CJ!  I'm uploading a one-room example of the problem.  You hit the tab button to switch between the characters.  You start off as Rosa and she can walk around the room.  If you switch over to Joey, he won't walk but he'll turn in the correct direction.

Thanks, I've investigated this and confirmed it as a bug in beta 1. I'll get it fixed for beta 2.

Great!  Cheers, CJ.

freshpaint

How do you call the new dialog feature?

Shane 'ProgZmax' Stevens

Yay, non-block dialogs at last.  You are the man!

monkey0506

Quote from: Pumaman on Sat 05/07/2008 23:21:19* Added support for calltip help text if you put a comment starting with /// on the line before the import declaration. I've added this text for the String, DrawingSurface, Character and Game methods, and would appreciate your feedback as to whether it's useful enough to bother going through and doing it for the rest of the script commands.

Wasn't sure what this was meant to do till I saw it in action. This could be quite useful especially in helping new users. They'll still have to look up functions in the manual for the full description obviously, but the calltip prompt will help them remember without having to reference the full entry each time.

However on this system at the end of the line between the function parameters and the help text, I see a null-character box (the square character used by some fonts to represent null/non-displayable characters). Just a quirk in my system perhaps?

subspark

Quote* Added option to continue running game loops while dialog options are displayed

Nice work Chris! I believe I was the first one to complain about this limitation. Nice to see it fixed at last!
As for the other features...Bravo, Bravo! :D

Cheers,
Paul.

Pumaman

QuoteHow do you call the new dialog feature?

There's a new option in General Settings in the Dialog section called "Run game loops while dialog options are displayed".

QuoteHowever on this system at the end of the line between the function parameters and the help text, I see a null-character box (the square character used by some fonts to represent null/non-displayable characters). Just a quirk in my system perhaps?

Hmm strange -- I've made a change to the new beta, so let me know if it fixes this.


Anyway, beta 2 is now up. It contains significant changes to support native hi-res co-ordinates, so as a result I've now rebranded this as the 3.1 release.

Hi-res coordinates

Hi-res co-ordinates are accessed by the new option "Use low-res co-ordinates in script" in the Scripting section of General Settings.
By default, they will be disabled for backwards compatibility with current scripts.

In the editor, all co-ordinates will now always be shown at the native resolution. However, the above option will determine whether the scripts see them as low-res or hi-res.

If your game is 320x200 or 320x240 this change should make no difference.
If your game is at a higher resolution you will notice all the co-ordinates in the ediotr have doubled.

Because of the significant changes to support this, I expect that there will be problems. So please give it a go and let me know.

Sorry I'm a bit rushed here, I want to explain better but that will have to wait for tomorrow.

subspark

YIPEEEE! FINALLY HI-RES COORDS!! YOU DA MAN CJ!
I'd buy you a CrispyCream dougnut if I had the money to ship it to you!
Rock on dude! :=

Sparx.

Shane 'ProgZmax' Stevens

QuoteD3D driver now automatically tries 640x400 if your monitor doesn't support 320x200, like the DX5 driver already did

It's funny how something simple like this could be so useful.  I was wondering if this had been suggested since I recently switched video drivers and they no longer allow me to view 320x200 resolutions, so this is great!

monkey0506

The calltip-box issue has been resolved. And official high-res coordinates? That's been one of the longest outstanding issues I've seen. Sure there might be a few bugs to work out, but hopefully nothing serious will arise. This is one of the most exciting updates this year.

It would be amazing if the calltip help tool could be implemented for properties as well as functions. That would certainly be a huge undertaking adding all those comments, but I think for a new user it could be an invaluable tool in learning AGS.

SMF spam blocked by CleanTalk