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

Archive Today Yesterday Tomorrow
Pentagram homepage


[00:48:54] <-- wjp has left IRC ("Zzzz...")
[01:44:01] <-- Dark-Star has left IRC ()
[01:50:49] --> Kirben has joined #pentagram
[01:50:49] --- ChanServ gives channel operator status to Kirben
[05:48:51] --> DraX has joined #pentagram
[05:50:17] <-- DraX has left #pentagram ()
[06:57:16] --> Cashman has joined #pentagram
[06:57:26] <Cashman> Hi
[07:09:07] <DarkeZzz> 'ello.
[07:13:41] <Cashman> I see wjp and colourless have been busy
[07:16:43] <Cashman> doing any programming for anything at the moment Darke? any other projects maybe?
[07:26:22] <DarkeZzz> Hmm... trying to work on the compiler, but I keep getting distracted by adding and rewriting 'general' bits of the engine. *grin*
[07:27:05] <Cashman> ok
[07:27:40] <Cashman> tough it must be trying to work on a compiler - 1 man bunny project am I right?
[07:28:57] <DarkeZzz> More or less. I've written them before, just not as... uniquely as this one needs to be written. Since it needs to play nice with pentagram's multithreading system.
[07:30:43] <Cashman> I dont know what kind of compiler you are writting? has this got to do with usecode?
[07:32:23] <DarkeZzz> Yup. Hopefully allowing you to program usecode in a vaguely readable language, to add stuff to the game.
[07:32:44] <Cashman> nice!
[07:42:45] * Cashman compiles pentagram....
[07:45:09] <Cashman> eh dev with mingw32 can't pull the final exe down to say 660kb as kiben can! hmm
[07:45:26] <Cashman> apparently running max optimization - not debug mode either
[07:45:37] <Cashman> its 1.1 megs
[07:45:47] <DarkeZzz> Have you stripped it?
[07:52:10] <Cashman> Hmm when I think about it there might be some unnecessary linkage
[07:52:22] <Cashman> not important anyways
[07:52:51] <Cashman> Item dragings good! I see colourless is trying to experiment with music
[07:53:32] <Cashman> sdl doesnt handle midi does it? hmm
[07:54:10] <Cashman> could music be a pain - pentagram being portable?
[07:54:59] <DarkeZzz> Unlikely. Exult doesn't have any particular problems with that, I don't expect pentagram will have either.
[09:14:24] <-- Cashman has left IRC (kornbluth.freenode.net irc.freenode.net)
[09:14:24] <-- DarkeZzz has left IRC (kornbluth.freenode.net irc.freenode.net)
[09:14:48] --> DarkeZzz has joined #pentagram
[09:14:48] --> Cashman has joined #pentagram
[09:14:49] --- ChanServ removes channel operator status from DarkeZzz
[09:16:37] --> wjp has joined #pentagram
[09:16:37] --- ChanServ gives channel operator status to wjp
[09:16:42] <DarkeZzz> Greetings.
[09:16:59] <wjp> hi
[09:21:32] <wjp> oooh, our activity is about 94.7% already :-)
[09:22:45] <DarkeZzz> That's... just... amazing! We obviously need to use the bug/feature trackers more often. *grin*
[09:23:27] <Cashman> hehe
[09:31:47] <DarkeZzz> Any complaints should I rename the various Print*_err functions in Console to be Error* instead? (So we have con.Error, con.Errorf, con.vErrorf, etc.) Of course going through and changing all the code that uses them too... *groan* The purpose being that it looks 'more elegant'. *grin*
[09:34:07] * DarkeZzz is just kneedeep in trying to reduce the redundancy of most of the Console backend as it is, so he figured a few name changes to clean things out wouldn't be amiss. *grin*
[09:44:29] * DarkeZzz is always tempted to give a short, manical laugh whenever he says he's going to make something 'more elegant'. Generally because he often finds out it isn't. *grin*
[09:52:46] <DarkeZzz> Of course, if I was just claiming to make things 'more efficient'. I could just make the claim, laugh evily, then kill everyone else, so there's no-one to argue with my claim of efficiency. Of course, I'd miss at least one person, who'd be a rather thorn in my side trying to argue against what I'm doing. Pesky insects.
[09:53:28] * wjp complains :-)
[09:53:37] <wjp> I prefer the current names
[09:55:52] <DarkeZzz> Fairenough. I don't think I've ever actually used a _err function, so it doesn't exactly affect me. *grin*
[09:56:19] <wjp> we're accessing most through perr
[10:00:21] <DarkeZzz> Yup.
[10:10:55] <Cashman> home come fade to/from black functions exist but arn't working between maps yet? is it just another ingredients thing
[10:14:52] <Cashman> hmm typo's
[10:15:28] <wjp> because we didn't activate them on map changes yet :-)
[10:16:51] <Cashman> ok
[10:20:24] <wjp> (it just slows down walking around)
[10:57:37] --> Colourless has joined #Pentagram
[10:57:37] --- ChanServ gives channel operator status to Colourless
[10:57:48] <wjp> hi Ryan
[10:58:03] <Colourless> hi
[10:58:26] <DarkeZzz> Hi.
[11:01:34] <wjp> I fixed the issue with items disappearing while dragging
[11:01:45] <Colourless> what was it?
[11:02:10] <wjp> some silly check if an item really had to change lists in CurrentMap
[11:02:30] <wjp> and the old location was still stored in the Item even though it had been removed from the world
[11:06:20] <Colourless> [10:20:24] <wjp> (it just slows down walking around)
[11:06:29] <wjp> it doesn't?
[11:06:32] <Colourless> this implies we can walk around
[11:06:49] <wjp> um, no, that once we can walk around, it will be slowed down by fades :-)
[11:06:54] <Colourless> :-)
[11:29:46] <wjp> are the 640/480 hardcoded anywhere except for the call to SetVideoMode?
[11:29:52] <Colourless> nope
[11:29:54] <wjp> (I seem to remember the fastArea used it earlier)
[11:29:57] <wjp> that's gone now?
[11:30:01] <Colourless> yes it's gone
[11:30:08] <wjp> great :-)
[11:35:22] * DarkeZzz can't wait to see the abysmal frame rates at 1600x1200!
[11:43:10] <wjp> about 6fps
[11:43:19] <wjp> but it's cheating a bit, since there are more objects than max_items :-)
[11:45:06] <Colourless> :-)
[11:45:22] <Colourless> it should probably be increased
[11:45:28] * wjp assigns another low-priority bug to Colourless :-)
[11:45:39] <wjp> you could dynamically increase it depending on resolution
[11:45:50] <Colourless> D:\Pentagram\world\ItemSorter.h(44): ItemSorter(int Max_Items = 2048);
[11:46:45] <Colourless> could also just get it to automatically resize
[11:47:22] * wjp nods; shouldn't be too much of a performance penalty (since it'll only happen a few times until it's large enough)
[11:47:36] <Colourless> use a vector rather than an array
[11:48:04] <wjp> 2 fps now :-)
[11:51:02] <DarkeZzz> Ooooh!
[11:51:25] <Colourless> dominus would probably get 10!
[11:51:26] <DarkeZzz> We're getting *blazing* fast speeds now!
[11:54:52] * wjp umms
[11:54:58] <wjp> ODataSource *f = ...
[11:55:01] <wjp> delete [] f;
[11:55:06] <Colourless> uh oh
[11:55:09] <Colourless> bad news
[11:55:51] <wjp> Colourless: cvs annotate points at you :-)
[11:56:04] <Colourless> good thing it wasn't used... yet :-)
[12:04:01] <wjp> DarkeZzz: I see you're redetermining @home when setting @work
[12:04:13] <wjp> DarkeZzz: it should just be possible to set @work to @home/game/work
[12:04:43] <wjp> (FileSystem will expand vpaths recursively)
[12:17:36] <wjp> DarkeZzz: could you explain the init/deinit process of Applications? I Don't Get It(tm) :-)
[12:18:34] <wjp> CoreApp already does game specific things, so any game selection should go in there?
[12:18:49] <wjp> but what if we want to have a GUI game selection?
[12:19:11] <Colourless> games stuff should be put into Game data
[12:19:48] <wjp> (game specific things == mount game specific paths, btw)
[12:20:43] <Colourless> ok, that should go in coreapp as a separate function
[12:21:02] <Colourless> arg as the game name, which would then get the correct stuff from the config using that name
[12:21:15] <wjp> I'll move game settings into config/games/u8, config/games/u8french, ...
[12:21:45] <Colourless> possible should have version and language
[12:21:45] <wjp> We'll need something of a game-detector, to prevent the user from having to say "I'm using U8, english, 2.12"
[12:21:47] <Colourless> args too
[12:22:00] <wjp> but those should be overridable in the config file of course
[12:22:32] <Colourless> so you'd have setupGamePaths(char *name, char *language, int version); or some such
[12:22:49] <wjp> probably some kind of GameInfo struct
[12:22:57] <wjp> setupGamePaths(name, gameinfo)
[12:25:43] <wjp> or maybe I'll have setupGamePaths fetch that info from the config file
[12:26:25] <wjp> no, I'll create a wrapper function around setupGamePaths(name, gameinfo)
[12:32:41] * DarkeZzz finally awakens from being idle, lusting over computer bits. Oh, information wanted. *grin*
[12:40:54] <DarkeZzz> Hmm... what part of the init process is confusing in particular? The postInit stuff in specific?
[12:41:12] <wjp> more of a general feeling of not getting it
[12:44:46] <Colourless> our for each handling is seriously broken
[12:45:01] <wjp> hm, haven't looked at that in ages
[12:45:49] <Colourless> // loop iteration
[12:45:54] <Colourless> // place next element from list in [bp+si8a]
[12:45:54] <Colourless> // (not duplicating any strings)
[12:45:54] <Colourless>
[12:45:54] <Colourless> p->stack.push((*listHeap[loop_list])[loop_index], ui32a);
[12:45:58] <Colourless> hmm, yes, that does what the comment says :-)
[12:46:15] <wjp> it does?
[12:46:28] <Colourless> no id doesn't
[12:46:30] <wjp> :-)
[12:46:32] <Colourless> s/id/it/
[12:46:36] <DarkeZzz> Admittedly I understand why. I don't much like it either. *grin* Basically because CoreApp is fully constructed before it's derived classes are, some of the stuff (arguement parsing, etc) 'needs' to happen after the derived classes constructors have partially run. For example so that the derived classes can add more arguments to be parsed, altering the default vpaths, and other things. (Though admittedly, I can't remember why I didn't just co
[12:46:36] <DarkeZzz> nvert it to a static ->init() routine that needs to be called after the *App is constructed, probably unfamilarity with things at the time.)
[12:47:47] <Colourless> should be p->stack.assign(p->bp+si8a, (*listHeap[loop_list])[loop_index], ui32a);
[12:48:05] <wjp> sounds much better
[12:49:52] <DarkeZzz> The basic effect is that (say) ConApp is newed, so it's CoreApp constructor is run. Because we need to do things like spit out help text or set the 'quietness' of output right at the beginning, it runs ParseArgs to get the basic arguments. Then because it's been instructed to 'delayPostInit' (the full argument parsing and mounting vpaths, etc), it doesn't do it now, then the rest of the ConApp constructor runs, which repoints the application
[12:49:52] <DarkeZzz> pointer and declares another pair of arguments, then runs 'postInit' (doing the full argument parsing, mounting vpaths, etc), then it executes what it wants to do.
[12:50:41] <Colourless> wow fancy that. fireshrooms blowing up no longer causes invalid items to be given to loopscripts :-)
[12:50:49] <wjp> I'd prefer not to have the constructor do all that, then
[12:50:58] * DarkeZzz hrms and earscritches. Now he sees why he didn't have an ->init(), but I think that's the cause of the constructor doing too much.
[12:51:22] <Colourless> using init() can be useful
[12:51:32] <Colourless> can virtual functions cause issues with constructors
[12:51:54] <wjp> swap cause and can?
[12:52:03] <wjp> or was it a question? :-)
[12:52:13] <Colourless> uh
[12:52:18] <wjp> no, not swap :-)
[12:52:19] <Colourless> do the swap
[12:52:55] <Colourless> that's why the gumps have an init func. there are just so many virtual functions that doing anything meaningful in the constructors became hazzardous
[12:53:01] --- Cashman is now known as CashZzz
[12:53:23] <DarkeZzz> That's why there are no virtual functions used. *grin* Yes, I tripped over that when I was first writing it and couldn't figure out what the problem was, 'til I noticed I was using virtuals when I shouldn't have been. *grin*
[12:54:46] <Colourless> the only time i've ever got a pure virtual function call error was when i called a function that called a virtual function in a constructor
[12:57:27] <-- CashZzz has left IRC ()
[12:58:02] <Colourless> hmm, i don't really like how this for each stuff works.
[12:58:50] <Colourless> we aren't doing it 'quite' right :-)
[12:59:38] <Colourless> more specifically, we are storing variables in UCMacine, which could be stored on the stack, which actually SHOULD be stored on the stack
[12:59:51] * Colourless fixes before anyone notices a problem when executing
[13:01:09] <DarkeZzz> Colourless: Shame on you! You just wasted a perfectly good bug report! *grin*
[13:01:39] <wjp> how are we ever going to get our activity rating up if we fix all bugs before submitting bug reports! ;-)
[13:01:48] <Colourless> well, assign a broken for loop bug to me while you still have a chance
[13:01:59] <Colourless> it's not fixed, untill it's committed :-)
[13:02:56] <DarkeZzz> wjp: Quick! Quick! File the report!
[13:05:08] --> Dark-Star has joined #pentagram
[13:05:15] <wjp> hi
[13:05:54] <Colourless> hi
[13:10:50] <Dark-Star> hi
[13:11:33] <Dark-Star> What's the mains voltage in .au?
[13:14:29] <DarkeZzz> 240V/50Hz
[13:14:46] <DarkeZzz> Type I plug? *ponder* Can't remember, there's a classifcation for it.
[13:15:08] <Dark-Star> Ok, so I think my 230V equipment will work just fine there...
[13:15:22] <Colourless> yes
[13:15:45] <DarkeZzz> I don't think it'd have a problem.
[13:19:40] <DarkeZzz> You're looking at a tolerance of +15/-25V (or something vaguely like that) if memory serves anyway, with the standard applicances here, so things should work ok.
[13:24:34] <Dark-Star> anyway, I'll only need it to charge up my cell phone from time to time, which will hopefully work in .au :-)
[13:25:23] <Colourless> what type is it?
[13:26:26] <Dark-Star> the cell phone?
[13:26:34] <Colourless> yes
[13:26:46] <Dark-Star> Nokia .. umm... 5130 I think ...
[13:26:57] <Colourless> should be fine
[13:27:15] <Dark-Star> need to call my phone company anyway to check if I've got roaming access there (or to enable it)
[14:38:34] <wjp> I think I'll go refactor the startup sequence a bit
[14:41:46] <wjp> Colourless: COLOURLESS_IS_TESTING_MUSIC?
[14:41:55] <wjp> how's that progressing?
[14:42:33] <Colourless> well, i windows adding midi support isn't a problem. but for you others :-)
[14:43:16] <wjp> hmm... I wonder if it'll be me who'll have to implement linux midi stuff
[14:43:56] <Colourless> by far the easiest thing to do would be to grab the exult midi drivers
[14:44:13] <Colourless> i am of course going to change the interface slightly
[14:44:57] <wjp> I guess I can handle changing interfaces :-)
[14:52:04] <DarkeZzz> I guess there's not point using one of the sdl-* music related libs that handle midi?
[14:52:56] <Colourless> exult already using sdlmixer
[14:54:10] * DarkeZzz ahhs and remembers and had better go to sleep before he makes himself look evem more silly, not that *that's* possible... *grin* Night!
[14:54:54] <wjp> night
[15:30:27] <wjp> ok, startup sequence looks better now
[15:30:42] <wjp> I added a (non-virtual) startup(), and a virtual declareArgs()
[15:30:55] <-- Kirben has left IRC (Read error: 54 (Connection reset by peer))
[15:31:00] <wjp> startup() should be called right after constructing
[15:34:15] <wjp> in addition I changed the config file format bit
[15:34:19] <wjp> all games are in config/games now
[15:34:28] <wjp> (so config/games/u8, config/games/u8french, ...)
[15:34:40] <wjp> the names of games are arbitrary
[15:34:51] <wjp> if there's only one game, that will be selected automatically
[15:35:05] <wjp> if not, you can specify the game with ./pentagram --game <gamename>,
[15:35:15] <wjp> or put a config/general/defaultgame key in pentagram.cfg
[15:35:47] <wjp> (there should be a game selection screen in the future, but not now :-) )
[16:01:34] <wjp> ok, committed
[16:01:38] <wjp> I hope thing still work :-)
[16:04:55] <Colourless> omg, no conflicts :-)
[16:05:25] <wjp> huh?
[16:05:32] <wjp> I must've forgotten to commit something, then ;-)
[16:05:51] <wjp> ah, yes, I did :-)
[16:06:49] <wjp> this should cause lots of conflicts! (ChangeLog *cough*)
[16:07:25] <Colourless> bah, haven't modified it :-)
[16:07:57] <wjp> no merge conflicts doesn't mean "no conflicts" though... could be lots of hidden conflicts causing mysterious bugs... *muahaha* :-)
[16:09:57] <Colourless> i am... gasp, looking at modalGump
[16:10:08] <Colourless> s
[16:10:52] <Colourless> uh, but i now wonder why
[16:11:01] * Colourless notices process Plaque::read(word,char*)
[16:11:52] <wjp> you wonder why you're looking at modalGumps?
[16:12:01] <Colourless> yes :-)
[16:12:15] <wjp> or you wonder why Colourless notices process Plaque::read(word,char*)?
[16:12:55] <Colourless> well i thought that plaques, books, graves and scrolls needed modal gumps
[16:13:00] <Colourless> but they are actually processes
[16:13:44] <Colourless> getSliderInput() however IS modal
[16:16:12] <Colourless> LANG_ENGLISH = BAD IDEA!
[16:16:27] <Colourless> cause it's already defiened in windows
[16:16:59] <Colourless> LANG_FRENCH too...
[16:17:27] <Colourless> LANG_GERMAN and LANG_SPANISH too :-)
[16:17:37] <Colourless> so yes, there WAS a conflict
[16:20:50] <wjp> um, ah
[16:21:12] <wjp> GAME_ENGLISH, ...?
[16:21:16] <wjp> GL_ENGLISH?
[16:21:21] <wjp> GLANG?
[16:21:45] <Colourless> GL_ENGLISH would be fine
[16:22:02] <Colourless> s/would/should/
[16:22:18] <Colourless> but then i think about OpenGL... it uses GL_ as it's prefix
[16:23:00] <Colourless> here i had them set to GAME_LANG_
[16:23:13] <wjp> works for me
[16:27:32] <Colourless> it's being stupid. it wont find any games
[16:28:37] <Colourless> and that is cause it wasn't using the config file i thought it was using
[16:45:45] <wjp> that might be a problem, yes :-)
[17:02:04] <Colourless> you increase intelligence by reading books
[17:02:47] <wjp> really? didn't know that :-)
[17:03:05] <Colourless> yeah
[17:03:05] <wjp> I usually just cast divination a couple of hundred times :-)
[17:39:02] <wjp> dinner, bbl
[17:39:51] <Colourless> k
[17:55:29] <wjp> back
[18:33:51] <wjp> hm, where would you place a GameDetector.h/cpp?
[18:34:36] <Colourless> the only place that we have that would be even remotely close would be kernel
[18:34:50] <wjp> yeah, I guess
[19:13:19] <wjp> committed some basic game detection code
[19:13:55] <wjp> you should get a list of all configured games with type/language on startup now
[20:18:27] <wjp> spanish detection too...
[20:18:40] <wjp> (oh, and I actually committed GameDetector.* now *cough*)
[20:19:17] <Colourless> :-)
[20:19:30] <Colourless> as you might have been able to tell, i'm busy doing other things
[20:19:41] <wjp> I'm checking for the word 'vajilla' in eusecode.flx for spanish
[20:19:45] <wjp> I guessed as much, yes :-)
[20:20:00] <wjp> (in object 183 in eusecode.flx, that is; not checking all of it :-) )
[20:23:50] <Colourless> :-)
[20:24:13] <Colourless> we really should get some regionalized string support in pentagram NOW
[20:24:30] <wjp> might be a good idea, yes
[20:25:26] <Colourless> i say now, because it will be easiest to do it now
[20:25:55] <wjp> now would be a good time to get rid of the game-dependant constants too
[20:28:41] <Colourless> i already started with the usecode events
[20:48:30] <Colourless> i'm going now
[20:48:35] <Colourless> cya
[20:48:35] <-- Colourless has left IRC ("casts invisibility")
[21:32:45] <-- wjp has left IRC ("Zzzz...")
[23:23:25] <-- DarkeZzz has left IRC (kornbluth.freenode.net irc.freenode.net)
[23:24:50] --> DarkeZzz has joined #pentagram