Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - SSH

#3841
Competitions & Activities / Re: February MAGS
Thu 03/02/2005 13:55:32
What if the keys are not used as keys, but rather:

Spoiler

The player needs to get someone in the car park's attention, and they use their car keys to remotely unlock and lock their car, thus making the car go "beep-beep" and so the person turns around...
[close]
#3842
That makes me wonder when the inaugaral Sporrans will be held...  :=
#3843
Competitions & Activities / Re: February MAGS
Thu 03/02/2005 12:48:13
Hmmm, maybe i'll give it a try too

Are areas that are actually outside but really part of the hotel grounds allowed? e.g. Car Park (underground maybe?) Rooftop, Open air pool, Forecourt...

Can we maybe have a little bit outside the hotel as part of an opening/closing cutscene or a flashback?

#3844
If you use a SCI font, then Radian't font editor has an outlineing function that could modify it, but then you could also just turn off "Dont scale up fonts"...

If TTF, you could always render it into a .FON, then import that into Radiant's editor...


#3845
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?
#3846
That's the thing, the great directors let your imagination do the work of scraing you. For example, Psycho doesn't have any gore in it. Watch the shower attack sequence carefully and you'll realise that you never see a knife anywhere near Janet Leigh. You see a knife, you see her scream, you see blood in the plughole, but you don't actaully see any violence. Not only is this more scary, but also saves money in the make-up and SFX budget ;)
#3847
When I went to San Jose last week, I was amused as I flew in to SFO  to have the Department of Homeland Secuirty video with Tom Ridge explaining that having my fingerprints taken by US Immigration protects my privacy.... I explained my thoughts on the matter to the immigration official and I must say that he was very good about it and the body cavity search was done quite gently.

Sometimes it would be handy for records to be linked. I found out in December that part of the Inland Revenue knew who my wife was and where she lived, but another part did not. This had meant that they were trying to charge her too much tax. It also apparetnly takes weeks for them to update their computer systems with the info. On the other hand, I wouldn't want my medical info in the same database as anything else, etc. But then , let's be realistic, credit reference agencies, insurance companies, etc often have far more info about you than the government does, and they aren't even vaguely democratically accountable.
#3848
Here's an idea: all games imported into the version that first implements lazy eval have their scripts converted so that all && and || become &&& and ||| (maybe this could be optional, with a dialog saying Yes or No to that conmversion and that the user back-up their game so that if it doesnt work with lazy eval then they can restore it). Then && and || are changed to match their C behaviour of lazy eval, but &&& and ||| exist in case someone wants or needs to have the old behaviour...

That keeps compatibility, but also allows the best behaviour going forward. Lazy eval would also improve game performance a little, I guess, too...

