AGS v2.7 Final: Yet Another Edition

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

Previous topic - Next topic

RickJ

Quote
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...
If there were a ModulePresent function it would be nice if it could also be used iteratively to get a list of modules.  Some kind of "require" keyword would probably be a better solution though. 

I have been heavily using the module manager and it works great.   I experienced a couple of crashes using beta-15 but haven't seen any with beta-16.   The crashes occured during long AGS Editor sessions when doing " close module script => close module manager => test game".   

The only thing that is awakward is going through edit-test iterations.   You have to open the module manager, select the module, edit the module, close the module manager, test the changes.  It would be nice if this could be stream-lined somehow in some future version.   

I am extremely pleased, great work and thanks ...

Rick

Scorpiorus

Quote from: SSH on Wed 09/02/2005 07:53:59If you do something like this, it doesn't work:
Code: ags

#define OFFSET -1

x = y + OFFSET;

because it sees +- and gets confused...
Yeah, it will reasonably report an error. A general solution would be to enclose a macro definition with braces:

#define OFFSET (-1)

Quote from: RickJ on Thu 10/02/2005 06:43:10If there were a ModulePresent function it would be nice if it could also be used iteratively to get a list of modules. Some kind of "require" keyword would probably be a better solution though.
Or what about a "#error" directive, so we could raise errors upon compiling(pre-processing)?

For example, somebody declares a module name as a #defined constant (or it can be done automatically by AGS) and a client module checks for it:

#ifndef MODULE_BLAH
#error Error: Can't find module BLAH!
#endif

One thus can report an error or possibly do other useful stuff like providing an alternative code to replace a module functionality with, etc.

I appreciate it's not a very mistakes-safe solution and can be annoying for simple dependences but yet rather flexible when there is a more complex connecting mechanism with module version checking etc. I am not sure about how widely it would be used and it of course depends on amount of work to implement the #error directive.

RickJ

Quote
#ifndef MODULE_BLAH
#error Error: Can't find module BLAH!
#endif
One thus can report an error or possibly do other useful stuff like providing an alternative code to replace a module functionality with, etc.
This appeals to me because of the possibility of providing alternatives if a needed module is not found.   What comes to mind is the case where some features of Module-A use some functionality provided by Module-B.  Using this method one could define dummy functions, variables, or whatever to disable the dependent features thus allowing Module-A to compile and it's other features used.   Perhaps there should be several error levels such as: #abort, #error, #warning.   

Pumaman

QuoteAlso, 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...

Thinking about this, I think the easiest solution is Scorpiorus' #error suggestion.

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

Correct, if you are not the module's author, then you have no right to start restricting what other people can do with it.

QuoteIf you do something like this, it doesn't work:

Code:
#define OFFSET -1

x = y + OFFSET;

because it sees +- and gets confused...

That's the way #defines work, and why they're bad. It's the same in C and other preprocessors.

Quoteenums 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...

Yeah, it'd be good to bring these up to date.

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

Well spotted, I'll fix it.

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

That's because it has a capital R. Use autocomplete, man! :P

QuoteI have been heavily using the module manager and it works great.Ã,  Ã, I experienced a couple of crashes using beta-15 but haven't seen any with beta-16.Ã,  Ã, The crashes occured during long AGS Editor sessions when doing " close module script => close module manager => test game".Ã,  Ã, 

Hmm, that's slightly worrying -- I thought the editor issues were fixed in beta 15.

QuoteThe only thing that is awakward is going through edit-test iterations.Ã,  Ã, You have to open the module manager, select the module, edit the module, close the module manager, test the changes.Ã,  It would be nice if this could be stream-lined somehow in some future version.Ã,  Ã, 

Yeah, I appreciate this. Some sort of direct access to the module script from the main menu would be handy.

QuoteI am extremely pleased, great work and thanks ...

Glad you like it :)

RickJ

#424
Quote
QuoteAlso, 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...

Thinking about this, I think the easiest solution is Scorpiorus' #error suggestion.
Yeah, I like his idea also.  Perhaps #warn, #info should be included as well, so if one wished the compile could be allowed to complete but a message still generated indicating what happened.   

*** Edit *** removed unreleated quotes

Quote
QuoteI have been heavily using the module manager and it works great.   I experienced a couple of crashes using beta-15 but haven't seen any with beta-16.   The crashes occured during long AGS Editor sessions when doing " close module script => close module manager => test game".   

Hmm, that's slightly worrying -- I thought the editor issues were fixed in beta 15.
I'll keep my eyes open.  If it happens again I chase it for you..

Quote
QuoteThe only thing that is awakward is going through edit-test iterations.   You have to open the module manager, select the module, edit the module, close the module manager, test the changes.  It would be nice if this could be stream-lined somehow in some future version.   

Yeah, I appreciate this. Some sort of direct access to the module script from the main menu would be handy.
I think it would be ok if there were short-cuts or menu picks to edit the previously edited module script and header. 




SSH

Quote from: Pumaman on Fri 11/02/2005 19:30:37
QuoteIf you import a module that you are allowed to edit the properties of, you still cannot edit it's permissions.... is this right?

Correct, if you are not the module's author, then you have no right to start restricting what other people can do with it.

But I am the module author. I started creating the module in one game and then exported it, added it to another game and then expanded it in the new game... maybe you need a "allow users to edit permissions" permission, too!

Quote
That's the way #defines work, and why they're bad. It's the same in C and other preprocessors.

