• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Hello & PotC Syntax Questions

dchaley

Landlubber
Ahoy, ye scurvy sea dogs! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" />

I bought PotC a few days ago and was immediately unimpressed with the `way-too`-`console-like` feeling, and what appeared to be slightly simplistic gameplay. In my search for a way to invert the mouse, I found this website and the PMT Build. And then, I was much more impressed and satisfied with the product. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> So for starters, thumbs up to the PMT. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" />

So I'm a programmer by trade and hobby (and I'm formalizing that with a `purty-purty` degree in CS), and I can never resist some good ol' modding. One thing I miss from Morrowind (and many other games) is the Quicksave feature - I like saving all the time, and it's awfully inconvenient to have to mosey all the way through the menu system etc.

I was poking around in the source code seeing how feasible this would be, and my editor (Vim) complained about invalid syntax:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->PostEvent("evntSave",0,"ss", GameInterface.SavePath+""+curSave, sSaveDescriber); // qf"<!--c2--></div><!--ec2--> (save_load.c line 261, I've installed build 11)
Notably, it thinks that the " is an escaped quote, and so vim only thinks the string ends at // qf".

Now looking around a bit, I've noticed that this definitely isn't normal C. For one, you can't use strings in a case statement; for two, you can't use strings so simply in the first place e.g. GameInterface.SavePath = "SAVE".

In any case, my question is: how does `PotC-C` handle escaped characters? And more generally, what are its particularities?

Now, I noticed that Nathan Kell gave a link to a page that had a list of 'pecularities': <a href="http://www.piratesahoy.net/postt744.html" target="_blank">http://www.piratesahoy.net/postt744.html</a>
But unfortunately the link seems to be broken (it brings you to the main PA.net page)

Also, how do you go about distributing mods? It seems that the common method is to post the source code `to-be`-added/modified? Is there a CVS server set up anywhere for the PMT Build? If one wants to make bug fixes or simply additions, how do you make that contribution?

Thanks, sorry for all the questions, and once again thumbs up to you folks for turning the game into what it should have been. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
 
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> <b>dchaley, </b>and welcome aboard! Pull up a keg, have a seat, and have a couple on us! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />

<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/keith.gif" style="vertical-align:middle" emoid=":keith" border="0" alt="keith.gif" /> We're glad you found your way into these fair waters, and hope you visit often! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/me.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="me.gif" />

Quicksave would be VERY handy!

For answers to PotC code, you might like to take a peek at the PotC WIKI - it's not complete by any means, but there are some good articles there regarding a lot of code and how it works.

<a href="http://forum.piratesahoy.net/ftopic1561.php" target="_blank">http://forum.piratesahoy.net/ftopic1561.php</a>

NathanKell's been gone for a while, but he may be back here soon - and there are others who are also into the code who can hopefully answer your questions...

That link of Nathan's might go back to a post on the old forum, which is why it doesn't work.

PiratesAhoy has their own FTP server:

<a href="http://forum.piratesahoy.net/ftopic978.php" target="_blank">http://forum.piratesahoy.net/ftopic978.php</a>

Usually we finish something up and then post it on the modding boards here, and upload it to the FTP. There's a section where we keep mods in an easily downloadable area, the PA! Mod Center:

<a href="http://mods.piratesahoy.net" target="_blank">http://mods.piratesahoy.net</a> but there hasn't been a lot of updating there lately. If you want to download anything you FTP in, or use a hyperlink which someone may post.

Other people (like myself) have access to an anonymous FTP server so I post my mods or corrections there instead of clogging up the PA server...

We are currently working (collectively) on what will be called "Build 12" - gathering mods and ironing out the rough spots, testing &tc - eventually we'll fix them all to work together and release them. That is coming - later more than sooner, I think, rather depends upon when we decide to stop and what we decide to include - mods are in progress all the time! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />

Hope this helps! And again, welcome aboard! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> (ohboy, another modder!!!) <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" />
 
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> and welcome mate!!


<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" />
More modders!!! YEAH!!
 
Howdy, dchaley!
Nothing like the sound of codespeak to bring me up from the dead. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />

