#exult@irc.freenode.net logs for 3 Sep 2001 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[07:53:32] <-- exultbot has left IRC (signing off...)
[07:54:35] --> exultbot has joined #exult
[08:01:40] --> wjp has joined #exult
[08:04:55] <-- wjp has left IRC ([x]chat)
[10:27:19] --> fingolfin has joined #exult
[10:30:02] --> Nadir has joined #exult
[10:30:08] <Nadir> b !
[10:31:42] <fingolfin> hi Nadir
[10:31:45] <fingolfin> long time no see ;)
[10:38:29] <Nadir> just come back from Jordan/Egypt
[10:39:54] <fingolfin> cool! how was it?
[10:40:23] <Nadir> great. Sightseeing in Jordan and diving in Sharm el Sheikh
[10:51:36] <Nadir> bbl
[10:51:37] <-- Nadir has left IRC (Pleasant dreams, Avatar... hehehehehe)
[11:11:53] --> Kirben has joined #exult
[11:13:55] <fingolfin> lo Kirben
[11:14:08] <Kirben> Hi
[12:03:54] --> EazyCheez has joined #exult
[12:07:58] --> Colourless has joined #Exult
[12:08:08] <Colourless> hi
[12:08:29] <fingolfin> hi
[12:12:39] <-- Colourless has left IRC (Ping timeout for Colourless[])
[12:13:17] --> Colourless has joined #Exult
[12:16:14] <EazyCheez> hey :)
[12:18:32] * EazyCheez is thinking of restoring an earlier saved game from BG and exploring all the caves :)
[12:21:51] <Kefka> morning all
[12:21:58] <Colourless> hi
[12:31:38] <Kefka> ok.. i am reading up on beginning programming.. and i have come to pointers
[12:31:38] <Kefka> controlled flood incoming (8 or 10 lines in parts)
[12:31:46] <Kefka> void main()
[12:31:46] <Kefka> {
[12:31:46] <Kefka> int *pt_int;
[12:31:46] <Kefka> float *pt_float;
[12:31:46] <Kefka> int pig = 7, dog = 27;
[12:32:14] <Kefka> float x = 1.2345, y = 32.14;
[12:32:14] <Kefka> void *general;
[12:32:14] <Kefka> pt_int = &pig;
[12:32:27] <Kefka> *pt_int += dog;
[12:32:29] <Kefka> cout << "Pig now has the value of " << *pt_int << "\n";
[12:32:29] <Kefka> general = pt_int;
[12:32:29] <Kefka> ok done
[12:33:00] <fingolfin> now what?
[12:33:03] <Colourless> yeah
[12:33:09] <Kefka> whats the point of using pointers?
[12:33:17] <fingolfin> to reference stuff indirectly
[12:33:20] <Colourless> hehe
[12:33:35] <Colourless> pointers are extremely useful
[12:33:36] <fingolfin> you use indirect reference whenever you talk, Kefka
[12:33:57] <Kefka> ok.. but why not just say that instead of doing all of that stuff
[12:33:59] <Colourless> in a situation like you used, it's not too useful
[12:34:06] <Kefka> oh
[12:34:16] <fingolfin> assume I want to tell you to ask Colourless instead of me... then I do pass you a "reference" to him, by using his name
[12:34:54] <Colourless> on the otherhand fingolfin could make a complete duplicate of me and give my duplicate to you (example if he wasn't using pointers)
[12:34:55] <fingolfin> normally, you reference any variable by its name, e.g. "pig" and "dog" in your example
[12:34:56] <Kefka> fingolfin: why wouldn't you ask him directly yourself?
[12:35:01] <fingolfin> ;)
[12:35:31] <Kefka> hmm.. this is confusing..
[12:35:39] <fingolfin> Kefka: let me try to give an example
[12:35:39] <Colourless> example where pointers are useful"
[12:35:50] <fingolfin> Kefka: afirst one in "real life"
[12:36:13] <fingolfin> Kefka: assume we have a support stuff for exult. Say wjp, Colourless and Dominus.
[12:36:16] --> Dominus has joined #exult
[12:36:26] <Dominus> hi
[12:36:27] <fingolfin> Kefka: now that list changes. Dominus stops doing support, but Kirben starts doing it
[12:36:38] <fingolfin> Kefka: I now have to tell *all* people about this
[12:36:39] <Kefka> ok
[12:36:54] <Dominus> aehm, fingolfin: sorry again for blaming you about the SI-sfx again :-)
[12:36:58] <fingolfin> Kefka: however, I am clever! I use indirection. So I make a web apge where I list support staff members.
[12:37:15] <fingolfin> Kefka: instead of giving ppl the list of support members, I point them to the webpage
[12:37:43] <fingolfin> Kefka: now when something changes, I only update the web page. Ppl notice it since they look at the web page when they want to contact ppl instead of contacting them directly
[12:37:46] <fingolfin> Kefka: got that?
[12:37:55] <Kefka> i am reading it a few times :)
[12:38:02] <Dominus> hehe
[12:38:03] <Kefka> trying to get it heh
[12:38:13] <fingolfin> Dominus: no problem about the SFX stuff ;)
[12:38:21] <Dominus> phew
[12:39:22] <Dominus> iīm going to clean up the bug tracker a bit (deleting savegames from closed bugs) anyone got objections? Colourless; fingolfin; Kirben?
[12:39:42] <Colourless> no objections
[12:39:58] <fingolfin> fine
[12:40:08] <Dominus> k
[12:40:55] <Colourless> Kefka: i've got an example of pointer usage in C++ and how they can be used. You'll need to compile it to see the difference
[12:41:00] <Colourless> void foo (int num)
[12:41:01] <Colourless> {
[12:41:01] <Colourless> num += 3;
[12:41:01] <Colourless> }
[12:41:01] <Colourless> void foo2 (int *num)
[12:41:01] <Colourless> {
[12:41:03] <Colourless> *num += 3;
[12:41:05] <Colourless> }
[12:41:07] <Colourless> int main (void)
[12:41:09] <Colourless> {
[12:41:11] <Colourless> int num = 0;
[12:41:13] <Colourless> cout << num << endl;
[12:41:15] <Colourless> foo (num);
[12:41:17] <Colourless> cout << num << endl;
[12:41:19] <Colourless> foo2 (&num);
[12:41:21] <Colourless> cout << num << endl;
[12:41:23] <Colourless> return 0;
[12:41:25] <Colourless> }
[12:41:56] <Colourless> the function foo will not change the value of num (in main), however function foo2, that uses a pointer will change the value of num (in main)
[12:42:06] <Kefka> fingolfin: so you are saying that if i used strict variables with no pointers, there are cases where i would have to change a multitude of variables if i changed a value in a single (important) variable?
[12:42:06] <Kefka> Colourless: ok cool, could you email to kefka810@yahoo.com
[12:42:06] <Kefka> i have a firewall up, negating dcc
[12:42:10] <Kefka> oh
[12:42:12] <Kefka> ok :)
[12:43:22] * Kefka is studying the code
[12:44:15] <fingolfin> Kefka: there are even things you cannot do without pointers, at least not easily
[12:44:30] <Dominus> wow, nice to see all those closed bugs that are just nonsense
[12:44:56] <fingolfin> Kefka: also note that arrays in C are just pointers in disguise (more or less ;)
[12:44:56] <fingolfin> Dominus: :)
[12:45:01] <Kefka> Colourless: so you are saying that pointers are really only of use when you have programs with mulitple functions?
[12:45:02] <Kefka> (which i know is every program)
[12:47:26] <Colourless> Kefka: not at all. Pointers are used when you need to allocate memory buffers
[12:47:26] <Colourless> you could write a program in a single function, and without using pointers it would be pretty difficult (as hard as writing a single function program is)
[12:47:27] <Kefka> ok
[12:48:00] <Kefka> output would be 0, 0, 3 then?
[12:48:03] <Colourless> yep
[12:49:38] <Kefka> so if i want to modify a variable by using an external function, i have to pass a referenced variable to that function and, within that function, modify the pointer to that variable?
[12:51:18] <Colourless> yeah, pretty much.
[12:52:35] <Kefka> Colourless: in that code up there, wouldn't there have to be a int *num; line?
[12:52:46] <Kefka> to declare *num
[12:53:54] <Colourless> ummm no. where do you think it should be
[12:53:58] <fingolfin> Kefka: * is an operator
[12:53:59] <Kefka> it should be um
[12:54:19] <fingolfin> Kefka: like you can write -x you can write *x and &x, those are all unary operators with differen meanings
[12:54:58] <Kefka> so *variable and variable are the same variable?
[12:55:05] <fingolfin> Kefka: "-" calculates the inverse of an integer (10 vs. -10). * dereferences a pointer, and & returns a pointer (e.g. &x is a pointer pointing at x)
[12:55:12] <fingolfin> Kefka: no
[12:55:36] <Colourless> no no no :)
[12:55:48] <Kefka> argh!
[12:55:48] <Colourless> consider this:
[12:55:55] <Colourless> int *pointer;
[12:55:58] <Colourless> pointer += 3;
[12:56:30] <Colourless> *pointer += 3;
[12:56:30] <Colourless> those are VERY DIFFERENT!
[12:56:47] <Kefka> ok, but how are they related?
[12:57:23] <fingolfin> erhm
[12:57:29] <fingolfin> Kefka: look at them. both actions are very similiar, except for the *
[12:57:30] <fingolfin> Kefka: this * makes a big difference
[12:57:48] <Kefka> ok
[12:57:48] <Kefka> so i have those 3 lines
[12:57:51] <fingolfin> Kefka: pointer +=3; - this will take the variable "pointer" and change its value
[12:57:56] <Kefka> now i type: cout << pointer;
[12:58:01] <Kefka> then cout << *pointer;
[12:58:11] <Kefka> what is the output?
[12:58:27] <Kefka> fingolfin: ok
[12:58:27] <Colourless> a crash :)
[12:58:27] <fingolfin> Kefka: *pointer += 3; - this will increment the variable that 'pointer' points at
[12:58:53] <fingolfin> Kefka: it will crash, since you did not init pointer, hence it points into nirvana
[12:59:05] <fingolfin> Kefka: actually, already the *pointer+=3; might crash ;)
[12:59:37] <Kefka> ok here:
[12:59:59] <Kefka> int pointer = 5;
[13:00:13] <Kefka> pointer +3 3;
[13:00:21] <Kefka> er
[13:00:22] <Kefka> bah
[13:00:41] <Kefka> int pointer = 5;
[13:00:52] <Kefka> pointer += 3;
[13:01:00] <Kefka> *pointer += 3;
[13:01:16] <Kefka> cout << pointer;
[13:01:22] <Kefka> cout << *pointer;
[13:01:25] <Kefka> now what happens?
[13:01:29] <Colourless> that could cause compiler errors
[13:01:40] <Colourless> :)
[13:01:47] <Colourless> i mean WOULD cause compiler errors
[13:02:24] <Dominus> Colourless: can you check the Documentation section 3.3. windows midi devices if that makes sense to you as well?
[13:02:36] <Colourless> dominus: yeah sure
[13:02:47] <fingolfin> Kefka: you can only apply * to pointers
[13:02:55] <fingolfin> int *pointer;
[13:03:05] <fingolfin> this declares a pointer to an integer variable, but:
[13:03:10] <fingolfin> int variable;
[13:03:13] <Colourless> Kefka: do you know what arrays are?
[13:03:18] <fingolfin> this is just a simple integer variable
[13:03:30] <Kefka> arrays are a string of characters
[13:03:46] <Colourless> arrays can actually be of any type
[13:03:54] <Colourless> but that doesn't really matter for now.
[13:04:08] <Colourless> so, do you know how access array members?
[13:04:34] <Kefka> no, but i know it has to do with the * thing :)
[13:04:45] <Kefka> i know this much:
[13:05:02] <Kefka> you use the [50]
[13:05:30] <Kefka> which would correspond to 50 letters right?
[13:05:50] <Kefka> to get one of those, i would just cout its place within the 50
[13:06:11] <Colourless> yes, that is pretty much correct
[13:06:38] <Colourless> i'll give you an example of arrays and how they relate to pointers (in C/C++)
[13:06:50] <Kefka> ok
[13:16:50] <Colourless> this is kind of large so give me your email address
[13:17:07] <Kefka> kefka810@yahoo.com
[13:19:01] <Colourless> sent
[13:21:01] <Kefka> ok thank you
[13:22:49] <Kefka> why did you define the array to hold [10] when you only used 8 letters? does that have something to do with the null terminator?
[13:23:12] <Kefka> er 7 letters, not 8
[13:23:22] <-- EazyCheez has left IRC (Read error to EazyCheez[cx835488-a.pnscla1.fl.home.com]: Connection reset by peer)
[13:24:07] <Colourless> null terminator requires 1 letter. The array originally had more characters, but I removed them
[13:24:21] <Colourless> i didn't bother resizing the array
[13:24:44] <Kefka> Colourless: ok, so if the size needed by the array you typed would be
[13:24:51] --> EazyCheez has joined #exult
[13:24:58] <Kefka> [8] (7 letter and the null terminator_
[13:25:02] <Kefka> right?
[13:25:05] <Dominus> bah, sourceforge will wonder why their drives have so much space left now
[13:25:15] <Colourless> yep
[13:25:28] <Kefka> cool, ok
[13:25:56] <Kefka> also, a question, why do you use endl instead of \n?
[13:26:08] <Kefka> er "\n"
[13:26:27] <Colourless> endl is the 'proper' way to do it
[13:26:57] <Kefka> ok, i'll make a note of that (does that require including any other .h file besides iostream.h?
[13:27:17] <Kefka> or is it actually in the language itself?
[13:27:25] <Colourless> no
[13:27:40] <Colourless> it's defined in iostream from memory
[13:27:53] <Kefka> ok
[13:29:44] <fingolfin> endl is used because line ends are different on different OSīs
[13:29:50] <fingolfin> on MacOS it is \r not \n
[13:30:00] <fingolfin> using std::endl ensures you always get what you want
[13:30:09] <Kefka> the ONLY way to get values from inside an array is by pointers then right?
[13:30:36] <Kefka> fingolfin: ah.. portability is good
[13:31:00] <fingolfin> Kefka: esp. in apps like exult... ;)
[13:31:05] <Kefka> :)
[13:31:15] <Colourless> Kefka: no, you can use the same operators in arrays as pointers
[13:31:24] <Colourless> s/in/on/
[13:31:46] <fingolfin> both * and [] are used to dereference pointrs, in fact
[13:31:59] <Colourless> of course, using +, +=, ++, -, -=, -- on arrays is a bad idea
[13:32:02] <fingolfin> pointer[6] is equivalent to *(pointer+6)
[13:32:02] <Kefka> so could i do this?:
[13:32:12] <Kefka> char array[10] = "abcdefg";
[13:32:35] <fingolfin> Iīd rather do
[13:32:38] <Kefka> char pointer = array;
[13:32:42] <fingolfin> char array[] = "abcddefg";
[13:32:46] <fingolfin> no
[13:32:47] <fingolfin> but you can do
[13:32:52] <fingolfin> char *pointer = array;
[13:32:55] <fingolfin> or you can do
[13:32:58] <Kefka> cout << pointer[4];
[13:33:03] <fingolfin> char aChar = array[0];
[13:33:11] <fingolfin> which would set aChar to 'a'
[13:34:04] <Kefka> ok, colourless's example used the char *pointer = array;
[13:34:13] <Kefka> ah
[13:34:16] <Kefka> i get it
[13:34:24] <Kefka> the advantage of using the *pointer
[13:34:32] <Kefka> is that you don't have to init another variable
[13:34:48] <Kefka> to output [0]
[13:34:56] <Kefka> is that right?
[13:35:10] <Colourless> no.
[13:35:17] <Colourless> in my example you could do either
[13:35:21] * Kefka sighs..
[13:35:24] <Colourless> cout << array[0] << endl;
[13:35:31] <Colourless> or
[13:35:34] <Colourless> cout << pointer[0] << endl;
[13:36:03] <Colourless> of course, you will see some differences in the output depending on where you put it
[13:36:44] <Colourless> for instance you put that after "pointer += 1;" they will give difference results
[13:36:59] <Kefka> ok.. so why bother using the pointer then?
[13:37:02] <Colourless> pointer[0] will give you 'b' while array[0] will still give you 'a'
[13:37:17] <Kefka> ohh
[13:37:56] <Kefka> so by using pointers, you are basically giving yourself a copy of the variable to play around with as you please
[13:38:02] <Colourless> yeah
[13:38:08] <Kefka> yet you can always go back to the original value?
[13:38:17] <Kefka> ah...
[13:38:21] <Kefka> that makes sense
[13:38:36] <Colourless> kindof. if you modify a dereferenced pointer you modify the original
[13:38:39] <Colourless> such as
[13:38:44] <Colourless> pointer += 1;
[13:39:02] <Colourless> cout << array[0] << endl; // 'a'
[13:39:16] <Colourless> cout << pointer[0] << endl; // 'b'
[13:39:31] <Colourless> cout << array[1] << endl; // 'b'
[13:39:44] <Colourless> pointer[0] = 'Q';
[13:39:47] <-- Kirben has left IRC (System Meltdown)
[13:40:03] <Colourless> cout << pointer[0] << endl; // 'Q'
[13:40:13] <Colourless> cout << array[1] << endl; // 'Q'
[13:41:42] <Kefka> ok what would
[13:41:57] <Kefka> cout << array[0] << endl;
[13:42:07] <Colourless> that would still be 'a'
[13:42:09] <Kefka> output now that pointer[0] = 'Q';
[13:42:19] <Kefka> ok
[13:43:05] <Colourless> you could also assign a value to a member of the array, and it also effect the pointer
[13:43:08] <Colourless> such as:
[13:43:15] <Colourless> array[2] = 'h';
[13:43:32] <Colourless> that would make pointer[1] also equal 'h'
[13:44:01] <Colourless> pointer are in effect variable that contain memory locations.
[13:45:13] <Colourless> the * operator returns the value at that memory location
[13:45:26] <Colourless> the & operator returns the memory location of a variable
[13:45:30] <Kefka> hmm
[13:46:30] <Kefka> why would you want to know the memory location?
[13:46:41] <Kefka> i would think the value would only be important
[13:48:23] <Kefka> i will be back in about 20 minutes.. mom is yelling at me about breakfast getting cold.. i will review everything we have talked about here, then practice them a bit
[13:48:30] <Colourless> ok
[13:48:48] <Kefka> then try to come up with a program to write using pointers and arrays
[13:48:52] <Kefka> thank you
[13:52:20] <Colourless> knowing the memory location (in other words using a pointer) allows you to pass data between functions without actually passing that data. It also allows you to modify that data and it will effect the calling function, and every other function that also has a pointer to that memory.
[14:14:18] <Dominus> enough is enough now - bugs are checked to about march 2001 for attached stuff. Sorry again for the flood of "noreply@sourceforge.net" mails
[14:14:55] <Colourless> :)
[14:24:08] <-- Colourless has left IRC (Ping timeout for Colourless[ppp428.adelaide.on.net.au])
[14:27:11] --> Colourless has joined #Exult
[14:37:04] <EazyCheez> did y'all get a chance to look at my major plot-breaker of a bug? :)
[14:37:17] <Dominus> argh
[14:38:51] <EazyCheez> I know I'm gonna be patient, I'm not gonna nag you
[14:39:27] <Colourless> there's a bug... in Exult.... :)
[14:40:23] <EazyCheez> hehe
[14:40:34] <Dominus> I saw one or two users on the forum mention one or two bugs lately. I wonder how that could happen :-)
[14:40:56] <EazyCheez> hehe
[14:41:02] <fingolfin> that is impossible! exult is 100% bug free
[14:41:10] <Colourless> i'm sure they are just making it all up
[14:41:28] <Dominus> it's a conspiracy
[14:41:35] <Colourless> yes.
[14:42:01] <Colourless> I say we release Exult 1.0 Final and say to hell with them ;-)
[14:42:12] <Dominus> :-)
[14:42:24] <EazyCheez> bahahah
[14:42:31] <Colourless> it's not like we are being PAID for this
[14:42:43] * fingolfin is amazed to see how many Forum reports are made by ppl using the MacOS (X) version
[14:42:51] <Colourless> you can't expect us to be perfect :
[14:42:52] <fingolfin> Colourless: wait, we are not being PAID????
[14:42:52] <Colourless> )
[14:43:04] <fingolfin> darn, that explains why I didnīt get money in the last couple of month
[14:43:11] <Colourless> :)
[14:43:25] <Dominus> I just had an idea. Letīs compile a version 0.4 again and post it under a strange name as the final version on a geocities account
[14:43:35] --> Nadir has joined #exult
[14:43:37] * Dominus feels evil
[14:43:46] <Nadir> evil Dominus !!
[14:43:49] <Colourless> no use a 0.25
[14:44:03] --> wjp has joined #exult
[14:44:08] <wjp> wow, what a crowd
[14:44:09] <wjp> hi
[14:44:12] <Dominus> hi
[14:44:22] <Colourless> what's going on here.
[14:44:25] <Nadir> USECODE !
[14:44:30] * Nadir tries to summon jeff
[14:44:31] <Colourless> next thing we know, Jeff will join
[14:44:35] <Colourless> damn you
[14:45:20] <Colourless> btw, hello Nadir, hello WJP
[14:45:55] * Nadir is back !!!
[14:46:30] <Dominus> hmm, there seems to be something wrong with the mailing list. My posts donīt get auto-formated anymore with the field "repl-to: exultgeneral..."
[14:47:05] * Nadir reads todays logs
[14:47:07] <wjp> hmm, now that you mention it, the last one indeed doesn't have it
[14:47:17] <Colourless> no it doesn't
[14:47:49] <Dominus> can someone post a test message to see if I screwed something up on my endß
[14:47:51] <Dominus> ?
[14:47:54] <Colourless> that is why my reply to a email from dom didn't come back to ne
[14:48:01] <Dominus> yep
[14:48:19] <wjp> I wonder who changed that setting
[14:48:29] <Nadir> Colourless: I think we should release 1.1 straight away (point-oh releases are usually buggy, and we have Zarro-Boogs)
[14:48:41] <Dominus> :-)
[14:48:45] <Colourless> heh
[14:49:02] <Nadir> :)
[14:49:13] <Colourless> or we should just keep releasing alphas and beta's till we run out of numbers below 1
[14:49:22] <Colourless> and are forced to release 1.0
[14:49:31] <Dominus> how could we ever run out?
[14:49:35] <Nadir> You can never run out of numbers below 1 :)
[14:49:40] <Nadir> 0.999999999999999999999999999999999999999999999
[14:49:42] <Colourless> you know what I meant
[14:49:54] <Dominus> :-)
[14:49:57] <Colourless> hehe, i'm sure everyone would like a version number like that :
[14:49:57] <Colourless> )
[14:50:11] <wjp> exult version, right :-)
[14:50:25] <Dominus> "please state whic version of Exult you are using"
[14:50:26] <Colourless> Message on Forum: Bugs in Exult Version 0.9999999999999999. Beta 23526
[14:50:52] <wjp> reply: no... we fixed those in 0.9999999999999999. Beta 18573
[14:50:56] <Nadir> or like the linux kernel: 2.3.99beta1pre4alpha6
[14:51:25] <Dominus> ah, thatīs the old version allready use 0.9999999999999999. Beta 34637
[14:52:24] <Dominus> we could become the most liked project very fast
[14:53:39] <Nadir> I like Latex release numbers
[14:53:48] <wjp> 3.14156 :-)
[14:53:48] <Nadir> s/Latex/LaTeX
[14:55:43] <wjp> hmm, who filled up the bug tracker? :-)
[14:56:06] * Dominus whistles innocently
[14:56:44] <Colourless> bah, just mark 'em all invalid and announce we are finished :)
[14:56:55] <Nadir> WORKSFORME
[14:57:16] <wjp> just blame everything on driver issues :-)
[14:57:25] <Dominus> hehe
[14:57:25] <Colourless> and bugs in operating systems :)
[14:58:20] <Nadir> Hey, Exult is slow on my system when I run at 800x600x2 with the SuperEagle scaler !!! :)
[14:58:29] <Dominus> as of now we no longer support Win32, Mac OS, OSX, Solaris, BeOS, Linux, Unix, Amiga, C64, DOS
[14:58:33] <Colourless> what speed CPU?
[14:58:40] <Colourless> :)
[14:58:52] <Nadir> Overclocked Celeron 2Ghz
[14:59:00] <wjp> or a 486sx25 :-)
[14:59:14] <Nadir> I also have a Vortex sound card, could that be a problem ?
[14:59:40] <Colourless> yes, you'll need to buy an entire new system just to fix that problem
[14:59:51] <Nadir> Can't I just change the keyboard ?
[15:00:04] <Dominus> As of now we no longer support systems that have less than 2.5GHz (or similar)
[15:00:50] <Colourless> 2.5GHz what? RAMDAC? memory? sound quality????
[15:00:53] <Nadir> Someone should do a port to Linux/390
[15:00:59] <Dominus> and you need at least 1G of RAM
[15:01:01] <Colourless> CPU???
[15:01:18] <Dominus> CPU!
[15:01:24] <wjp> frequency of your PSU, obviously
[15:01:40] <wjp> 50Hz is nowhere near enough for a high-tech program like exult ;-)
[15:01:47] <Colourless> hehe
[15:01:51] <Nadir> Move to the US
[15:01:53] <Nadir> :)
[15:01:56] --> Waz has joined #exult
[15:02:04] <Nadir> half the volts, 20% more Hz
[15:02:07] <Colourless> we need the CPU to be synced to the power supply
[15:02:34] <Colourless> and no wacky multipilers either
[15:03:03] <Nadir> a "multipiler" sounds very painful !
[15:03:05] <Dominus> oh, and I forgot to mention you can only play Exult online
[15:03:44] <Nadir> colourless: what is this new Super 2xSaI scaler we have now ?
[15:04:11] <Colourless> it's an inproved 2xSaI scaler. Less blurry
[15:04:15] <Nadir> speed ?
[15:04:32] <Colourless> s/inproved/improved/
[15:04:35] <Colourless> probably slower
[15:04:39] <Dominus> but not as "unblurry" as SuperEagle
[15:04:51] <Nadir> supereagle is the slowest, though
[15:05:12] <Dominus> aeh, I meant Supereagle is still best looking IMO
[15:05:24] <Colourless> you'd have to ask Derek about the difference between the 3 of them
[15:05:54] <Nadir> I would like to try integrating Derek's MMX version of 2xSaI in Exult
[15:06:09] * Dominus nods
[15:06:29] <Colourless> yeah
[15:06:40] <Colourless> but he said it's 16 bit only
[15:06:46] <Nadir> ah
[15:07:24] <fingolfin> hmm... is it possible to optimize derekīs code somewhat anyway? didnīt look much at it
[15:07:30] <fingolfin> asm versions sure would be nice
[15:07:43] <Nadir> agreed
[15:07:52] <Nadir> fingolfin: how's your PowerPC asm ?
[15:08:09] <Colourless> i would imagine that it would still be possible to use it though, but we'd only be able to use it in 16 bit modes, the non mmx version would be used in 32bpp mode.
[15:09:01] <Dominus> yeah, wouldnīt mind to have the 16bit version in it
[15:09:11] <fingolfin> Nadir: rusty ;) though I might be able to get Yorick, the SDL ASM *GOD* to help me ;)
[15:09:13] <Colourless> derek also said the mmx versions don't have bounds checking
[15:09:27] <fingolfin> Colourless: sounds bad
[15:09:37] <fingolfin> thought it is faster I bet ;)
[15:09:41] <Colourless> a simple way around that is to render to an oversized buffer
[15:10:04] <Colourless> and have a guardband
[15:10:22] <Nadir> how do they support asm in SDL (wrt multiplatform support ?)
[15:10:34] <Nadir> do they use gcc's asm ?
[15:10:41] <fingolfin> c versions of all the stuff
[15:10:56] <fingolfin> asm only compiled in optionally
[15:11:01] <fingolfin> and I am not sure what asm they use
[15:11:35] <fingolfin> gas is very very bad, though, it uses completly non-standard mnomics
[15:11:37] <EazyCheez> nadir!
[15:11:47] <Nadir> eazycheez ?
[15:11:53] <EazyCheez> first time I've seen you here
[15:12:12] <Dominus> ?logs
[15:12:12] <exultbot> Logs are available at http://www.math.leidenuniv.nl/~wpalenst/exultlog.php3
[15:12:24] <Nadir> I was on holiday, but I've been here many times before :)
[15:12:28] <EazyCheez> you do the intro, ending, menus and all that
[15:12:47] <Colourless> well, i did most of the SI intro and BG ending :
[15:12:47] <Colourless> )
[15:12:53] * Dominus notices that EazyCheez did his ork
[15:13:10] <Dominus> oops
[15:13:17] <Dominus> ork = homework
[15:13:20] <Nadir> I wrote the flic player and the menu code mostly. Others finished my work
[15:13:22] <Waz> lol
[15:13:34] <Colourless> geeze dom, that's a massive 'typo'
[15:13:52] <EazyCheez> yeah like, what the heck is ork...
[15:14:02] <Waz> orc
[15:14:05] <Waz> }:>
[15:14:07] <Waz> troll
[15:14:16] <EazyCheez> ahhh
[15:14:18] <Dominus> donīt know how that could have happened
[15:14:27] <EazyCheez> Grorduk!
[15:14:33] <Colourless> i kind of severly modified the flic player
[15:14:35] <Nadir> EazyCheez: the ChangeLog shows who does what
[15:14:52] <EazyCheez> What joo wanna kill?
[15:14:59] <EazyCheez> I got axe for you!
[15:15:02] <EazyCheez> and stuff
[15:16:25] <Nadir> colourless: you implemented frame-by-frame playing, as I recall
[15:16:39] <Colourless> yeah
[15:17:02] <EazyCheez> what other way would there be?
[15:17:06] <Colourless> it was so I could put text over the flic
[15:17:15] <Waz> why not extract the data from the shapes files and interpolate them and not use a scaler?
[15:17:42] <Nadir> waz: you can't interpolate single shapes and expect them to look good together
[15:18:07] <Dominus> the law of open projects: who asks for a new feature has to do it
[15:18:08] <Nadir> real-time interpolation is the only way to go for us really
[15:18:11] <wjp> unless you tidy the edges manually, I guess
[15:18:14] <Waz> so it has to be done in 'real time' with the compleate frame before its displayed.. ok
[15:18:31] <Colourless> yeah
[15:18:41] <Colourless> 8 bit palette also causes problems
[15:19:37] <EazyCheez> BATLIN! In the very likely event that Ultima VII is unable to run in Windows... I COMMAND YOU to make an open source interpreter for the data files. Then I shall burst forth in high-res glory!
[15:19:39] <EazyCheez> hehe
[15:19:41] <Colourless> we'd need to 16 bit source art and rendering modes if we were to use prescaled art.
[15:20:04] <Waz> well make the graphics vector instead of rastor.. :)
[15:20:12] <Waz> j/k
[15:20:21] <Colourless> well, polygons would be nicer :)
[15:20:50] <Colourless> of course, don't mention such things on the forum :)
[15:20:58] <Waz> never
[15:21:22] <Colourless> you might cause a massive arguement over 'New Features' ;-)
[15:21:22] <Nadir> wjp: doctor the logs and remove colourless' blasphemy
[15:21:44] <EazyCheez> heheeh
[15:22:07] <Nadir> that forum was a bad idea. When jackchaos died we should have let it go with it :)
[15:22:28] <Colourless> oh come on, it's not that bad :)
[15:22:47] <Dominus> It is after all a good source for bugs
[15:22:56] <Colourless> THERE ARE NO BUGS!
[15:23:12] <Nadir> ZARRO BOOGS !
[15:23:13] <Colourless> correction: yes the forum was a bad idea ;-)
[15:23:23] <Dominus> though you have to go into the game yourself and check on them as no one cares to do proper bug reporting
[15:23:48] <Nadir> We're too good. We should just ignore such "bug reports"
[15:24:32] <Waz> i'm still fuzzy why the shapes can't be interpolated first, then drawn later as needed?
[15:25:10] <Colourless> wouldn't look as good, would require lots of space for storage, would require big rewrite of exult to impliment
[15:25:28] <Dominus> not to mention copyright stuff
[15:25:57] <wjp> didn't that other u7 recreation project do preprocessing of shapes?
[15:25:57] <Nadir> because edges need to be interpolated with neighboring pixels
[15:26:04] <Colourless> on the other hand, it would allow for hand drawn scaled shapes (such as text) and would allow us to have better transparency
[15:26:25] <Nadir> the best is to have 16bit shapes with an alpha channel
[15:26:38] <Colourless> best bet is 32 bit shapes :)
[15:26:50] <Waz> isn't, say a tree, just ..'slaped' on to the frame at the rightspot. if you do that with the original artwork, can't you do it with a interpolated picture?
[15:26:51] <Nadir> RGBA
[15:27:17] <Waz> nadir: i see now
[15:28:18] <Waz> sounds like anti-aliasing the screen.. uhg..
[15:28:31] <Colourless> it kind of is
[15:28:32] <Nadir> that's what the advanced scalers do.
[15:29:26] <Nadir> how would you reduce graininess without some kind of antialiasing otherwise ?
[15:30:04] <Waz> can you store outlines and shapes?
[15:30:09] <Waz> and = as
[15:30:27] <Waz> no.. to much of a pain..
[15:30:40] <Nadir> read Derek's page at http://members.nbci.com/derek_liauw/
[15:34:48] <Waz> ok.. what iwas thinking of would still keep those black lines between shapes. I see that you (2nd person) wanted to remove the black lines with the scaler...
[15:35:49] <Colourless> of course they would stay
[15:37:31] <Waz> if the black lines stay, then why work about interpolating between shapes? (yeah, i'm reading the http page)
[15:38:17] <Nadir> not all shapes have black lines
[15:38:30] <Waz> doh!
[15:38:50] <Colourless> You'll also still get aliasing between the shapes
[15:38:54] <Waz> *grabs a Sharpie* i'll give em blakc lines!
[15:39:06] <Nadir> even the 8x8 tiles :)
[15:40:10] <Waz> what about having a seperate, high res shapes fiel. (it is shapes.vga, no?)
[15:40:49] <Waz> i'm just speculating.. not suggesting.. its just a academic problem to me.. :)
[15:46:03] <Nadir> gotta go. bye
[15:46:07] <-- Nadir has left IRC (Read error to Nadir[]: Connection reset by peer)
[15:46:49] <Waz> tiles eh?
[15:47:11] * Waz needs toread up more on how the 'shapes' are done...
[15:48:23] <-- Waz has left IRC ()
[16:09:06] <Kefka> gah...
[16:09:41] <Kefka> #include <iostream.h>
[16:09:41] <Kefka> #include <stdlib.h>
[16:09:41] <Kefka> void main()
[16:09:41] <Kefka> {
[16:09:41] <Kefka> int tvar = 122
[16:09:42] <Kefka> cout << tvar << endl;
[16:09:44] <Kefka> cout << "This is tvar!" << endl;
[16:09:46] <Kefka> }
[16:09:50] <Kefka> thats errors out heh
[16:09:55] <Kefka> that*
[16:10:07] <Kefka> er
[16:10:28] <wjp> you missed a semicolon after int tvar=122
[16:10:33] <Kefka> the int line has a semi
[16:10:45] <Kefka> i duno why it didn't show up
[16:10:50] <Kefka> when i pasted
[16:10:57] <wjp> apart from that you're mixing C and C++, but that shouldn't really matter
[16:11:06] <Kefka> ain.cpp:5: return type for `main' changed to `int'
[16:11:12] <wjp> what compiler are you using?
[16:11:18] <Kefka> kdevelop
[16:11:20] <Kefka> er
[16:11:21] <Kefka> gcc
[16:11:24] <Kefka> i think it uses
[16:12:25] <Kefka> wjp: in a graphical devel environment, there are these tabs that say Classes, Groups, and Files
[16:12:31] <Kefka> and under Groups, there are Headers
[16:12:54] <Kefka> i don't actually have to put iostream.h into the header directory do i?
[16:13:10] <wjp> don't think so
[16:13:31] <wjp> is that one you mentioned the only warning you get?
[16:13:32] <fingolfin> Kefka: you shouldnīt use iostream.h
[16:13:49] <fingolfin> Kefka: if you are using C++, then use this for your #includes:
[16:13:57] <fingolfin> #include <iostreams>
[16:14:04] <wjp> plural?
[16:14:05] <fingolfin> #include <cstdlib>
[16:14:26] <Kefka> g++ -DHAVE_CONFIG_H -I. -I. -I.. -O0 -g3 -Wall -c main.cpp
[16:14:26] <Kefka> main.cpp:5: return type for `main' changed to `int'
[16:14:26] <Kefka> make[2]: Leaving directory `/home/kefka/test2/test2'
[16:14:26] <Kefka> make[2]: *** [main.o] Error 1
[16:14:26] <Kefka> make[1]: *** [all-recursive] Error 1
[16:14:30] <Kefka> is what i get
[16:14:45] <fingolfin> #include <iostream> I meant, sorry
[16:14:50] <Kefka> fingolfin: ok i will try that
[16:15:02] <fingolfin> and it is not void main() but int main()
[16:15:08] <fingolfin> (ok, in C++ you could use both I admit ;)
[16:15:44] <Kefka> g++ -DHAVE_CONFIG_H -I. -I. -I.. -O0 -g3 -Wall -c main.cpp
[16:15:45] <Kefka> main.cpp:5: return type for `main' changed to `int'
[16:15:45] <Kefka> make[2]: Leaving directory `/home/kefka/test2/test2'
[16:15:45] <Kefka> make[2]: *** [main.o] Error 1
[16:15:45] <Kefka> make[1]: *** [all-recursive] Error 1
[16:15:47] <Kefka> gah
[16:15:57] <Kefka> wrong paste..
[16:15:58] <Kefka> anyways
[16:16:03] <Kefka> i put return 0;
[16:16:12] <Kefka> used <iostream>
[16:16:21] <Kefka> took out the reference to stdlib.h
[16:16:26] <Kefka> and changed void to int
[16:16:29] <Kefka> and now it works
[16:16:49] <fingolfin> good ;)
[16:16:51] <Kefka> i don't know which one of those fixed it
[16:17:03] <Kefka> but as long as its fixed, thats fine with me
[16:17:27] <fingolfin> the "int" fixed it
[16:17:49] <Kefka> why can't i void out main if i am not returning a value with it?
[16:17:51] <fingolfin> you can use iostream.h but that is very bad style, you should always use the non-.h version in C++
[16:18:41] <fingolfin> Kefka: maybe a gcc quirk? it works fine with MetroWerks Codewarrior I think
[16:18:55] <Kefka> ok, i will use that (and i now use endl instead of "\n") :)
[16:18:59] <Kefka> hmm
[16:20:16] <wjp> I can use void main() without any problems with gcc
[16:20:37] <wjp> I get a warning, but it compiles fine
[16:52:34] --- wjp is now known as wjp|dinner
[16:53:32] <Kefka> er, what do i use to unzip in linux?
[16:57:57] <fingolfin> unzip
[16:59:46] <Kefka> fingolfin: ah.. ok.. just found it in dselect
[17:11:04] --- wjp|dinner is now known as wjp
[17:11:48] <Kefka> gah.. there is this great tutorial for a game exactly like the type i want to write
[17:12:21] <Kefka> but i want to check it out by d/ling the exe which he says is available on his site.. but i can't find it.
[17:13:00] <wjp> but the source is there?
[17:13:04] <Kefka> yeah
[17:13:21] <Kefka> there is no makefile though.. only .h and .cpp
[17:13:34] <Kefka> http://www.graylab.ac.uk/doc/tutorials/CPP/
[17:14:38] <Kefka> its called flyaway
[17:14:43] <-- Dominus has left IRC (Read error to Dominus[212186137085.15.univie.teleweb.at]: EOF from client)
[17:16:40] <Colourless> who did this! C:\UC\exult\objs\chunks.cc(1046) : error C2065: 'rand' : undeclared identifier
[17:17:10] <wjp> we talked about that code this weekend, IIRC :-)
[17:17:48] <Colourless> so it was you was it :)
[17:17:56] <wjp> no, Jeff, actually
[17:18:15] <wjp> I just removed the division by zero there
[17:18:47] <Colourless> :)
[17:18:57] <fingolfin> btw, did I break configure.in/Makefile.am or not? ;) I bet nobody tried autogen.sh recently, hu? ;)
[17:19:21] <wjp> well, doesn't make automatically rebuild configure if necessary?
[17:19:23] <Colourless> Jeff, it's always Jeff :
[17:19:23] <Colourless> )
[17:19:44] <wjp> but if it makes you happy I'll try autogen.sh ;-)
[17:20:17] <wjp> ../exult/configure: test: =: unary operator expected
[17:20:34] <wjp> right before "checking for getaddrinfo()..."
[17:21:07] <wjp> other than that everything seems to work ok
[17:23:01] <wjp> ah... I think I see the problem
[17:23:23] <wjp> if $ac_cv_c_compiler_gnu is empty, the parameters passed to test are invalid (line 187)
[17:28:36] <wjp> fix committed
[17:29:05] <fingolfin> ok
[17:29:24] <fingolfin> hm... that is one of the things that changed between ac 2.1x and 2.5x I fear :/
[17:29:45] <wjp> how? test is just a unix program
[17:31:07] <fingolfin> no I mean ac_cv_c_compiler_gnu
[17:31:11] <fingolfin> I think that is new in 2.5
[17:31:21] <wjp> oh, could be
[17:35:01] <wjp> but you should always put variables between "'s to be safe, I think
[17:35:01] <wjp> like test "$ac_cv_c_compiler_gnu" = "yes";
[17:35:01] <wjp> or add an 'x' or something to the front, although I think the quotes way is cleaner
[17:35:01] <-- exultbot has left IRC (signing off...)
[17:36:11] --> exultbot has joined #exult
[17:37:18] <fingolfin> wjp: true
[17:57:40] <-- exultbot has left IRC (signing off...)
[17:58:47] --> exultbot has joined #exult
[17:59:08] <wjp> at least he returned without me doing anything
[17:59:32] <wjp> internet connection to the machine it's running on it a bit flaky currently
[17:59:48] <wjp> ssh connection often freezes for 10-20 seconds too
[18:08:11] <wjp> I think I'll go play some more diablo2
[18:08:22] <wjp> bye
[18:08:28] <-- wjp has left IRC ([x]chat)
[18:47:50] --> PoorCNewb has joined #exult
[18:48:12] <-- PoorCNewb has left #exult
[19:21:01] <-- Colourless has left IRC (Ping timeout for Colourless[ppp428.adelaide.on.net.au])
[19:21:09] --> Colourless has joined #Exult
[19:42:53] <Colourless> time for me to go
[19:43:01] <-- Colourless has left IRC ([5:12])
[21:27:38] <-- fingolfin has left IRC (Client Exiting)
[21:32:20] --> fingolfin has joined #exult
[21:42:33] <-- Kefka has left IRC (Client Exiting)
[21:46:32] --> Kefka has joined #exult
[21:47:26] <-- Kefka has left IRC (Client Exiting)
[22:07:20] <-- EazyCheez has left IRC (IN GRAV HUR or whatever)
[22:42:07] --> Waz has joined #exult
[22:48:40] --> EazyCheez has joined #exult
[22:53:09] <Waz> you!!!
[22:53:12] <Waz> "c"
[22:54:11] <Waz> I seem to have lost my party..
[22:54:13] <Waz> "c"
[22:54:33] <Waz> must do dishes.. be back
[22:57:27] --> Kefka has joined #exult
[23:03:00] <Waz> welcome to my channel
[23:06:22] <EazyCheez> wazzzzzzzzaaaap
[23:06:56] * fingolfin looks incredolus at Waz
[23:06:59] <fingolfin> *your* channel?
[23:08:18] <Waz> hehe
[23:08:23] <Waz> well.. someone talked
[23:08:32] <Waz> :)
[23:09:58] <Waz> MY Island!
[23:10:07] <Waz> You mean Ireland?
[23:10:12] <Waz> Yeah! Its mine!
[23:11:44] <fingolfin> Waz: you should consult somebody to help you ;)
[23:13:05] <Waz> There is a Forensic psychologist where i work. He thinks i'm notmal.
[23:13:14] <Waz> normal also. :)
[23:13:38] <Waz> fingolfin, what do you do?
[23:14:24] <fingolfin> I am watching a crazy guy talking in our channel ;)
[23:17:36] <Waz> no,no.. for Exult
[23:18:01] <Waz> And why do people think I'm weird. I don't think others are weird.
[23:21:55] <fingolfin> Waz: hey, being weird is not bad, look at me ;)
[23:30:49] <Waz> Got a picture?
[23:31:13] * Waz can't look at you elsewise
[23:31:24] <Waz> Anyway
[23:31:26] <Waz> ... :)
[23:31:33] <Waz> "c"
[23:33:00] <-- EazyCheez has left IRC (Ping timeout for EazyCheez[cx835488-a.pnscla1.fl.home.com])
[23:39:10] <Waz> Why does the irc server play table tennis with me?
[23:39:19] <Waz> PING? PONG!
[23:39:19] <Waz> -
[23:39:19] <Waz> PING? PONG!
[23:39:19] <Waz> -
[23:39:19] <Waz> PING? PONG!
[23:39:20] <Waz> -
[23:39:22] <Waz> PING? PONG!
[23:39:24] <Waz> -
[23:39:26] <Waz> PING? PONG!
[23:40:20] <fingolfin> Waz: that is part of the normal IRC protocol.
[23:41:11] --> ShadwChsr has joined #exult
[23:41:35] <ShadwChsr> hi
[23:45:13] <fingolfin> ho
[23:45:43] <ShadwChsr> Is this a dev. channel or just discussion?
[23:45:46] <Waz> its off to work we go
[23:46:22] <Waz> with razor blades and handgrenades...
[23:47:02] <Waz> Well... i think its the discussion, but no one says much.. but then.. maybe they shutup when i'm around.. dono why..
[23:48:05] <ShadwChsr> ever do any rpg game programming?
[23:48:22] <fingolfin> this is both a dev channel and open for discussion
[23:48:27] <Waz> in this channel, no. they only talk about rpg programming
[23:48:39] <fingolfin> Waz: please stop trolling
[23:48:52] <Waz> ok
[23:48:58] <fingolfin> Waz: read the logs if you want to see some discussions
[23:49:18] <fingolfin> consider that for most of the members of the exult team it is night right now
[23:49:37] <ShadwChsr> I'm taking the risk at sounding like an idiotic newbie (im not :) But im working on a game as a project and I wondered if any of you had some insight into how to handle tile "blocking"
[23:49:39] <fingolfin> e.g. for me it is about 2 AM, and I am going to bed RSN ;)
[23:49:49] <Waz> bloddy europeans.
[23:49:50] <Waz> :)
[23:50:07] <fingolfin> Waz: and australians. only jeff is from US
[23:50:42] <ShadwChsr> any ideas before you go? :)
[23:50:44] <fingolfin> ShadwChsr: you mean, how to make a tile (maybe only partly) block the movement of the actors?
[23:50:53] <ShadwChsr> yeah.. like walls and stuff
[23:51:06] <ShadwChsr> I got everything else done - ground tiles, wall tiles, trees, the ordering, file formats, etc
[23:51:28] <ShadwChsr> I don't want to tackle the movement blocking and do something inefficient :)
[23:51:42] <ShadwChsr> So I figured I'd research first
[23:52:02] <ShadwChsr> After looking through thousands of lines of exult code and only finding "hints" to how it was done, I thought I would ask ;)
[23:52:10] <fingolfin> do you want to have tiles that only partly bloc, or are all of your tiles either blocking or not?
[23:52:58] <ShadwChsr> partly blocking tiles. I have the engine setup to support multiple sized tiles, so this would be important
[23:53:16] <ShadwChsr> (I believe ultima 7/exult does this too? A wall segment isn't the same size as a chair)
[23:53:43] <fingolfin> yeah
[23:53:46] <fingolfin> well
[23:53:59] <fingolfin> if your tiles are small enough
[23:54:01] <fingolfin> i.e. 8 by 8 pixels
[23:55:21] * ShadwChsr nods
[23:55:22] <fingolfin> but anyway
[23:56:16] <Waz> do you know of window text editor that will open unix files and dos files and can search multiple files?
[23:56:23] <fingolfin> what we do is: wheneve an actor tries to move from a tile to another, we check if the target tile is blocked or not, thatīs about all i think
[23:56:35] <Waz> that why i can find the functions being called in the exult code
[23:56:49] <ShadwChsr> waz: I think wordpad can. So can visual studio
[23:56:51] <fingolfin> ShadwChsr: you might want to look at paths.cc
[23:57:00] <ShadwChsr> yeah, I looked through that
[23:57:16] <ShadwChsr> I read the part where it checked if it was blocked or not
[23:57:22] <fingolfin> well
[23:57:25] <ShadwChsr> I'm still not sure how it gets "set" blocked.
[23:57:31] <ShadwChsr> what if you have two tiles that overlap? :)
[23:57:38] <fingolfin> every tile type has this flag
[23:57:39] <ShadwChsr> how is it stored in the file?
[23:57:45] <fingolfin> that doesnīt happen in U7
[23:57:53] <fingolfin> all tiles are of a single fixed size
[23:58:12] <ShadwChsr> ground tiles, right?
[23:58:23] <fingolfin> oh I think we have a different definition of tile, wait a moment ;)
[23:58:29] <ShadwChsr> what about objects on top.. like chairs/walls/trees/etc?
[23:58:35] <ShadwChsr> Ground tiles I can figure out. That's easy ;-)
[23:58:54] <-- Waz has left IRC ()
[23:58:55] <ShadwChsr> (relatively speaking ;)
[23:59:36] <fingolfin> (please have a bit patience with me, I am talking in two other channels at the same time ;)
[23:59:46] <ShadwChsr> n/p ;)