I think C does actually understand the unary "-" there properly in the example I give.

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

That's because it has a capital R. Use autocomplete, man! :P

I spelled it wrong in my post, but not in the game.  It gives that message with BOTH a lower and capital R
Quote
12

Pumaman

QuoteYeah, I like his idea also.  Perhaps #warn, #info should be included as well, so if one wished the compile could be allowed to complete but a message still generated indicating what happened. 

Those would of course require the compiler to support warnings, which is something that may be added in a future version.

QuoteBut I am the module author. I started creating the module in one game and then exported it, added it to another game and then expanded it in the new game... maybe you need a "allow users to edit permissions" permission, too!

To be honest, I'm not too bothered with the permissions thing. It was a bit of a silly thing to add, which I put in on a whim, and I really can't be bothered with fiddling around with it.

QuoteI think C does actually understand the unary "-" there properly in the example I give.

Amazingly enough it does indeed -- you learn something new every day. Anyway, putting parenthesis round the -1 as Scorpiorus suggests should fix it.

QuoteI spelled it wrong in my post, but not in the game.  It gives that message with BOTH a lower and capital R

I just gave it a quick test and it worked fine; does PreviousRoom appear in the autocomplete list when you type "player." ?

Are you sure you're using the latest versions of all the editor files?

SSH

Quote from: Pumaman on Sat 12/02/2005 12:14:14
QuoteI spelled it wrong in my post, but not in the game.  It gives that message with BOTH a lower and capital R

I just gave it a quick test and it worked fine; does PreviousRoom appear in the autocomplete list when you type "player." ?

Are you sure you're using the latest versions of all the editor files?

Oops, I must conclude in the end that I did have a typo in it, becuase I deleted it and typed it again  using autocomplete and it works now.  :-[
12

Radiant

This came up in the beginner's questions forum...

We have the functions EnableRegion / DisableRegion.
We also have the functions RemoveWalkableArea / RestoreWalkableArea.
The inconsistency in naming may be a little confusing to n00bs.
(then again this may be largely irrelevant with the new 00 system)

Pumaman

Well, since EnableRegion/DisableRegion disappear in 2.7, hopefully that should solve the inconsistency.

Pumaman

Right, beta 17 is now up. It fixes up a few minor things, and adds the IMport/Export Single GUI feature.

Now, as far as I'm aware, the only things that still need to be done for 2.7 are as follows:
* module support for rep_exec, on_key_press, etc
* update Intro To Scripting tutorials to reflect OO

If there's anything else that needs to be done and I've forgotten, please do say so.

SSH

Quote from: Pumaman on Sat 13/11/2004 21:02:00
Changes from Beta 16 to Beta 17:
* Added export/import single GUI function.
* Added enums for parameters to StartCutscene, SetDialogOption, SetSpeechStyle and SetVoiceMode.
* Fixed object and hotspot o-names not being available in the script editor if you had only just created them.

;D Yay! go CJ! I might stop complaining now... for  a little while!
12

Snarky

Quote from: Pumaman on Sun 13/02/2005 16:20:37
If there's anything else that needs to be done and I've forgotten, please do say so.

You need to make a Valentine's Day reference in the thread title.  ;)

Don't you think this version is the best chance you're ever going to get to fix the associativity of mathematical operators?

And the jump to OO scripting is a pretty big change, what about making this version 3.0? Or is that reserved for when AGS goes 3D?  ;D

Scorpiorus

#433
Great work as always!

Single GUI import/export and #error are just in time. :)

EDIT: And I like this Valentine thingy on opening the editor!Ã,  :=

Kinoko

I have to agree, with the amount of changes and the rather large change to scripting, why not make this 3.0? Unless you have something -amazing- planned for that ^_-

Kweepa

Nooooo! Don't make it 3.0!
I won't be able to resist moving to the new version, and then I'll have to rescript my WIP games...
Still waiting for Purity of the Surf II

SSH

Ummm... you dont HAVE to rescript, just don't check "enforce object oriented scripting"
12

strazer

Code: ags

#ifndef AGS_STRING_LENGTH
  #define AGS_STRING_LENGTH 200
#endif


If you indent the second line with a tab, you get

QuoteParse error: unexpected '#'

Pumaman

Quote from: Snarky on Sun 13/02/2005 19:58:46
Don't you think this version is the best chance you're ever going to get to fix the associativity of mathematical operators?

Yeah, it might be worth doing now, I guess, since everything else is changing.

Quote
And the jump to OO scripting is a pretty big change, what about making this version 3.0? Or is that reserved for when AGS goes 3D? ;D

The major version number should only change when there's been a pretty much full rewrite of the application, which this isn't. Except if you're the author of UltraEdit of course, in which case incrementing the major version number means you added icons to the menus.

QuoteIf you indent the second line with a tab, you get
Parse error: unexpected '#'

You and your tabs ;)
I'll get it fixed.

Gilbert

Quote from: Pumaman on Mon 14/02/2005 19:20:12
The major version number should only change when there's been a pretty much full rewrite of the application, which this isn't. Except if you're the author of UltraEdit of course, in which case incrementing the major version number means you added icons to the menus.

Yeah, the last time it changed from V1 to V2 was nearly a complete rewrite, and even that large change from DOS RoomEdit to WIN RoomEdit didn't make it into V3.

I think if the "Make my game" feature is rewritten and made into an icon for easier execution it can be made V3 then! ;D

SMF spam blocked by CleanTalk