And CJ, you didn't respond to my const, preprocessor and forum suggestions...  :'(

#3850
Magintz, if i ever see that in a shop, i'm buying it!

truth is stranger than fiction: http://www.theregister.co.uk/2005/01/31/doom_boardgame/
#3851
Edit by strazer: Needed Scorp's post for another thread, so here's his message:

Quote from: SteveMcCrea"Lazy evaluation" (I don't like to call it that as it sounds rather negative - "short-circuit evaluation" is better I think) is not just in every modern compiler, it's written into the specification of languages...
Yeah, and I'm not against the lazy evaluation, but implementing it now (by means of changing how "&&"/"||" work) would mean the old code may not work as expected. It reminds me the situation with the mathematical operators of the same precedence, you have mentioned, that are evaluated right to left. And, to be honest, I've already written plenty of code relying on '&&' behaviour in AGS. := Ah well, I will then probably replace '&&' with '*' or '&'.

Of course, if '&&', '||' will be non-strict operators it must be very clearly stated in the manual, as Gilbert says, because in that case the order in which expressions are written does matter and, without being thought out, may hide mistakes to be revealed at run-time but only under certain conditions. I don't think many people scripting in AGS think about ordering such expressions at the moment.

'if' statements, on the other hand, make it intuitively clear as it all depends on nesting:

if (a) {
    ...
    if (b) {

    }
    ...
}

but...

if (b) {
    ...
    if (a) {

    }
    ...
}

There is, of course, an advange of lazy operators if we are too lazy to set up if-blocks :) (especially in case of simple "(ptr != null && ptr.Func()") but for a complex stuff, nested 'if's would really save the time and efforts while debugging.


p.s. Just wanted to say that I think there is no disagreement about the desired behaviour in general as it all depends on what we are after, writing a certain portion of code.


/end Scorpiorus



Lazy evaluation should only chnage the behaviour of code using side-effect in function that are used in a && or || expression. One possibility is to change the behaviour only if Force OO scripting is set on, or to have ||| and &&& operators that are lazy.

For an example of side-effects, this code wouldn't work the same way any more, but then I'd never write code like this, given that it tends to be illegal in hardware description languages...

int glob;
function myfun (int x) {
  glob =x;
  return x*2;
}

if (a>5 && glob(x) >6) {
  // do something
}
#3852
Were you thinking of "Pure Shores", Dart? The one form the Beach movie. That has the right time frame.

It also sound like Janet Jackson to me and her song "Would you mind" has kind of similar lyrics... but that was 2001...
#3853
It's not the end of Divine's "Lately" is it?
#3854
General prupose item list of which inv items would be a special case, as I said in my first post...

Also this one from the beta thread:
Quote

being able to open other scripts read-only while editing a script? I'm often needing to quickly check something in the header, for example...

Rick has already seconded this

It maybe would be worth revisting the beta thread to make sure there aren't any suggestions hiding in there that need going in the tracker. I'd volunteer to do it myself, but then I'm not a tracker moderator  ;)  The 2.7 beta thread is now in the top 10 threads for lenght in the whoel forums, btw...
#3855
Quote from: RickJ on Wed 02/02/2005 03:01:21
Documentation
I embedded tutorial and reference docuemnts in the header file because I thought that, that documentation should always stay with the module and a seperate/external file wouldn't be as tightly bound as  the header would be.  However, after finishing the documentation, it seems to me that it is too large to be embedded in the header and that this would probably be generally true for most all modules (unless of course the author neglected to produce any documentation).   Ok, so then where should the documentation reside, if not in the header file?  External txt file?   Should we ask CJ to add a text document to the module mechanism?  What other alternatives are there?   

Here are some possibilities:

POD: Perl's Plain Old Documentation system is great: There is dosucmewntation embedded ina  code and there is also a standard pretty printer that lets you read it in  a nicely formatted way, like a UNIX man page

HTML: Some peopel might want pictures, etc. in their documentation

MIME: maybe there's a way for a generic MIME encoded document to be attatched and then AGS opens it with your default web browser,  like an email attatchement might?
#3856
Quote from: Pumaman on Tue 01/02/2005 20:37:35
QuoteThird-party preprocessor: before AGS runs its compiler, it could run an arbitrary 3rd party tool on a temporary text file containing all the scripts to allow full preprocessing

Do you have a use in mind for this? It sounds a bit of a far fetched feature, to be honest.

Well, this really is an alterantive to you havign to implement #defines being parameterisable, or having experssions in array bounds: a preprocessor could pull these out and turn them into valid AGS code. Not just on these features but on any syntactic sugar that might be desired by the programmer. The GNU C COmpiler can be run in a way that only its preprocessor runs, and there are standard macor langauges like m4, or someone could write a perl script that did the processing...

Quote
QuoteParametrisable #define macros

That would be nice, but I do try to discourage #define usage since it's not type safe and can make bugs hard to track down.

Well, then, are you going to implement const declarations. The mechanism is nearl ythere already with enums. In fact, can you use an expression in an enum initalisation? i.e. (oops I foregt the syntax)

enum (myconst = 2+3);

Quote
Quote
When a sprite is imported, make part of its property box the name of the original import file (or "Clipboard"): this is becuase it is sometime hard to tell sprites apart!

Effectively what you're asking for is a way to name sprites, which has been requested before. In fact, it's probably this very request:
http://www.adventuregamestudio.co.uk/tracker.php?action=detail&id=227


No, its different: I want the filename, not some string to be added later. Mayeb though the default name could be the filename. The problem is with multiple sprite import is that the import order may not match the order in the file list (in my experience it tends to be reversed) and if you want to re-imporrt one of those sprites, then you need to know which was which.

Forum SUGGESTION:

Why doesn't the post a reply function warn you if you are double-posting?

#3857
During the recent decline across hi-tech, the whole workforce has got older as they lay off newbies first as they are cheaper to lay off and they have less value to the company. Thus, along with hiring freezes, there has effectively been little new blood in many companies for 4 or 5 years. This is the case at my compnay, and it makes it flipping har to go up a grade or get leadership roles as there is no-one more junior than you are, even though you have a bunch of experience. So, I hope and pray they start hiring youngsters again soon, simply to offset the top-heavyness of the company.
#3858
Just wanted to check if the various suggestions in this thread  have been tracker'd... I think some are missing even though CJ said theyd be useful. Of course, CJ has already implemented some of them....  ;D
#3859
Quote from: Pumaman on Mon 31/01/2005 19:44:57
SSH: yeah but this is different, because in this case the dialog options aren't even displayed so a custom handler wouldn't get the chance to draw them either.


Well, I envisioned something like:


int i=0; int n=0;
while (i < dialog[topic].optioncount) {
  if (dialog[topic].option.Enabled) {
    dialoggui.control[n].AsLabel.SetText(dailog[topic].option.Name);
    n=n+1;
  }
  if (n > MAX_DISPLAYED_OPTIONS) { // do some scrolling thing }
  i = i+ 1;
}
if (n==1 && auto_dchoose_only_dialog_option) {

}


So it would be up to the scripter whether they auto-chose the only option...
#3860
This kind of "only evaluate what you NEED to" is called lazy evaluation and almost every compiler I've seen does it. Even dumb scripting langauges like csh... so I'd be all in favour of it in AGS, espeically since we're going to need to check a whole lot more nulls these days. Of course, if you had paramterisable macros, then you could write a macro to insted the extra if/else structure...

Which bring me back to my sugestions: Rick, I'll forgive you as long as you wholeheartedly endorse eveyrhting I suggested at the top of the thread  :=


EDIT:
And here's another suggestion:

Functions with no paramteres don't need the empty brackets when being called. It's not as if they have a separate namespace, so the compiler could work out that they are functions without the brackets, couldn't it?

SMF spam blocked by CleanTalk