AGS v2.7 Final: Yet Another Edition

Started by Pumaman, Sat 13/11/2004 21:02:00

Previous topic - Next topic

Pumaman

Quote from: strazer on Wed 02/02/2005 02:45:13
We have a tracker entry for ENTER_ROOM_BEFORE_FADEIN, should we rename eEventEnterRoom to eEventEnterRoomBeforeFadein to avoid confusion?

Sounds like a plan, I'll do that.

strazer

#401
And maybe rename the "Talking view" button in the Characters pane to "Speech view" to be consistent with the SpeechView property?

In fact, I'd suggest naming stuff closer to the respective property name, i.e.

No diagonal loops -> Diagonal walking
Can be walked through -> Solid

Edit:

Hm, we have a tracker entry for completely disabling diagonal walking, BASS-style.
It seems to me the DiagonalWalking property name is a bit ambiguous. Maybe it should be called DiagonalLoops or something?

Edit 2:

Is it possible to only exclude a struct name from the autocomplete feature?
If I try it putting "// $AUTOCOMPLETEIGNORE$" after the struct name, it disappears from the list, but none of the members for instances of the struct are autocompleted anymore.

Edit 3:

The manual still refers to "player" as an alias to character[EGO] which is not being updated.

SSH

#402
Is there a way that the script can stop a control's click function from being called, because I've got a GUI where it seems to only work VERY intermittently: I even added a Dsiplay in there as pretty much the first hting the click function does, and it only comes up some of the time, and sometimes it shows the wrong control.ID too...


This might just be more of the GUI_MDOWN thing, though...

Quote from: strazer on Tue 01/02/2005 02:20:21
Hotspot.GetAtScreenXY(mouse.x, mouse.y) != hotspot[0]
since hotspot 0 is returned if there's no hotspot there.

Here's an intersting one, you can give HS 0 a script-o-name, but presuambaly that's only valid in that room. Maybe there should be a global script name or #define for the background hotspot?
12

Rui 'Trovatore' Pires

I'd like to request an eEventSaveGame, similar to eEventRestoreGame, which would get called JUST AFTER a SaveGameSlot (I THINK that's the name) command before the screen refreshes. This is not an idle request, and that's why I'm posting in this thread. With the savegame command now being called when the script ends, we should be able to detect when the game has been saved so we can do some changes immediatly, even before the screen refreshes.
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

Pumaman

QuoteAnd maybe rename the "Talking view" button in the Characters pane to "Speech view" to be consistent with the SpeechView property?

In fact, I'd suggest naming stuff closer to the respective property name, i.e.

No diagonal loops -> Diagonal walking
Can be walked through -> Solid

Good ideas, done for beta 16.

QuoteHm, we have a tracker entry for completely disabling diagonal walking, BASS-style.
It seems to me the DiagonalWalking property name is a bit ambiguous. Maybe it should be called DiagonalLoops or something?

Good point, done.

QuoteIs it possible to only exclude a struct name from the autocomplete feature?
If I try it putting "// $AUTOCOMPLETEIGNORE$" after the struct name, it disappears from the list, but none of the members for instances of the struct are autocompleted anymore.

Not at present, no -- if you do as you describe it will ignore the whole struct.

Quotethe manual still refers to "player" as an alias to character[EGO] which is not being updated.

Whereabouts is that? I did a quick search of the manual but couldn't find anything.

QuoteIs there a way that the script can stop a control's click function from being called, because I've got a GUI where it seems to only work VERY intermittently: I even added a Dsiplay in there as pretty much the first hting the click function does, and it only comes up some of the time, and sometimes it shows the wrong control.ID too...

Can you elaborate ... do you mean the GUI or the control's OnClick; if the latter, what type of control is it? Does it not work on just one, or all the controls? Can you provide an example?

QuoteI'd like to request an eEventSaveGame, similar to eEventRestoreGame, which would get called JUST AFTER a SaveGameSlot (I THINK that's the name) command before the screen refreshes.

Sounds like a reasonable request. However, I am very aware of the feature creep that seems to be affecting this version, and I would like to get things settled down for an RC1.

strazer

#405
Quote from: Pumaman on Sun 06/02/2005 16:46:40
Quotethe manual still refers to "player" as an alias to character[EGO] which is not being updated.

