AGS 3.3.0 Release Candidate

Started by Crimson Wizard, Thu 04/04/2013 19:16:28

Previous topic - Next topic

Eric

Quote from: cat on Wed 12/06/2013 09:09:57
Since this is becoming more and more popular: Should there maybe be a template with left-right-click GUI?

Does this mean Broken Sword- or BaSS-style system? If so, yes please.

Crimson Wizard

A serious bug found:

When compiling a game, the characters are enumerated according to their visual position in the project list, instead of their ID numbers. This breaks setting player character in the editor and, presumably, any script commands that use character ID. Using character script names work as intended.

It is currently not known if same behavior applies to other enumerated items, such as Views, Rooms, etc.

tzachs

Should be fixed now in git (also the folder is now last in the menu and not first).

Crimson Wizard

#103
AGS 3.3.0 BETA 4 released (engine version 3.3.0.1134)
-------------------------------------------------------
Changes from BETA 3:

Features:
- Custom speech portrait screen offsets for Sierra-style speech (requested by Radiant):
Code: ags

   game.speech_portrait_placement = 1; // enable custom offsets
   game.speech_portrait_x = 10; // set custom x offset from corresponding screen border (in pixels)
   game.speech_portrait_y = 20; // set custom y offset from the screen top border (in pixels)
   game.speech_portrait_placement = 0; // disable custom offsets

- Added a "browse" ("...") button to the "Create in folder" field in the Start New Game wizard.

Bug fixes:
- Improved engine perfomance (actually - restored it to about the level of AGS 3.2, so this may be considered a bug fix).
- Fixed bug in the game compilation (regression) that assigned wrong IDs to game objects if their order was changed in the project tree.
- Repositioned number of context menu items (usability fix): "New Folder" items are now positioned after "New item" and "Import existing..."; "Replace sprite(s) from source" now positioned in proper option group.
- Resized "Editor Preferences" dialog to fix label text overlapping issue.

Download links (also updated at first page):
Official: http://www.adventuregamestudio.co.uk/betas/AGS-3.3.0-beta4.exe


Unless more bugs are found, all is left is to correct the manual text to reflect new changes. Then the Release Candidate may be released.
E: Oh, right, I am also thinking about adding BASS template: http://www.adventuregamestudio.co.uk/forums/index.php?topic=48441.0

Ghost

Not sure how popular this still is, but can we have the old "zip file" back? I really liked the way you did NOT have to install AGS from an exe setup  (nod)

Other than that the new version is all sorts of awesome, and I must thank you all for making it happen. Lots of useful changes!

Shane 'ProgZmax' Stevens

I'm getting an error when trying to import wiz's agsjoy.dll functions into this version:

expected variable or function after import, not 'Joystick'

for line: import Joystick* joy;

This was compiling just fine previously.

Crimson Wizard

#106
Quote from: Shane 'ProgZmax' Stevens on Sat 22/06/2013 19:59:15
I'm getting an error when trying to import wiz's agsjoy.dll functions into this version:

expected variable or function after import, not 'Joystick'

for line: import Joystick* joy;

This was compiling just fine previously.

That's... very strange. I don't recall any changes in the script compiler.
I am going to check what causes the problem right away.

Crimson Wizard

#107
IMPORTANT ANNOUNCEMENT
I found a nasty bug in the Beta 4 (text messages were displayed with wrong text color), fixed it and re-uploaded the build. Please, download again.

I also provided a zip archive, as Ghost requested. If you have any previous AGS installed (even 3.2.1), you can copy the archive contents over:
http://www.adventuregamestudio.co.uk/betas/AGS-3.3.0-beta4.zip


@ProgZMax, unfortunately I was unable to reproduce the bug you mentioned.
I took the joystick demo game, and put this in the GlobalScript.asc:
Code: ags

Joystick *joy2;
export joy2;

(I had to name it joy2, because room scripts alredy use "joy" variable)
Then I put this in GlobalScript.ash:
Code: ags

import Joystick *joy2;


Everything compiled fine.
Can you give more details about your script?
E: Maybe you simply forgot to put agsjoy.dll into the editor folder? This is only thing that comes to mind at the moment.

Ryan Timothy B

#108
Quote from: Crimson Wizard on Sat 22/06/2013 10:14:56
   game.speech_portrait_placement = 1; // enable custom offsets
I haven't had the chance to check this out, but is this what I think you've done. Instead of adding a new built-in enum, you've done the "unspeakable" mess of using an int that doesn't help the programmer in anyway to know what they're reading? I don't agree with this at all. Just my 2 cents.

Magic numbers should be avoided in programming. Especially in a widely used program. CJ was bad at this too.