That's exactly what _my_ IDE told me, and why I added those //qf" (i.e. `quote-fix`) lines, to tell it that yes, the string's over (but commented out, so as not to harm POTC).

What's even _weirder_, btw, is not that it (POTC) doesn't use escape characters, but that it uses _some_ (the only one that springs to mind is n) but not many.
And it seems to regard a followed by anything other than n, as a, well, .

Now, my own C knowledge is limited to AP/highschool level, and console at that, so forgive me if I'm not getting what you're saying right.

I'm not sure what you mean by case statement, as SFAICT that's a function call.

Basically, the two large (read: big frickin' HUGE) differences I notice, are:
the way objects are handled
string is a native variable type.

Objects, at least for our use, basically just giant string piles, which can be nested.
Let me see if I can dig up my big post on them--I dunno, because it was saved to text on the old (dead) hard drive. It _should_, however, be spread around the fora.

<a href="http://forum.piratesahoy.net/`ftopic318-0`-`asc-20`.php" target="_blank">http://forum.piratesahoy.net/`ftopic31...asc-20`.php</a> may help some.

more to follow.
 
Ahoy, infodump.
On differences between POTC and normal C: <a href="http://www.thelib.com/yabbse/index.php?board=13;action=display;threadid=1586;start=msg18449#msg18449" target="_blank">http://www.thelib.com/yabbse/index.php?boa...g18449#msg18449</a>

On variables, objects, attributes, etc. <a href="http://www.thelib.com/yabbse/index.php?board=13;action=display;threadid=1718;start=msg20227" target="_blank">http://www.thelib.com/yabbse/index.php?boa...;start=msg20227</a>

NB: info in keywords.c supercedes all info in those posts. Only thing that comes to mind ATM is that I got a vartype explanation wrong for postevent/sendmessage; l (L) is for ints, and i is for _arefs_.
____________
More info, repeating some that was said in above links (NB this is `copy-pasted`, easier than rewriting just the stuff you need. Forgive me... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/blush.gif" style="vertical-align:middle" emoid=":eek:ops" border="0" alt="blush.gif" />: ):
You can always add (and remove) attributes to objects on the fly.
However, if you want the addition to persist the object must be a global, and the object must be either called directly (ShipsTypes[n].someattr = x) or referenced (i.e. ref ship = &ShipsTypes[n]; ship.someattr = x).
Note that that ref can be passed as a function arg, i.e.
void dosomething(ref ship)
but when dosomething() is called, you _must_ use the & (as otherwise the variable is copied, not referenced).

Note that unlike C, the _only_ type that can be referenced is the ref; so if you want to change an int passed to a function, in the function, you must have that argument as a ref:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void swap(ref a, ref b)

{ int c = a; a = b; b = c; }

int x,y; x = 5; y = 7;

swap(&x, &y);<!--c2--></div><!--ec2-->
swap(int &a, int &b) will _not_ work, even though it _should_ <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />

Further, using makeref obviates the necessity of using &, as a ref assigned using makeref is _automatically_ a, um, reference.

Last, arefs are a special case. They are _always_ references IIRC, and don't need &s.
---


Attributes require _no_ initialization; but, conversely, they _can't_ be initialized blank; you have to set them equal to _something_.
Wait; That may not be true.
I've never tried <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->Someobject.attr;<!--c2--></div><!--ec2-->
That may initialize.
Dunno.

But at any rate it's not required.

---
So, assuming the object is a global variable, if you call it directly or via a (heh) referenced ref, the change will also be global.

Any variable "outside" of code will be global; I.e. anything in a file #included in seadogs.c and outside of the functions therein, or in seadogs.c itself outside of a function, will be global.

I.e. when scheffnow added the tailor mod, he #included a new file, models.c, which contains some global variables.

If the variable you're adding is, well, not really connected to anything, just stash it in globals.c (you don't have to, of course, you could put it anywhere; but this makes it easy to find. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> ).

Oh, one final note, just to be clear:
if you bring up a global _directly_
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->ShipsTypes[n].attr = x;<!--c2--></div><!--ec2-->
you don't need the &.
It's only when you make a reference (ref x = &ShipsTypes...)
or pass a variable to a function (though with a global you'd never need to do this, since the called function can access it as well since it's a global...) {do(&ShipsTypes)}, that you do need the &.
 
Wow, thanks for the kind greetings and all the info!

Nathan, what you gave me was very interesting. It would seem that Akella's use of the name 'C' is somewhat of a misnomer; it looks a lot more like a form of scripted C or something.

For starters, in C all this 'reference' stuff would be done with good old pointers. :) `PotC-C` doesn't seem to have them, though.

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->That's exactly what _my_ IDE told me, and why I added those //qf" (i.e. `quote-fix`) lines, to tell it that yes, the string's over (but commented out, so as not to harm POTC).<!--QuoteEnd--></div><!--QuoteEEnd-->Unfortunately my IDEs arent so easily fooled. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> What a bother, I wonder how I'm going to get around that.