Whereabouts is that? I did a quick search of the manual but couldn't find anything.

Reference -> Scripting global variables

Quote from: Pumaman on Sun 06/02/2005 16:46:40
Quote
I'd like to request an eEventSaveGame, similar to eEventRestoreGame, which would get called JUST AFTER a SaveGameSlot (I THINK that's the name) command before the screen refreshes.

Sounds like a reasonable request. However, I am very aware of the feature creep that seems to be affecting this version, and I would like to get things settled down for an RC1.

Tracker'd: http://www.adventuregamestudio.co.uk/tracker.php?action=detail&id=505

How about a "Script O-Name" display in the Characters pane similar to the GUIs and Objects pane?

Pumaman

Quote from: strazer on Sun 06/02/2005 18:59:11
Reference -> Scripting global variables

Thanks, I'll fix it.

Quote
How about a "Script O-Name" display in the Characters pane similar to the GUIs and Objects pane?

Well, the silly thing is I couldn't find anywhere to put it. I suppose it could go to the right of the Script Name box without looking too silly.

strazer

#407
Any chance of a GP_NUMINVITEMS for GetGameParameter?
I use the mouse wheel to let the user scroll through his inventory items, jumping to the last one when he reached the first one.
Since it seems a character's InventoryQuantity array is only as big as the number of inventory items in the game, I can't use AGS_MAX_INV_ITEMS as a starting point for the while loop to find the last item since it produces an out-of-bounds error.

Edit:

Nevermind, I use InvWindow.ItemAtIndex and InvWindow.ItemCount now, much better!

Edit 2:

Quoterenamed Can Be Walked Through to Solid

Since you also reversed its behaviour, the tooltip needs an update. So does the tooltip for "Diagonal loops" I suppose.
Maybe they should read "Whether other characters can walk straight through this character" and so on?

Rui 'Trovatore' Pires

QuoteSounds like a reasonable request. However, I am very aware of the feature creep that seems to be affecting this version, and I would like to get things settled down for an RC1.

I can understand that, but this is more than a feature. While it's not in, the functionality of 2.7 will not be the same as the previous one. I am recompiling one of my template's code, and until I get this one, the code will remain broken, because the script relies on first saving the game and then extracting the screenie from the recently saved game. What happens NOW is that naturally it extracts a NULL, since the game ISN't actually saved until later on the script. I have tried working around it in MANY ways, believe you me... but unfortunately, I do think this is a case of "something that got broken during beta". That's the reason I posted here in the first place, instead of in a suggestion thread, where it would belong were it not about a previously-working thingammy.
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

SSH

Rui - thats why you need to use DynamicSprite.CreatefromBackground or whatever it is, to make a sprite from the current background... or anyway, you could set a variable and then check for the variable in the next repeatedly_execute,...
12

Rui 'Trovatore' Pires

CreateFromBackground? Damn, why don't I keep up to date... thanks!

And about the ree.execute thing... heh, trust me, I did MANY rep.execute thingies. NONE of them worked well, because there are more factors here.
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

Pumaman

Quote from: strazer on Sun 06/02/2005 20:12:52
Any chance of a GP_NUMINVITEMS for GetGameParameter?

Ugh, GetGameParameter looks so ugly now in comparison to the new OO stuff. But I mustn't get carried away, we're done with objectising things for now!

I'll see what I can do.

QuoteSince you also reversed its behaviour, the tooltip needs an update. So does the tooltip for "Diagonal loops" I suppose.

Hehe well spotted, I'd better fix those.

QuoteI am recompiling one of my template's code, and until I get this one, the code will remain broken, because the script relies on first saving the game and then extracting the screenie from the recently saved game.

This is precisely the reason why DynamicSprite.CreateFromScreenShot was added at the same time as the save game functionality changed. Bearing this in mind, do you still require the eEventSaveGame feature?

strazer

Quote from: Pumaman on Sun 06/02/2005 22:45:39
Ugh, GetGameParameter looks so ugly now in comparison to the new OO stuff. But I mustn't get carried away, we're done with objectising things for now!

I'll see what I can do.

As I wrote in my edit above, I don't need it anymore since ItemCount and ItemAtIndex work much better.
As for objectizing, yeah, that would be nice, but is not that important. We can always add it to the tracker.