Or was this meant as a boolean? If so, the variable name is a little misleading. (edit: now that I've read it again, it most certainly must be boolean - very misleading name indeed)

Edit again: I suggest:
Code: ags
game.speech_portrait_manual_placement

To be similar to other AGS variables like Character.ManualScaling, etc.

Crimson Wizard

Yes, I was wrong... I'll redo that to a property.

Ryan Timothy B

#110
Quote from: Crimson Wizard on Sun 23/06/2013 12:06:25
I'll redo that to a property.
What do you mean by that? (I'm not too knowledgeable with programming terms)

The other option is to do it this route:
Code: ags
game.speechPortrait_setPosition(int x, int y)  // which also enables "manual positioning"
game.speechPortrait_disableManualPositioning()  // to disable it and revert to AGS hardcoded placement


I'm not too agreeable with the disableManualPositioning(), but it is certainly clear and to the point.

Crimson Wizard

#111
Quote from: Ryan Timothy on Sun 23/06/2013 17:38:35
Quote from: Crimson Wizard on Sun 23/06/2013 12:06:25
I'll redo that to a property.
What do you mean by that? (I'm not too knowledgeable with programming terms)
I mean something like
Code: ags

boolean Game.EnableSpeechPortraitOffsets;
int     Game.SpeechPortraitOffsetX;
int     Game.SpeechPortraitOffsetY;


On other hand I can be brave and introduce whole new class:
Code: ags

bool SierraSpeechStyle.ManualPortraitPosition;

The drawback of the latter will be that it will stand out as a unique example of "speech style" class in whole AGS scripting language.

Ryan Timothy B

#112
Ooo I like the idea of there being the option of an offset of what AGS's hardcoded positioning will be. BUT, there should still be a manual X,Y so that you don't have to adjust via math or anything.

Edit: I prefer:
Code: ags
PortraitSpeechStyle.ManualPosition(int x, int y);

Drop the "Sierra" from the name.

Or rather:
Code: ags
SpeechStylePortrait.ManualPosition(int x, int y);

That way if you ever added more SpeechStyles, it's easier to find them with autocomplete.

Crimson Wizard

Quote from: Ryan Timothy on Sun 23/06/2013 17:48:47
BUT, there should still be a manual X,Y so that you don't have to adjust via math or anything.
Uh, can you elaborate?

Ryan Timothy B

Quote from: Crimson Wizard on Sun 23/06/2013 17:50:28
Uh, can you elaborate?
You were speaking of the offsets as actually being offsets, yes? Like whatever AGS currently automatically assigns as the position for the Portrait, the offset just adds to that? Otherwise it isn't an offset, it's strictly an X,Y position.

Code: ags
int     Game.SpeechPortraitOffsetX;
int     Game.SpeechPortraitOffsetY;

Crimson Wizard

Quote from: Ryan Timothy on Sun 23/06/2013 17:55:35
You were speaking of the offsets as actually being offsets, yes? Like whatever AGS currently automatically assigns as the position for the Portrait, the offset just adds to that? Otherwise it isn't an offset, it's strictly an X,Y position.
Well, I added that as a response to Radiant's request. We discussed this a bit and came to a conclusion that setting offsets from screen border would be enough.
Currently it works in such a way that the manual offsets fully override automatic placement. Y offset explicitly defines the Y coordinate of the portrait's top line on screen, while the X offset is relative to the left or right screen border, depending on whether the portrait is displayed as "left-side" or "right-side".
In other words, X offset is a distance from screen border to nearest portrait side.

Ryan Timothy B

Oh OK. Makes sense. So X would be an Offset while Y would be a Position. Unless there's a "top-side" or "bottom-side" as well. Just saying. (laugh)

Herooftime1000

What are the chances that you can include a way to use Pamela with Lucasarts speech?

Crimson Wizard

#118
Quote from: Herooftime1000 on Mon 24/06/2013 01:54:04
What are the chances that you can include a way to use Pamela with Lucasarts speech?
I don't even know what Pamela is. :)

Anyway, that depends on how time-consuming that would be to do. There is a number of factors. First, I hoped to release this version as soon as possible, because it takes too long already (it's been 2 years since last official AGS release). Second, I have a number of tasks with high priority that I'd really want to complete. I am struggling to find time to work on these :(. Perhaps someone else would like to work on this Pamela thing? in which case it is theoretically possible to release an update, like version 3.3.1, a bit later.

Calin Leafshade

It should actually be very simple since the tech already exists in ags to do it for speech portraits.

Just make it change the character frame instead of the speech portrait frame and you're golden.

SMF spam blocked by CleanTalk