It seems that it's not using proper escape characters as such. Perhaps it's doing some kind of `run-time` substitution of n with the right bytecode. I believe that in C the `pre-processor` takes care of all that.

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->I'm not sure what you mean by case statement, as SFAICT that's a function call.<!--QuoteEnd--></div><!--QuoteEEnd-->Well, technically it's a statement much like an if statement; in fact a case statement is basically shorthand for a series of `if-else` statements. Normally however in C it's impossible to do someString == "hello", so a switch statement wouldn't work at all. It's really convenient, though, to be able to do string comparison (this is something C++ did with the `std-lib` string class.)

Also in C you definitely can't add stuff to structs (err, objects <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" />) at will; you need to formally define the structure and then can't change it at all.

In any case this looks like it'll be good fun. I'll have to be careful for all these quirks between normal C and `PotC-C`. I might write code that I expect to work, but won't at all in this language. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />


So I think I have enough information to do quicksave now. I'm still a little unclear on one thing though. When I finish the mod, do I really just paste a list of modifications to make? It seems like a rather, err, unsafe way of distributing mods. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> How about using some kind of patch system? (like diffing your mod vs. the original build, generating a patch file, that other people can apply.)

I have my own webspace so I can upload all my stuff there while waiting to put it on the mods server, or whatever I'm meant to do. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" />

So... I'm off to do quicksave. Hopefully I'll have something in not too much time... how bout this, I won't play the game till I've finished it. That should be sufficient motivation. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/tongue.gif" style="vertical-align:middle" emoid=":blah:" border="0" alt="tongue.gif" />
 
<!--QuoteBegin-NathanKell+--><div class='quotetop'>QUOTE(NathanKell)</div><div class='quotemain'><!--QuoteEBegin-->Howdy, dchaley!
Nothing like the sound of codespeak to bring me up from the dead. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" /><!--QuoteEnd--></div><!--QuoteEEnd-->
So that is the magic formula that conjures up the genie of PotC modding <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" /> Welcome back, Nathan <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" />

Welcome dchaley <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" /> Nice to see someone with profound programming knowledge here <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/bookish.gif" style="vertical-align:middle" emoid=":mm" border="0" alt="bookish.gif" /> . I just dabble a little with the code and I am always amazed how much you can change in the gameplay with just a few additional lines. For someone with REAL code knowledge the possibilities in PotC are almost unlimited. Let your imagination flow and create your dreamgame.

There is a method of inserting mods into the code: Vipers PotC mod helper. It inserts `mod-textsections` into the script files. But many people were unable to run it. Furthermore many mods influence each other cause they mess with the same files, or new mods are based on other older mods so that it is very messy to install mods individually.
Therefore from time to time someone (mostly poor NK <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> ) shoulders the laborious task of assembling all published mods into a Build
 
<!--QuoteBegin-dchaley+--><div class='quotetop'>QUOTE(dchaley)</div><div class='quotemain'><!--QuoteEBegin-->Ahoy, ye scurvy sea dogs! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /><!--QuoteEnd--></div><!--QuoteEEnd-->

hiya dchaley, welcome! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/pirate2.gif" style="vertical-align:middle" emoid=":p:" border="0" alt="pirate2.gif" /> nice to have a "real live" coder among us <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" />

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->Now looking around a bit, I've noticed that this definitely isn't normal C.<!--QuoteEnd--></div><!--QuoteEEnd-->

