#exult@irc.freenode.net logs for 7 Jan 2001 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage


[00:13:04] --> ariannerpg has joined #exult
[00:13:35] <ariannerpg> Hi
[00:17:19] <-- ariannerpg has left IRC ()
[00:34:06] --> Kirben has joined #exult
[00:34:54] <Kirben> Hi
[00:35:19] <Kirben> BTW exult seems to be working well with new sdl 1.1.7
[00:35:59] <Fingolfin> good
[00:42:51] <wjp> hi
[00:43:04] <wjp> Ryan added paperdolling to SI! wo!
[00:43:08] <wjp> s/wo/wow/
[00:44:22] <wjp> hmmm... interesting... when you walk to the far east in the SI beginning scene, you can see _past_ the mountains
[00:49:54] <wjp> I'm going to reboot to windows to make some U7/SI 'reference' screenshots (for text rendering)
[00:49:56] <wjp> brb
[00:50:06] <-- wjp has left IRC ([x]chat)
[00:53:44] --> wjp has joined #exult
[00:56:38] <Fingolfin> gosh
[00:56:42] <Fingolfin> I will go to bed now
[00:56:58] <-- Fingolfin has left IRC (42)
[01:04:46] <wjp> rebooting back to linux...
[01:04:47] <-- wjp has left IRC (Leaving)
[01:07:07] --> wjp has joined #exult
[01:23:11] <wjp> ok, it's getting a bit late now
[01:23:14] <wjp> goodnight
[01:23:25] <-- wjp has left IRC ([x]chat)
[01:55:01] <-- bj0ern[W] has left IRC (Leaving)
[05:45:17] <-- Kirben has left IRC (Ping timeout for Kirben[co3007967-a.brasd1.vic.optushome.com.au])
[05:47:02] --> Kirben has joined #exult
[08:03:07] <-- Kirben has left IRC (System Meltdown)
[11:46:52] --> bj0ern[W] has joined #exult
[12:48:39] <-- bj0ern[W] has left IRC (Leaving)
[13:07:40] --> wjp has joined #exult
[14:04:50] --> Fingolfin has joined #exult
[14:05:35] <wjp> hi
[14:05:57] <Fingolfin> morning ;)
[14:06:15] <wjp> just got up too? :-)
[14:07:53] <Fingolfin> /msg chanserv op #exult Fingolfin
[14:07:56] <Fingolfin> darn
[14:08:04] <Fingolfin> why is this alias not working properly
[14:08:18] <wjp> which one?
[14:08:31] <Fingolfin> ah now
[14:08:40] <Fingolfin> I had a space to much: /alias opme { /msg chanserv op $C $N }
[14:08:46] <Fingolfin> should have been /alias opme {/msg chanserv op $C $N }
[14:08:57] <wjp> ah, I see
[14:09:38] * wjp is giving Get_click the 'ignore modifier keys'-treatment
[14:10:09] <wjp> really interesting... if you press 'ctrl' in a conversation, Exult will pick the conversation option the mouse is over
[14:10:28] <Fingolfin> ourgh
[14:10:28] <Fingolfin> bad
[14:10:30] <wjp> (or any key except 1-9, for that matter)
[14:10:39] <Fingolfin> but 0 works?
[14:10:43] <Fingolfin> funny ;)
[14:10:57] <wjp> no, 1-9 are mapped to conversation options
[14:11:04] <Fingolfin> ahhhhh
[14:11:09] <Fingolfin> ok
[14:11:18] <wjp> really horrible code:
[14:11:25] <Fingolfin> btw, is it possible to make ESC choose "bye" if available ?
[14:11:48] <wjp> should be possible, yes
[14:11:56] <wjp> if (chr >= '1' && chr <= '9')
[14:12:00] <wjp> choice_num = chr - '1';
[14:12:03] <wjp> else
[14:12:07] <wjp> choice_num = gwin->conversation_choice(x, y);
[14:13:15] <wjp> I like the idea, I'll do it right after this fix
[14:20:02] <Fingolfin> good ;)
[14:22:07] <wjp> Error: jump to case label crosses initialization of `int c'
[14:22:08] <wjp> ??
[14:22:33] <wjp> you can't declare new variables within a case?
[14:22:40] <Fingolfin> you can but
[14:22:48] <Fingolfin> you have to put it into braces { int c; ... }
[14:23:06] <wjp> ok, thanks
[14:24:37] <wjp> hmmm.... Exult behaves differently if you press '3' than if you press the 3rd conv. option
[14:24:58] <wjp> (it doesn't remove avatar's choices on '3')
[14:27:00] <Fingolfin> eek! good we have you ;)
[14:29:56] <wjp> bah... I hate having to edit gamewin.h :-(
[14:36:40] <Fingolfin> it is much too big
[14:37:25] <wjp> maybe we should have a 'design meeting' sometime :-)
[14:38:36] <wjp> ok, fix committed
[14:39:05] * wjp now does escape=bye
[14:39:40] <Fingolfin> yeah... design meeting, topic: "How to split GameWin.h into seperate files without exceeding the file system limits for max. files" <g>
[14:39:48] <wjp> lol
[14:40:08] <Fingolfin> or maybe we just move *all* the code into gamewin.h
[14:40:17] * Fingolfin envisions a several megabyte single source file
[14:40:19] <wjp> sure, that would work too
[14:40:33] <Fingolfin> then it were consistent at least ;)
[14:40:44] <wjp> it would probably reduce total clean-compile time, too
[14:44:30] <Fingolfin> splitting it, yeah.. if we make sure we reduce dependencies properly, it certainly would
[14:46:31] <wjp> is there a function to return the index an iterator is pointing to in a vector?
[14:46:49] <Fingolfin> erhmm
[14:46:56] <Fingolfin> lemme check, not sure
[14:47:30] <Fingolfin> I think no, this caused grief to me in the past IIRC, but I'll check the reference
[14:52:05] <Fingolfin> nope I don't see a way :/
[14:52:22] <Fingolfin> where do you need it? for what? maybe just "count" if you loop over all iterators...
[14:52:25] <wjp> :-(
[14:52:50] <wjp> looking for a 'bye' in a vector of strings :-)
[14:53:00] <Fingolfin> or you "hack" by doing (iterator - vec.begin()) / sizeof(DataType) which works on all implementations I know
[14:53:10] <Fingolfin> but certainly not on "safe iterator" implementations
[14:53:16] <Fingolfin> ah
[14:53:21] <Fingolfin> hmm
[14:54:17] <Fingolfin> I would do it by "counting" along...
[14:54:41] <wjp> yes, that's what I'm currently doing
[14:55:05] <wjp> I was just wondering if there was a 'better' way to do it
[14:55:08] <Fingolfin> for( int i = 0, bla::iterator X = vec.begin(); X != vec.end(); ++X, ++i ) if( *X == "bye" ) break;
[14:55:12] <Fingolfin> nope
[14:55:37] <Fingolfin> that's one of the limitations of Std C++ lib... maybe it'll be better in the next incarnation (except it in 5 years <g>)
[14:57:02] <wjp> ok, seems to work
[14:58:42] <wjp> looks like it's time for another 'weekly update' of the webpage
[14:58:45] <wjp> let's see.... what's new?
[14:58:58] <wjp> Paperdolling!
[14:59:01] <Fingolfin> conversation keys have been fixed? ;)
[14:59:11] <Fingolfin> yeah! had no chance to try it yet
[14:59:18] * Fingolfin looks for his U7 CD
[15:02:28] <Fingolfin> what I like about IRC: you can often talk to famous people ;) well, at least famous in certain circles. Just got a tip on a problem from Matt Slot, a mac hacker guru ;)
[15:02:42] <wjp> :-)
[15:06:17] * wjp browses ChangeLog
[15:10:47] <wjp> ok, 4 items, that should be enough :-)
[15:15:06] <Fingolfin> hehe
[15:16:57] <wjp> bbl, lunch
[15:18:02] <Fingolfin> have a nice meal
[15:35:27] <-- wjp has left IRC (Ping timeout for wjp[2dyn166.ogt.casema.net])
[15:37:03] --> wjp has joined #exult
[15:37:35] <wjp> b
[15:42:08] <wjp> how about moving part of Game_window to a 'Conversation' class?
[15:42:21] <wjp> and part of Usecode_machine too
[15:47:37] <Fingolfin> sounds good
[15:47:46] <Fingolfin> w/o looking at the code, that is ;)
[16:52:28] <-- Fingolfin has left IRC (42)
[18:04:14] --- wjp is now known as wjp|dinner
[18:46:04] --- wjp|dinner is now known as wjp
[19:04:52] --> Fingolfin has joined #exult
[19:09:38] <Fingolfin> where is our "menu event loop" again? we have to many event handlers, if you ask em...
[19:09:49] <wjp> menulist.cc
[19:09:59] <wjp> there's event handlers in:
[19:10:01] <Fingolfin> ah right
[19:10:04] <Fingolfin> found it
[19:10:04] <wjp> exult.cc (main, Get_click)
[19:10:06] <wjp> menulist.cc
[19:10:16] <wjp> game.cc, bggame.cc, sigame.cc
[19:10:21] <Fingolfin> <sigh>
[19:10:29] <wjp> probably some more :-)
[19:10:35] <Fingolfin> well, the dynamic keybing this guy is working on (not me) might help...
[19:10:49] <Fingolfin> how about doing an Event_handler class?
[19:11:38] <wjp> depends on what it does
[19:15:42] <Fingolfin> in fact, this might be superior to the removng/adding keys on the fly...
[19:15:45] <Fingolfin> ah now I seee!!!!
[19:15:48] <Fingolfin> lemme explain
[19:16:20] <Fingolfin> we have a class, Event_handler with methods onMouseUp, onMouseDown etc.
[19:16:38] <Fingolfin> at a time, there is always exactly one active Event_handler
[19:16:53] <Fingolfin> and we only have *one* event loop, which just call throught to the active event handler
[19:17:06] <wjp> this sounds very familiar, somehow :-)
[19:17:11] <Fingolfin> at the beginning, an instance of class Menu_Event_handler is active
[19:17:16] <Fingolfin> yes it does sound familiar ;)
[19:17:25] <Fingolfin> then, every handler can have a "boss"
[19:17:40] <Fingolfin> or, no boss
[19:17:45] <Fingolfin> we just use subclassing...
[19:17:53] <Fingolfin> so we have a "common_event_handler" which does quit/screenshots etc.
[19:18:09] <Fingolfin> we still would use dynamic key binding, so users can change the keys...
[19:18:22] <Fingolfin> in fact, all keys + description + action code should be in the config file...
[19:18:39] <Fingolfin> or just key + action code...
[19:18:41] <Fingolfin> hmm
[19:18:42] <wjp> I think I'd prefer a separate file for keybindings, which you can specify in the config file
[19:18:51] <Fingolfin> yeah, me too
[19:18:56] <Fingolfin> but the basic idea is the same ;)
[19:19:00] <wjp> yup :-)
[19:21:24] --- Fingolfin is now known as Fingolfin|dinner
[19:44:10] --- Fingolfin|dinner is now known as Fingolfin
[19:58:45] <Fingolfin> ok, I just talked to dominik
[19:58:54] <Fingolfin> I now know why Ctrl-Alt-M is not working for him...
[19:59:08] <Fingolfin> alt-m on windows generates (greek my)
[19:59:27] <Fingolfin> since I changed it to use Unicode, this fails to be recognized :/
[19:59:30] <Fingolfin> solutions:
[19:59:58] <Fingolfin> 1) drop unicode again. Then we have again troubels with y<->z (also with dynamic keyhandler, user could change it)
[20:01:14] <Fingolfin> 2) do "reverse" unicode look up: fake events for normal keypresses, i.e. fake an event for "m", get the scancode of that, and use the scancode from now on. This would solve both problems but is complicated, and might not be doable in clean fashion
[20:01:16] <Fingolfin> 3) other?
[20:32:05] <wjp> hmmm
[20:38:50] * wjp finished reading 40 min. SDL backlog
[20:39:39] <Fingolfin> wjp: you can ignore what I said here ;)
[20:39:53] <wjp> k :-)
[20:40:01] <Fingolfin> it turned out it is a bug in SDL on Mac, Win, but not X that SDLK_Z is generated for 'y' on german keyboads
[20:40:08] <Fingolfin> keyboards even
[20:40:38] <wjp> bah
[21:35:02] <-- Fingolfin has left IRC (Ping timeout for Fingolfin[p3EE03DC1.dip.t-dialin.net])
[21:40:56] --> Fingolfin has joined #exult
[22:49:04] <wjp> ok, I _think_ I've removed all conversation stuff from Game_window...
[22:49:09] <Fingolfin> wow
[22:49:20] <wjp> now compiling...
[22:52:37] <wjp> oh, and the good news is that conversation.h and gamewin.h don't include eachother
[23:09:33] <wjp> wow, it's finished building
[23:11:01] <Fingolfin> wow
[23:11:03] <Fingolfin> cool!
[23:11:08] <Fingolfin> congrats ;)
[23:11:14] <wjp> and it works too!
[23:11:22] <Fingolfin> wow! even that! ;)
[23:11:47] <wjp> the Conversation member functions still need to be cleaned up though
[23:13:42] <wjp> I also think some functions from Usecode_machine should be moved to Conversation
[23:13:44] * wjp sighs
[23:14:10] <wjp> somehow cleaning code always ends up being more complicated than it seems to be at first
[23:16:13] <Fingolfin> yeah
[23:16:17] <Fingolfin> exactly
[23:16:31] <Fingolfin> but this is because code is even more messed up then one bleieves;)
[23:16:39] <wjp> :-)
[23:16:53] <wjp> hmm... I only modified 6 files...
[23:16:58] <wjp> I must be doing something wrong
[23:17:04] <wjp> ;-)
[23:18:45] <Fingolfin> no
[23:18:53] <Fingolfin> you are fine
[23:19:21] <Fingolfin> it is only that our previous efforts are beginning to take ground (cleaning up wise I mean)
[23:19:21] <Fingolfin> ;)
[23:19:27] <wjp> hehe :-)
[23:19:29] <Fingolfin> each time code is less tangled up
[23:19:35] <wjp> yup :-)
[23:19:50] <wjp> the only weird place I had to modify this time was schedule.cc
[23:21:45] <Fingolfin> schedule.cc?!?! why that? you were working on conversation, right?
[23:21:55] <wjp> hehe :-) yes...
[23:22:13] <wjp> there's a 'Talk' schedule, as I found out
[23:29:12] <wjp> hmm... you're not supposed to use 'using' in a header file right?
[23:32:24] <Fingolfin> you shouldn't, right
[23:32:36] <wjp> k
[23:54:01] <wjp> ok, committed