#pentagram@irc.freenode.net logs for 23 Jun 2003 (GMT)

Archive Today Yesterday Tomorrow
Pentagram homepage

[00:25:04] <-- Dark-Star has left IRC ()
[00:46:38] --> Kirben has joined #pentagram
[00:46:38] --- ChanServ gives channel operator status to Kirben
[02:23:56] <-- DarkeZzz has left IRC (kornbluth.freenode.net irc.freenode.net)
[02:24:49] --> DarkeZzz has joined #pentagram
[07:05:19] --> wjp has joined #pentagram
[07:05:19] --- ChanServ gives channel operator status to wjp
[08:07:23] * DarkeZzz waves in a vague just-got-home-from-work way.
[08:13:16] --> creepto has joined #pentagram
[08:13:37] <creepto> hello
[08:14:14] <DarkeZzz> Hello.
[08:16:12] <creepto> DarkeZzz I was exploring and I sort of stumbled across pentagram website
[08:16:49] <creepto> can I ask a question about the website?
[08:17:02] <creepto> id like to know how you got the irc logs to display like that?
[08:17:28] <DarkeZzz> That's wjp's pet project. IIRC, it's a handmade perl script.
[08:17:32] --- DarkeZzz is now known as Darke
[08:17:35] --- ChanServ gives channel operator status to Darke
[08:17:57] <creepto> ok, yeah its pretty cool
[08:19:06] * Darke nodnods. Makes it much easier for us to communicate across timezones too.
[08:19:20] <creepto> i actually wouldnt mind a copy of the script if wjp(?) wouldnt mind sharing.
[08:20:30] --- wjp is now known as wjp|work
[08:20:46] <creepto> do you know if they have a spot on sourceforge for neat scripts that arent fully fledged programs?
[08:21:03] <Darke> Not that I know of, no.
[08:22:01] <creepto> wjp so how about it? =)
[08:22:10] <wjp|work> hm, kind of busy right now :-)
[08:22:20] <wjp|work> I'll put open-sourcing exultbot on my todo list :-)
[08:22:46] <creepto> oh i see, its an ircbot of some sort?
[08:22:51] <wjp|work> yes
[08:22:57] <creepto> very cool
[08:23:05] <wjp|work> just a simple perl script
[08:23:24] <creepto> but a useful one
[08:24:03] <creepto> ok, thanks anyway, maybe I'll stop back and bug you guys some other time.
[08:24:31] <creepto> hows work going on the pentagram engine anyhow?
[08:24:47] <wjp|work> it's progressing quite well
[08:25:02] <creepto> good to hear
[08:26:30] <-- creepto has left IRC (Remote closed the connection)
[10:04:47] <wjp|work> Darke: did you see the App::startup() changes, btw? Is it acceptable the way it is now?
[10:04:51] <wjp|work> (and does llc still work? :-) )
[10:06:07] <Darke> I saw the change, haven't had a chance to test it yet, and llc 'should' still work, with the changes I've got floating around in my local tree (and need to commit sometime). *grin*
[10:06:15] --> Cashman has joined #pentagram
[10:09:22] * Darke hmms... and pokes around. Maybe it will have a problem. Too early to know atm, must do some fiddling. *grin*
[10:11:50] <Cashman> hi
[10:12:08] <Darke> Hi.
[10:13:39] <Cashman> how are things
[10:13:51] <Cashman> I'm nearly on holiday - well practically anyways
[10:14:04] <Darke> ACTION added a 'logging' stream to Console he's not sure about now, though it seemed like a good idea at the time! *grin* It was basicly for dumping stuff to a text file (should it have been opened) that will never appear on the console, and could never be filtered by any of the normal limiting filters (MM_INFO, etc.). The principal was for critical stuff that the user didn't need to know about, but it'd be good idea to have a non-filterable stre
[10:15:12] <Darke> Things like usernames/passwords/bank account PINs, and such. *ahem* I mean, various checksums of files, etc, so we could check if they were corrupted, or detected incorrectly when a user reports an error.
[10:15:42] <Cashman> hehe
[10:45:41] <Cashman> hmm whats the new gamedir format! readme needs updating
[10:49:10] <Darke> README should be correct. I just checked it.
[10:52:14] * Darke wonders what happened with a shift in .au time in 1996 as detailed in the gettimeofday manpage. *puzzlement* He was still a young'n then so doesn't remember much.
[10:52:54] <Darke> s/1996/1986/
[11:00:41] <Cashman> <video>
[11:00:41] <Cashman> <fullscreen>
[11:00:41] <Cashman> yes
[11:00:41] <Cashman> </fullscreen>
[11:00:41] <Cashman> </video>
[11:00:41] <Cashman> didnt work
[11:03:15] <Cashman> hmm hehe I have to specify res dont i
[11:03:22] <Darke> Seems to work 'fine' for me.
[11:03:33] <Darke> You're sticking it inside the <config> tags, like everything else?
[11:04:45] <Cashman> yeah
[11:05:22] <Darke> Worked fine for me. Bit too bright and blocky for my preferences though. *grin*
[11:06:15] <Cashman> I dont need to specify res? does it default to 640x480?
[11:06:30] <Cashman> I can't remember what I had in my old config file
[11:06:48] <Darke> I don't specify it and it seems to work.
[11:06:52] <Darke> Yup.
[11:08:57] <Darke> Hmm... are you supposed to be able to 'light' things in a chest/bag/whatever? Such as oil flasks and/or candles? And should you also be able to put 'lit' items of such into a container without them snuffing out?
[11:09:28] <Cashman> <video>
[11:09:29] <Cashman> <fullscreen>
[11:09:29] <Cashman> yes
[11:09:29] <Cashman> </fullscreen>
[11:09:29] <Cashman> </video>
[11:09:32] <Cashman> didnt full screen
[11:09:46] <Cashman> put at the end of config after general
[11:09:53] <Darke> Does it work with fullscreen set to 'no'?
[11:10:20] <Cashman> still windows
[11:10:22] <Cashman> window
[11:10:49] <Cashman> I looked at guiapp.cpp to get the structure
[11:13:40] <Cashman> hmm depends on where I stick the code! I just stuck it at the beginning this time and it works
[11:13:42] <Cashman> ysay
[11:13:45] <Cashman> yay
[11:13:50] <Darke> Veird.
[11:14:09] <Darke> Mine's right at the end and it seems to work fine. Ah well.
[11:17:08] <Cashman> hmm
[11:17:25] <Cashman> oh do you want me to check if I can light oil flasks in gumps?
[11:21:20] * Cashman downloads ultima 8 midi files
[11:22:27] <Darke> Can't hurt. My windows box is still rather dead. *grin*
[11:24:06] <Cashman> man u8's midis sound fine with pci128
[11:25:30] * Cashman plays docks.mid
[11:25:38] <Cashman> ooowww
[11:25:55] <wjp|work> if it depends on where you put it, you probably put it inside another tag first
[11:26:08] <wjp|work> it definitely works at the end too
[11:27:04] <Cashman> hurr not for me
[11:27:19] <wjp|work> then you obviously misplaced the section
[11:27:33] <Cashman> ethereal plane aaah
[11:29:24] <wjp|work> no, putting the section in the ethereal plane won't work ;-)
[11:30:34] * Darke phases into the etheral plane. Hmm... it's quite comfy in here.
[11:30:57] <Cashman> hehe sorry hehe I'm playing the midi files wjp!
[11:31:03] <Cashman> getting into the spirit again
[11:31:19] <Cashman> fanfare
[11:31:21] <Cashman> yay
[11:31:42] <Cashman> quotes man I love that - its so cheesy!
[11:32:17] <Cashman> where there any plans on someday putting the pentagram team quotes into a seperate game quotes
[11:32:55] <wjp|work> yes
[11:33:18] <Cashman> that would be fun
[11:33:31] <Cashman> amusing for some of us to see
[11:34:01] * Darke grumps. Colourless is evil.
[11:34:27] <Cashman> tenebrae
[11:34:38] <Cashman> all nice tunes in pci128
[11:34:45] <wjp|work> any particular aspect of evilness? :-)
[11:34:52] <Cashman> hehe
[11:34:54] <wjp|work> or just evil in general?
[11:37:46] <Darke> wjp|work: Just generally evil. Though I'm more thinking quotes-evil atm. *grin*
[11:38:03] <Cashman> hehe
[12:10:54] --> Nadir has joined #pentagram
[12:11:05] <Nadir> hi
[12:14:52] <Darke> Hi.
[12:20:29] <Nadir> I just played a bit with Pentagram from CVS: great progress
[12:20:31] <Nadir> my congrats
[12:22:25] * Darke redirects any praise directed to him, to wjp (currently working) and Colourless (currently... somewhere else). He's not been doing much except supervising those two at the moment. *grin*
[12:22:43] <wjp|work> hi
[12:22:49] <wjp|work> thanks :-)
[12:23:41] --- wjp|work has changed the topic to: http://pentagram.sf.net/; CVS source snapshots temporarily at http://www.math.leidenuniv.nl/~wpalenst/cvs
[12:25:18] * wjp|work looks at exult mail
[12:25:30] <wjp|work> hm, need to remember to support swapping mouse buttons :-)
[12:26:31] <Darke> So is it a feature request, or a bug request? Pity there isn't a 'rememeber tracker'. *grin*
[12:26:52] <wjp|work> I'll just put it in the bug tracker
[12:27:26] <Nadir> What about the music engine ? Is Colourless doing that ?
[12:27:43] <wjp|work> I think he's been experimenting with that, yes
[12:28:01] <wjp|work> there are some #ifdef COLOURLESS_IS_TESTING_MUSIC in CVS currently, anyway :-)
[12:28:10] <Nadir> good
[12:28:26] <Nadir> can't have U8 without the cool music :)
[12:28:47] <wjp|work> we know the file format and when to play what, so it 'just' needs to be implemented
[12:28:49] * Darke snickers.
[12:31:31] <Cashman> but as colourless said its easy to implement for windows - darke thinks there wont be porting problems! whast the story?
[12:31:50] <wjp|work> there's no story really
[12:31:59] <wjp|work> Colourless uses Windows, so he will implement the Windows music code
[12:32:11] <wjp|work> Darke and I use Linux, so one of us will have to do the Linux code
[12:32:25] <Cashman> ok
[12:36:20] --- Cashman is now known as CashZzz
[12:36:39] <-- CashZzz has left IRC ()
[12:39:39] <Nadir> I think that Exult's music/sound playing code, after significant cleanup, can be factored out into a quite powerful library
[12:40:13] <Nadir> Especially the MIDI part, with stuff like the XMI support, FM/Adlib support, etc
[12:41:35] * Darke nods.
[12:45:06] <wjp|work> I think the linux midi backends need some work, though
[12:45:12] <wjp|work> (from what I remember.. haven't looked at them in a while)
[12:46:21] --> Cashman has joined #pentagram
[12:46:31] --- Cashman is now known as CashZzz
[12:51:08] * Darke yawns and slips off to sleep. Night!
[12:51:20] <-- CashZzz has left IRC ()
[12:51:29] --- Darke is now known as DarkeZzz
[12:54:26] <wjp|work> night
[13:08:04] * wjp|work chokes
[13:08:26] <wjp|work> in a C program:
[13:08:32] <wjp|work> int stdio_seekmark(struct stdio_mark *mark)
[13:08:32] <wjp|work> { return CC_stdio_seekmark__FP10stdio_mark(mark) != EOF; }
[13:08:42] <wjp|work> (yes, that's a manually mangled C++ function)
[13:35:56] --> Colourless has joined #Pentagram
[13:35:56] --- ChanServ gives channel operator status to Colourless
[13:36:23] <Colourless> hi
[13:45:26] <Nadir> hi
[13:45:47] <Nadir> Colourless: I'm waiting for sound support :)
[14:01:39] <Colourless> so i hear
[14:02:53] <Nadir> well I can't hear anything... :)
[14:03:05] <Nadir> are you porting the Exult stuff over ?
[14:03:20] <Colourless> yes pretty much so
[14:03:28] <wjp|work> hi
[14:03:28] <Colourless> but the interface will be slightly different
[14:05:08] * DarkeZzz suggests tossing random notes at the sound device whenever you get a 'play sound' intrinsic call, and throw a random bar or two of equally random notes when you get a 'play music' call, then claim you've got sound support and get on with more important things... like actually getting the Avatar to walk properly. *grin*
[14:05:48] * DarkeZzz returns to trying to do this 'sleep' stuff. *grin*
[14:05:49] <wjp|work> DarkeZzz: I think such an important thing as avatar walking should be left to you ;-)
[14:06:03] <wjp|work> I don't trust myself with it ;-)
[14:07:11] <DarkeZzz> wjp|work: Riiiight. Given the way I'm haphazardly implementing the compiler, by touching almost everything else in pentagram along the way, I might implement it as a side effect of implementing part of the compiler. But I wouldn't bet on it. *grin*
[14:08:09] * DarkeZzz has been meaning to get some of that 'focus' stuff... but he keeps getting distracted.
[14:08:25] <wjp|work> :-)
[14:08:47] <DarkeZzz> Like I've obviously gotten distracted from trying to sleep. *sigh* Goodnight again!
[14:09:03] <Colourless> :-)
[14:09:10] <wjp|work> night :-)
[14:09:32] <Nadir> bye
[14:39:31] <Colourless> wow, some of my missing cvs emails are appearing :-)
[14:39:32] <-- Kirben has left IRC ("System Meltdown")
[14:41:18] <-- Nadir has left IRC ("Client exiting")
[15:00:46] <-- wjp|work has left IRC ("bbl")
[15:34:16] --> wjp has joined #pentagram
[15:34:16] --- ChanServ gives channel operator status to wjp
[15:34:38] <wjp> hi again
[15:35:51] <Colourless> wb
[15:38:44] <wjp> hm, I just got some of your commit mails from saturday :-)
[15:41:37] <Colourless> so did i :-)
[17:43:04] * wjp ummmms
[17:43:09] <wjp> what is _this_?
[17:43:17] <wjp> take a look inside u8speech.001
[17:43:38] <Colourless> i don't have that :-)
[17:43:42] <wjp> oh
[17:43:55] <wjp> why not?
[17:44:03] <wjp> was it preinstalled on your cd version?
[17:44:16] <Colourless> i'll just check
[17:45:15] <Colourless> yes (uc cd)
[17:45:41] <Colourless> why, what about that?
[17:45:59] <wjp> http://www.math.leidenuniv.nl/~wpalenst/spot
[17:48:19] <wjp> it's in the all of them (english, french and german)
[17:48:47] <Colourless> odd
[17:49:23] <wjp> Rob Corell was one of the programmers, btw
[17:49:32] <wjp> and one of the english voice actors
[17:49:38] <wjp> (Apathas)
[17:50:50] <Colourless> anything else odd ?
[17:50:57] <wjp> no, just some flex files
[17:51:01] <Colourless> and why doesn't that get extracted?
[17:51:25] <wjp> probably because they only extracted the sound subdir or something
[17:51:35] <wjp> (spot was in the root of the archive, the flexes in a sound subdir)
[17:51:39] <wjp> brb
[17:52:19] <Colourless> want something else odd usecode class 1427 (BOOK1) offset 0x03C5
[17:54:59] <wjp> heh
[17:57:57] <wjp> hm, Quetzalcoatl was an Aztec god of something bad, wasn't he?
[17:59:37] <Colourless> no ifea
[17:59:41] <wjp> no, apparently of something not so bad :-)
[18:00:27] <wjp> god of civilization it seems
[18:01:15] <wjp> hm, the installer for the french/german speech packs is twice as big as the english one
[18:03:34] <wjp> I guess I'll put the speech pack into GameInfo too
[18:06:13] <Colourless> not required
[18:06:18] <Colourless> too inflexible if you do that
[18:06:29] <Colourless> speech works like this:
[18:07:01] <Colourless> x???.flx
[18:07:09] <wjp> x = lang, ??? = num
[18:07:18] <Colourless> where x is the language, and ??? is the shapenum of the
[18:07:34] <Colourless> item that will have it's barked text replaced with speech
[18:08:08] <wjp> 0.u8o contains the text to replace, I guess
[18:08:19] <Colourless> index 0 of the speech flexes contain all the replaceable text strings. the index of the text string then is the index of the speech to use
[18:08:35] <wjp> so can I detect the presence of e<numbers>.flx, f<numbers>.flx, g<numbers>.flx?
[18:09:26] <Colourless> you 'could' but i would almost be tempted to create a SpeechFlex manager to do the job
[18:09:27] <wjp> or just for the letter corresponding to the game language?
[18:10:12] <wjp> hm, it wouldn't replace any text for other languages, of course, nvm :-)
[18:10:21] <Colourless> basically you'd do something like SpeechFlexManager->GetSpeechFlex(int shapenum)
[18:10:51] <Colourless> speechflexmanage would then check (and cache) SpeechFlexes as required for the current language
[18:11:19] <Colourless> it 'could' be placed into GameData, but i don't know if that is the best place for it
[18:11:26] <wjp> ok, I guess it really isn't necessary to predetect it, other than for status/version info purposes
[18:13:47] <Colourless> what would probably be an idea would be to just check to see if any speech flexes exist at all
[18:13:51] <wjp> yes
[18:13:58] <Colourless> and remember, we need to decompress them before we can use them
[18:14:08] <Colourless> decompressing of course is too slow to be done at run time
[18:14:30] <Colourless> cue a use for the data dir :-)
[18:14:56] <wjp> was that the work dir? or was that for something else?
[18:15:39] <Colourless> yes work
[18:15:44] <Colourless> i meant work
[18:24:20] <wjp> how would the interface to 'preparing' the original datafiles look...
[18:24:47] <wjp> suppose we find some unprepared files (like speech flexes), but no corresponding converted files in work, ...
[18:25:05] <wjp> we'd need to inform the user that he's missing out on things, or that things simply won't work
[18:25:33] <Colourless> ask darke :-)
[18:25:41] <wjp> he'll read the logs :-)
[18:25:53] <Colourless> my idea would be convert everything first time, and complain if something is not right
[18:26:03] * wjp nods
[18:26:08] <wjp> that's what U8 did too, after all
[18:26:10] <Colourless> darkes idea afaik was if something's not right, correct it and go on
[18:26:25] <wjp> we should support converted files in both the work and the main game dir
[18:26:40] <wjp> converted files should have a different filename than the original files
[18:26:52] <Colourless> i... don't know :-)
[18:26:56] <Colourless> ideally yes
[18:27:00] <Colourless> however managing to do that.... :-)
[18:27:27] <wjp> what would be the problem?
[18:28:05] <Colourless> just a nice way of doing it
[18:28:22] <Colourless> how do you know where to read a data file from, if it could be in one of 2 places
[18:28:35] <Colourless> and which takes priority
[18:28:48] <Colourless> i guess work would, and you could just use an exists
[18:29:00] <wjp> yes, work would take priority, I guess
[18:29:14] <wjp> you could have GameData produce filenames for things
[18:29:30] <wjp> we need to distinguish between multiple possible filenames after all
[18:29:40] <Colourless> if it exists in work, use that, if not and it exists in the game dir, use that, if that doesn't exist convert that games data format to our format
[18:29:46] <wjp> e/f/g-usecode/intro/...
[18:29:53] <Colourless> that doesn't really work for speech and sfx though, they will need to be converted
[18:30:22] <Colourless> of course any custom speech for pentagram will not be converted
[18:30:33] <wjp> custom speech? :-)
[18:30:38] <Colourless> so we can 'code' in all the filenames for the sound files that need converting, if we need to
[18:31:04] <Colourless> hey, i have no plans of such thing, but the possibility will the their if someone wants to do it
[18:31:15] <wjp> sure, if we do things right it'll be easy to support
[18:31:55] <wjp> can you imagine pentagram reading out "bedroll" aloud when you click on it? :-)
[18:31:55] <Colourless> ultima 8 already sort of supports it, if sounds could be compressed to it's format :-)
[18:32:09] <Colourless> uh, it's possible :-)
[18:32:25] <Colourless> penatagram, for the visually impared :-)
[18:32:49] <wjp> we'd be better off improving the font :-)
[18:33:05] <Colourless> :-)
[18:41:30] <wjp> I'd also like to be able to work from the arj-ed cd version
[18:41:46] <Colourless> well, we need to be able to read arjs
[18:41:52] <wjp> there's a free/open source unarj that we can include with a bit of a (legal) hassle
[18:42:24] <wjp> we'd have to include a line in our license saying that we allow linking against whatever we produce from that unarj
[18:43:01] <wjp> (as long as that doesn't violate the license of unarj, which is basically that it can be used for free in anything that doesn't also produce arjs)
[18:43:23] <Colourless> i don't understand that comment?
[18:43:29] <Colourless> s/?//
[18:43:44] <wjp> the license for unarj says that you can use it for free, but only if you don't use it in an "archiver"
[18:43:44] <Colourless> what do you mean allow linking
[18:43:54] <wjp> which isn't compatible with the GPL
[18:44:07] <Colourless> define archiver
[18:44:18] <wjp> a program which can create and extract arjs
[18:44:22] <wjp> (specifically arjs)
[18:44:32] <wjp> flexes are fine :-)
[18:44:45] <Colourless> what about zips :-)
[18:45:16] <wjp> ah, the term used is "ARJ archiver"
[18:46:22] <Colourless> now, in what way can we around the gpl license
[18:46:36] <wjp> we can just add a small exception to our license
[18:46:58] <wjp> "As an exception, we allow you to link pentagram to <whatever unarj libary thingie we produce>"
[18:47:21] <Colourless> if i link to a lib, that lib does not need to be GPL (otherwise like everyone is screwed)
[18:47:47] <wjp> that's dynamic linking
[18:48:10] <Colourless> we 'could' make arj support an 'extension' to pentagram with a separate license. Just need to be absolutely sure that no code from pentagram gets into the unarj lib :-)
[18:48:33] <wjp> something like that
[18:48:54] <Colourless> the unarj lib would then have a separate license
[18:48:57] <wjp> yes
[18:49:06] <wjp> I'd say the same license which it has now
[18:49:14] <Colourless> yes exactly
[18:50:01] <Colourless> just have to be absolutely sure that it does not get contaminated
[18:50:22] <wjp> what would be contaminated by what?
[18:50:28] <Colourless> code FROM pentagram
[18:50:42] <Colourless> which would be GPL. Things like DataSource are even from Exult
[18:50:52] <wjp> well, didn't you write that?
[18:50:57] <Colourless> yes
[18:51:03] <wjp> so, you can do with it what you want :-)
[18:51:23] <Colourless> yes, but in the end, code might have been copied and pasted from somewhere else
[18:51:31] <wjp> yeah, true
[18:52:22] <wjp> to be safe, we should probably export a single function from unarj to pentagram: extract(arjfile, destination_path)
[18:52:37] <wjp> (use simple char* for passing the arguments, and a bool return value)
[18:53:03] <wjp> portable file reading code is already in unarj, so we shouldn't need to modify much
[18:53:26] <Colourless> i would think most of that stuff would already be in there
[18:54:19] <wjp> if we really want to we can just do: "changedir(target); main(2, { "-x", "arjfile.arj"} );" :-)
[18:54:30] <wjp> (or something...)
[18:54:39] <Colourless> hacks be us :-)
[18:54:57] <Colourless> though, it was something i was thinking of
[18:54:59] <Colourless> just call main :-)
[18:55:22] <Colourless> i take it the sources are in c
[18:55:25] <wjp> yes
[18:55:30] <wjp> let me look up the url
[18:55:50] <wjp> http://ibiblio.org/pub/Linux/utils/compress/
[18:55:54] <Colourless> should we make it a so/dll
[18:56:21] <wjp> nah, just link it statically, I guess
[18:57:08] <wjp> (otherwise we might as well call the binary unarj)
[18:57:26] <wjp> s/binary/executable/
[18:58:37] <Colourless> i'm just thinking that a static lib link is... only a small distinction between just straight compiling with it
[18:59:19] <wjp> true, but does that matter?
[18:59:36] <Colourless> no, i don't think so
[18:59:57] <wjp> on the pentagram side we can explicitly allow it as an exception to the GPL
[19:00:18] <wjp> on the unarj side it's fine as long as pentagram doesn't become an archiver
[19:01:15] <Colourless> and how would it become an archiver
[19:01:59] <wjp> well, it _could_ for some bizarre reason become one :-)
[19:03:28] <Colourless> i'm just thinking if only the interface functions were exported then there would be no chance
[19:03:56] <Colourless> with a dll this is implicit (you must specify the exports)
[19:04:15] <Colourless> for a static lib, it's not. normally all functions are linkable
[19:04:25] <Colourless> except if defined static :-)
[19:04:51] <Colourless> problem then is you can't define all function static in a multi source file program
[19:05:20] <wjp> why does it matter which functions are exported?
[19:06:10] <Colourless> cause they 'may' make it possible for pentagram to become a compiler
[19:06:17] * Colourless is just being paranoid btw :-)
[19:07:09] <wjp> well, you'd just need to include somewhere in the docs that you have to disable linking against libunarj should pentagram ever develop arj archiving capabilities
[19:07:27] <wjp> and make sure the build procedure makes it optional to link against it, not mandatory
[19:09:30] <Colourless> oh yay
[19:09:32] <Colourless> If you distribute this software to others, you are required to
[19:09:32] <Colourless> distribute the ENTIRE package consisting of the following files:
[19:09:47] <wjp> where's that?
[19:09:58] <Colourless> in unarj.txt
[19:11:14] <wjp> well, it would just go into a libunarj subdir, so it doesn't really matter
[19:11:50] <Colourless> where is the note about not making an archiver
[19:11:53] <wjp> I don't really get it, though; why the unarj.exe?
[19:11:54] <wjp> unarj.c
[19:14:19] <wjp> "If you distribute this software to others" <-- I wonder what exactly that means
[19:14:44] <wjp> later on it says you can distribute a modified version, so you don't need to distribute exactly the same files
[19:15:03] <Colourless> i read conflicting stuff all over the place
[19:15:38] <wjp> it looks like three separate licenses at times... one for unarj.exe, one for 'the software', and one for the sources
[19:16:10] <Colourless> yeah, possibly is
[19:16:36] <wjp> all this conflicting legalese isn't really a good way to get people to use your format :-)
[19:17:34] <wjp> "This code may be freely used in ..."; doesn't that mean we can use it freely, i.e., without restrictions
[19:17:48] <wjp> ?
[19:17:56] <Colourless> i take it as a yes
[19:17:57] <wjp> or does it mean we don't have to pay? :-)
[19:18:17] <wjp> generally the latter is phrased more explicitly, IIRC
[19:18:17] <Colourless> but i'm no lawyer
[19:18:40] <Colourless> and i don't think lawyers wrote all that crap too
[19:18:46] <wjp> I doubt it :-)
[19:21:58] <wjp> yes, freely is used in a different meaning than "without having to pay": "You may freely use [...] provided that no fee is charged for such use [...]"
[19:22:23] <wjp> no, nvm... I read that the wrong way :-)
[19:23:50] <Colourless> bah, it's not going to be a problem for *us* if we just link to a lib
[19:24:02] <Colourless> the Pentagram we code will not be an arj archiver
[19:24:16] <Colourless> and therefore that is not a problem for unarh
[19:24:36] <Colourless> if some other 'fool' decides to make it an arj archiver, well woe be them
[19:25:34] <wjp> yeah
[19:25:54] <wjp> and pentagram will still be 'Free', since it's GPL with an extra freedom (you can link against libunarj)
[19:27:32] <wjp> and I guess we can just distribute the unarj tar.gz... it's only 25Kb or so
[19:28:29] <Colourless> problem just will be, how to call it from pentagram. there isn't a defined api as far a i can tell
[19:29:08] <wjp> we'll also distribute a changed version ;-)
[19:29:25] <Colourless> or we could use creative linking
[19:29:49] --> Dark-Star has joined #pentagram
[19:31:07] <Colourless> s/linking/compiling/
[19:31:17] <Colourless> you know -Dmain=somethingelse
[19:31:20] <Colourless> :-)
[19:31:26] <wjp> :-)
[19:31:40] <Colourless> no changes to source required :-)
[19:32:42] <Colourless> make it something like -Dmain=unarj_main to make obvious
[19:40:55] <Dark-Star> hmmm ... there's a bug in the current CVS tarball ;-)
[19:41:12] <wjp> no doubt :-)
[19:41:55] <Dark-Star> uint32 MainActor::I_accumulate{Int,Dex,Str} does not return a value
[19:42:18] <wjp> that's not really a bug :-)
[19:42:38] <Dark-Star> hmmm a non-void function returning nothing? sounds much like a bug to me ...
[19:42:53] <wjp> the return value is never used
[19:42:59] <wjp> but I'll add a return 0; anyway :-)
[19:43:20] <Dark-Star> why not change it to void then?
[19:43:40] <wjp> it's an intrinsic
[19:43:51] <wjp> called from usecode, so it needs a standard form
[19:44:11] <wjp> (all I_ functions are intrinsics)
[19:50:33] <Colourless> the reason why they have to be the same, that wjp has explained is we use an array of function pointers
[19:50:48] <Colourless> s/has/hasn't/
[20:11:28] <wjp> hm...
[20:11:52] <wjp> we may have a problem after all... since we won't be strictly GPL anymore, we can't use other GPLed code
[20:13:03] <wjp> you know... all this stuff isn't worth the hassle :-)
[20:13:25] <Colourless> but how does GPL interact with libraries. libunarj is NOT pentagram, and it should strictly be stated that it is not pentagram
[20:13:47] <wjp> of course
[20:14:12] <Colourless> GPL doesn't forbid you from using a non GPL library. otherwise you could never have a GPL program running on windows
[20:14:16] <wjp> "You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License."
[20:15:18] <Colourless> must use dll or so then
[20:15:35] <Colourless> or the executable itself :-)
[20:15:38] <wjp> we can't even distribute it along with pentagram
[20:15:54] <wjp> we would save a lot of hassle by just using the executable, yes :-)
[20:18:15] <wjp> at times the GPL is really annoying
[20:19:34] <Colourless> gpl wouldn't be annoying if everything was gpl'd (gee, i wonder why gpl is worded like it is)
[20:19:44] <wjp> :-)
[20:19:57] <Colourless> even the FSF website doesn't hide the reasoning behind the GPL
[20:21:38] <Colourless> the problem in the end for GPL is it's license is annoying because the exact reason it's good (must be os and FREE) is also the reason it's bad (must be os and FREE) .
[20:25:28] <wjp> it looks like we could do this, but we'd have to distribute 'libunarj' separately
[20:25:55] <wjp> which sounds like too much work to me :-)
[20:26:04] <Colourless> which would then imply dynamic linking wouldn't it
[20:26:07] <wjp> yes
[20:26:59] <wjp> not sure if we could distribute a binary (dynamically) linked against it
[20:27:18] <wjp> probably...
[20:27:47] <Colourless> you would really have to.
[20:27:47] <wjp> but then we might as well use the executable
[20:28:00] <Colourless> (alloy dynamic that is)
[20:28:05] <Colourless> s/alloy/allow/
[20:29:25] <wjp> bah, this is proving to be quite a headache-inducing topic :-)
[20:29:36] <Colourless> one thing that i think of is. Direct3D's D3DX library. This is a set of utility functions for Direct3D. The interesting thing about it, is it's a statically linked library. Would anyone making a GPL program with D3DX be violating the GPL unintentionally
[20:31:58] <wjp> but d3dx has a very liberal license
[20:32:10] <Colourless> but no source
[20:32:21] <wjp> hm, no source?
[20:32:24] <Colourless> nope
[20:32:49] <Colourless> it's a staic library ONLY. released by MS as part of the DirectX SDK
[20:33:32] <wjp> is it "normally distributed with the major components of the operating system on which the executable runs" ?
[20:33:43] <Colourless> nope
[20:35:23] <wjp> it does sound like a problem then, yes
[20:37:15] <Colourless> ow, just reading the GPL FAQ, it is more restrictive than I thought
[20:37:57] <Colourless> basically, if it's Part of the same program (doesn't matter, statically linked or dynamically linked) it must use a compatible license
[20:39:27] <Colourless> If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?
[20:39:46] <Colourless> the answer to that question is rather.... interesting
[20:40:13] <Colourless> as it would technically imply to both exult and pentagrm
[20:40:21] <Colourless> extract:
[20:40:25] <Colourless> Another similar and very common case is to provide libraries with the interpreter which are themselves interpreted. For instance, Perl comes with many Perl modules, and a Java implementation comes with many Java classes. These libraries and the programs that call them are always dynamically linked together.
[20:40:25] <Colourless> A consequence is that if you choose to use GPL'd Perl modules or Java classes in your program, you must release the program in a GPL-compatible way, regardless of the license used in the Perl or Java interpreter that the combined Perl or Java program will run on.
[20:41:45] <Colourless> what does that mean for us? Any usecode written by us that in anyway interacts with the original game data must NOT be GPLd
[20:42:02] <Colourless> or more specifically 'should not'
[20:42:12] <wjp> yes
[20:42:16] <Colourless> cause it would cause 'issues' for running the original games
[20:42:32] * Colourless points at sourceforge island
[20:45:49] <wjp> did we gpl that?
[20:46:45] <Colourless> no :-)
[20:47:41] <Colourless> at least, if it is, it's not stated anywhere
[20:47:47] <Colourless> which is as good as isn't :-)
[20:49:19] <Colourless> ah ha. Here:
[20:49:23] <Colourless> I'd like to modify GPL-covered programs and link them with the portability libraries from Money Guzzler Inc. I cannot distribute the source code for these libraries, so any user who wanted to change these versions would have to obtained those libraries separately. Why doesn't the GPL permit this?
[20:49:41] <Colourless> D3DX therefore is not allowed
[20:50:21] <wjp> well, you're not allowed to use source from GPL code in a program linked against D3DX
[20:51:04] <wjp> The "I am writing free software that uses non-free libraries. What legal issues come up if I use the GPL?" is also relevant I think
[20:53:37] <wjp> ok, this FAQ pretty much convinced that we'd have to use a standalone unarj executable :-)
[20:53:46] <wjp> s/convinced/convinced me/
[20:53:55] <Colourless> me too
[21:10:38] <wjp> (and additionally that we should not distribute unarj together with pentagram, even standalone)
[21:29:12] <-- Colourless has left IRC ("hey wjp, don't you just love it that Ultima 8 doesn't have party members that we need to implement")
[22:42:32] <-- Dark-Star has left IRC (Read error: 104 (Connection reset by peer))
[22:48:05] <-- wjp has left IRC ("Zzzz....")