Rui 'Trovatore' Pires

Heh, no, thanks CJ. After SSH pointed it out, I went to try it and it even worked better than before! You know, sometimes you write straight by curved lines... (or something)
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

SSH

#414
I find that sometime Scripot-o-name for objects in a room dont update the autocompleter in the editor, if I load the script just after editing the object...

Also, why are Object x and y capitalised?

And it would be nice if I could insert spaces after my commas in function calls without losing the tooltip... what I mean is if you go back and edit the call later, and retype the comma it might give ytou the enumerated completions for the next arg for the function, but it doesnt autouinsert the space and if you type a space the enum completion list disappears...


12

Pumaman

QuoteI find that sometime Scripot-o-name for objects in a room dont update the autocompleter in the editor, if I load the script just after editing the object...

Ah yes, I think I see why this is happening, I'll fix it.

Quote
Also, why are Object x and y capitalised?

Because all the new OO properties start with a capital letter. So your question might be, why aren't the character x and y capitalised. The reason for that is that changing it would require people to rework tons and tons of code, for no real advantage.

Quote
And it would be nice if I could insert spaces after my commas in function calls without losing the tooltip... what I mean is if you go back and edit the call later, and retype the comma it might give ytou the enumerated completions for the next arg for the function, but it doesnt autouinsert the space and if you type a space the enum completion list disappears...

Yeah I know, it's a bit fiddly this, I'll take a look.

strazer

#416
QuoteThe reason for that is that changing it would require people to rework tons and tons of code, for no real advantage.

I'm either a sucker for consistency or a nitpicker, but I would like to have them capitalized. :P
If object-based scripting is enforced, a lot of code has to be reworked anyway, so why not capitalize them there?

Edit:

mouse.ChangeModeGraphic doesn't work properly with the UseInv mouse cursor.
It works if it is the current cursor mode, but each time you cycle to it with mouse.SelectNextCursorMode, it resets to the active inv item's sprite.

RickJ

Quote
I'm either a sucker for consistency or a nitpicker, but I would like to have them capitalized.  ...
I have the same preference as Strazer.   Perhaps it's possible to have both and disallow the lowercase version(s) if "object-based scripting is enforced".   

Pumaman

Quote from: strazer on Tue 08/02/2005 16:05:06
I'm either a sucker for consistency or a nitpicker, but I would like to have them capitalized. :P
If object-based scripting is enforced, a lot of code has to be reworked anyway, so why not capitalize them there?

I have the same preference as Strazer.   Perhaps it's possible to have both and disallow the lowercase version(s) if "object-based scripting is enforced".   

For the sake of a capital letter, I simply can't justify making people change so much code -- especially as "x" and "y" are extremely difficult to Find & Replace due to their length. I forsee far more complaints if they were changed than if they're left alone.

Quote
mouse.ChangeModeGraphic doesn't work properly with the UseInv mouse cursor.
It works if it is the current cursor mode, but each time you cycle to it with mouse.SelectNextCursorMode, it resets to the active inv item's sprite.

Use SetGameOption with OPT_FIXEDINVCURSOR to stop this behaviour.

SSH

#419
Maybe both should be allowed for consistency's sake... also, mouse.x and mouse.y should really be capitals, too, now...


EDIT:

Also, could we have a ModuleRequired or ModulePresent function, that can be used to check for the presence of some other module, after all, there may be dependencies between modules and it would be nice if we could specify this in some formal way... alterntaively a require keyword like Perl...

EDIT 2:

If you import a module that you are allowed to edit the properties of, you still cannot edit it's permissions.... is this right?

EDIT 3:

If you do something like this, it doesn't work:
Code: ags

#define OFFSET -1

x = y + OFFSET;

because it sees +- and gets confused...

EDIT 4:

enums for Cutscene Skiptype, SetDialogOption state, SetSpeechStyle, SetVoiceMode, please! The first one is the only one I actually use, but I always have to look it up in the manual...

EDIT 5:
Although in the builtin enum section, CursorMode says it is used by mouse.UseModeGraphic, the entry fro that function says it takes an int...

EDIT 6:

If I use player.Previousroom in a room script, it tell me that it is not a public member of character...
12

SMF spam blocked by CleanTalk