ooooohhhh no it's not... <i>that</i> would just have been too easy <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" /> now where's that modding 'smilie' of cat's...

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->Also, how do you go about distributing mods? It seems that the common method is to post the source code `to-be`-added/modified? Is there a CVS server set up anywhere for the PMT Build? If one wants to make bug fixes or simply additions, how do you make that contribution?<!--QuoteEnd--></div><!--QuoteEEnd-->

well, the brief history of potc mods is:
  • in the beginning, people just used to post changes to the source code, or put the changed files up for download;
  • then viper made an automatic `search-and`-replace tool that automatically, erm, searched and replaced the source code (uses those ".potc" files that are still occasionally seen around);
  • then potc modding really exploded and hellangel released a pack with huge numbers of individual mods all in one download, to be installed as the user wished - of course it took a long while to install them all, plus the mods began to clash;
  • so nathan created a 'build' of potc with all the mods `pre-installed`, so the `end-user` just has to extract it into their potc directory - nathan constantly released new versions of the build with all the latest mods, up to build 10;
  • organisation of build 11 passed to the pmt (potc modding team, a team that is now working separately on a `long-term` modding project for potc);
  • and build 12, well, who knows... it's become sort of a pirates ahoy! project. nathan has just returned to us though <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" />
 
Welcome back, Nathan! I just about to put out a query on whereabouts. Glad to see you back.

Jason <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" />
 
Thanks for the info, Kieron. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> Does the PMT have a website for their other project?


Re the escaped characters... It seems that it doesn't matter if you put in two backslashes, and it fixes the syntax recognition. The file system code seems smart enough to not crash or anything.

So wherever I see " in my modding, I'm replacing it with ".

(I'm compulsive about this kind of thing. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/tongue.gif" style="vertical-align:middle" emoid=":blah:" border="0" alt="tongue.gif" /> )
 
<!--`QuoteBegin-dchaley`+--><div class='quotetop'>QUOTE(dchaley)</div><div class='quotemain'><!--QuoteEBegin-->Wow, thanks for the kind greetings and all the info!

Nathan, what you gave me was very interesting. It would seem that Akella's use of the name 'C' is somewhat of a misnomer; it looks a lot more like a form of scripted C or something.

<snip>

So... I'm off to do quicksave. Hopefully I'll have something in not too much time... how bout this, I won't play the game till I've finished it. That should be sufficient motivation.  :blah:[/quote]

Yeah. Let's call it cscript. (seascript?).

Re: n. That'd be my guess to. Although it may not even be there, but directly in the display to screen (i.e. it stays n in code). But that's de facto the same I'd think.

Re: strings and objects. Yeah, very strange. Though I'm a lazy enough beggar to not mind them for sure, and unskilled enough to not really be used to their lack. Ditto for pointers, though I at least twinge at where I want to put my &s in POTC. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />

But the whole idea of `objects-as`-`piles-of`-strings is indeed weird.
(Except when they're not, of course. See keywords.c for all the weird `object-handling` `engine-interface` stuff).

But the most important thing is, of course "In any case this looks like it'll be good fun." Great! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
 
Jason, CCC: Good to see you again too. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
dchaley: It interpretes ok? Great! That's a far better solution. Feel free to scrap the //qf" lines. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />

And re: CVS.
Good thread idea.
 
I'd say 'seascript', if anything to take advantage of a clever pun. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/pirate2.gif" style="vertical-align:middle" emoid=":p:" border="0" alt="pirate2.gif" />

I'll have to further develop my understanding of these objects. They're definitely not like anything I'm used to in other languages (i.e. C++/Java) so I'll have to make sure I don't have any false assumptions.

To be frank that's one of my biggest problems so far <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/oops3.gif" style="vertical-align:middle" emoid=":eek:ops2" border="0" alt="oops3.gif" /> I keep assuming 'oh, this is C, so I can do it this way' and then find out that it's not really C... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/no.gif" style="vertical-align:middle" emoid=":no" border="0" alt="no.gif" />

And yeah, it 'parses' ok, but I think what's really happening is that Windows is doing the parsing and knows that in a path is the same as . In fact, if you open up a dos prompt and type 'cd c:windows', it works. So it's probably the OS and not StormEngine that's doing the trick. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
 
Back
Top