#pentagram@irc.freenode.net logs for 10 Apr 2005 (GMT)

Archive Today Yesterday Tomorrow
Pentagram homepage

[02:47:52] <-- Lightkey has left IRC (Read error: 54 (Connection reset by peer))
[03:03:44] --> Lightkey has joined #Pentagram
[05:58:21] <-- Darke2 has left IRC (leguin.freenode.net irc.freenode.net)
[06:00:57] --> Darke2 has joined #pentagram
[06:21:33] <-- Darke2 has left IRC (Read error: 110 (Connection timed out))
[06:25:28] --> Darke2 has joined #pentagram
[06:43:52] <-- LyingWake has left IRC ("<UPP>")
[08:24:14] --> sbx0 has joined #pentagram
[08:32:46] <-- sbx has left IRC (Read error: 60 (Operation timed out))
[08:45:57] --> Colourless has joined #Pentagram
[08:45:57] --- ChanServ gives channel operator status to Colourless
[09:29:30] <fallenangel|> Is there a way to get Pentagram to spit out a tile map of some sort into a picture format?
[09:33:45] --- sbx0 is now known as sbx|afk
[10:22:37] --> Fingolfin has joined #pentagram
[10:22:37] --- ChanServ gives channel operator status to Fingolfin
[10:24:46] * Fingolfin just filed a bug report *cough*
[10:25:10] * Fingolfin hopes nobody will beat him up for this one ... again ... <g>
[10:25:10] <Fingolfin> http://sourceforge.net/tracker/index.php?func=detail&aid=1180130&group_id=53819&atid=471706
[10:28:59] <Colourless> you what
[10:29:38] * Colourless raises an eyebrow
[10:29:50] <Colourless> i've seen more technically useful bugreports...
[10:30:17] <Colourless> as you are not actually indicating what is actually happenening
[10:31:28] <wjp> "Tarna, who just walked over the dock, straight into the water!"
[10:33:21] <Fingolfin> (and it was with latest CVS. Bad me ;-)
[10:34:00] <Fingolfin> and I am precisely describing what happened... now you know how a typical police officer feels after a bug, err, crime report 8-)
[10:35:03] <wjp> oh, I see the problem
[10:35:54] <Fingolfin> Yeah, it's kinda hard to notice that this is a problem! She may have had family!
[10:36:02] <wjp> instead of checking 'tryAnimation == SUCCESS', it checks for 'tryAnimation != FAILURE', thereby missing the case 'tryAnimation == END_OFF_LAND'
[10:36:05] <Fingolfin> s/to notice/not to notice/ ;-)
[10:36:09] <wjp> *grin* :-)
[10:36:29] <Fingolfin> cool, glad you have a fix :--)
[10:37:15] <Fingolfin> (or glad you have found the cause which may lead to a fix)
[10:39:07] <Fingolfin> wouldn't it be cleaner, anyway, if calls to tryAnim explicitly compared the return value to one of the enums, instead of relying on FAILURE to be 0 ?
[10:39:28] <wjp> I'll change it to checking for SUCCESS, most likely
[10:40:27] <Fingolfin> yeah
[10:40:44] <Fingolfin> both in Pathfinder.cpp and PathfinderProcess.cpp, I guess?
[10:40:51] * wjp nods
[10:42:15] <wjp> strange that those two weren't updated when the semantics of tryAnim changed
[10:42:27] <wjp> originally it just returned a bool
[10:43:28] <wjp> but we wanted to distinguish between walking into a wall and walking off a cliff :-)
[10:44:17] <Fingolfin> hehe
[10:44:27] <Fingolfin> it *does* make a difference
[10:44:34] <Fingolfin> a broken nose vs. death
[10:45:12] * wjp thinks
[10:45:44] <wjp> I need to properly look at ghosts' seeking fireballs sometime
[10:45:52] <wjp> those use pathfinding to get to the avatar as well
[10:46:25] <wjp> maybe I'll have to allow those to fall down a bit at times
[10:46:52] <Fingolfin> hmmm
[10:47:09] <wjp> but OTOH, combat pathfinding needs to be overhauled entirely anyway
[10:48:09] <wjp> hm, or come to think of it, maybe finally fixing the 'last step' in the pathfinder will be sufficient to fix the combat pathfinding
[10:48:24] <wjp> (the pathfinder should allow taking a partial step at the end)
[10:49:08] <wjp> when taking only full steps it can take a bit of maneuvering for a monster to get into a position where he can hit the avatar :-)
[10:49:42] <Fingolfin> yeah
[10:49:42] <wjp> and all that maneuvering translates into slow pathfinding (A* is not really good in this particular 'endgame' case)
[10:49:58] <Fingolfin> so, is the "walk-over-fire" issue also related to that? http://sourceforge.net/tracker/index.php?func=detail&aid=1101303&group_id=53819&atid=471706
[10:50:00] <wjp> (mostly because the 'distance' heuristic is garbage for that)
[10:50:12] <wjp> no
[10:50:19] <Fingolfin> in particular, I am not sure if you really could walk through the fire in the original, didn't it react to it much quicker? I forgot :-/
[10:50:46] <wjp> I think it currently actually tries to play the 'shirk back' animation, but fails because the avatar is already playing a 'walk' animation...
[10:51:08] <wjp> so, yes, it needs to react much quicker (or to be specific, with higher priority, in some sense)
[10:51:45] <wjp> I'm just a bit scared of changing basic animation rules :-)
[10:52:00] <wjp> has the potential to break lots of other stuff
[10:52:38] <wjp> could also be that I need to add some special case to the 'hit' logic
[10:52:57] <wjp> time for breakfast now :-)
[10:57:45] <Fingolfin> brilliant idea, that
[10:57:49] <Fingolfin> the breakfast part I mean =)
[11:21:41] <wjp> well, Tarna has been walking around near the edge of the docks for a couple of minutes, but hasn't jumped yet
[11:24:18] <wjp> animations: I'm guessing I should abort the avatar's animations when you get hit
[11:26:13] <wjp> that should get rid of the animlock problem with 'stumble backwards' animations
[11:28:26] <wjp> ok, avatar now responds properly to the campfire
[11:28:52] <wjp> hm, I wonder if spraying blood when getting burned is appropriate :-)
[11:30:25] <wjp> I think I'll change that to only happen when hit by NPCs
[11:33:06] <wjp> ok, committed that too
[11:34:02] <wjp> I wonder what the original did if you stepped into the fire when walking backwards
[11:36:10] <wjp> ah, you actually turn
[11:44:43] <wjp> Colourless: to get back to that invisible book problem: I noticed there are other cases of wrong rendering order when one item is above the other
[11:45:02] <wjp> the avatar's feet occasionally seem to disappear beneath an adjacent floor tile
[11:45:59] <Colourless> yeah i've seen problems sometimes
[11:55:12] <wjp> ok, fixed stumbling direction issue too
[12:10:42] <Fingolfin> wjp: good work on the camp fire
[12:10:54] * Fingolfin fetches some marshmellow
[12:11:14] <wjp> :-)
[12:25:18] * Fingolfin notices that pentagram now implements a config system which has some of the features he always wanted to add to ScummVM's. Like config callbacks. although those in pentagram right now are too limited (now refcon param -> make it hard to reuse one). still...
[12:26:11] <Fingolfin> a pity ScummVM is strictly non-STL, else this would be a nice chance to share work. Hmm, I wonder if there is an existing framework which offers a robust & elegant & powerful config file system out there already, though...
[12:29:25] <wjp> I did look around a bit at the time, but most existing things either did too little or too much
[12:29:44] <wjp> can you elaborate a bit on what you mean by 'too limited' ?
[12:30:23] <wjp> the callback system will probably evolve a bit once we actually start using it ;-)
[12:30:29] <Fingolfin> http://www.boost.org/doc/html/program_options.html looks intersting, but is tied to the STL
[12:31:06] <Fingolfin> well, at the very least, callbacks need to have a "void *refCon" which is specified at registration time, and then passed to the callback when it is invoked
[12:31:24] <Fingolfin> even better would be a proper signal/slot system, of course, but that might be kinda overkill ;-)
[12:31:40] <wjp> ah
[12:31:48] <Fingolfin> w/o a refcon or any other means to pass data to a callback, it's impossible for it to be reused; or to be used to invoke a method of a specific object
[12:32:34] <wjp> easy to add, should we need it
[12:32:49] <Fingolfin> i.e. if I want to have myConfigGump::configCallBack() -> that's not possible right. If a refCon was available, at least one could write a wrapper: void gumpCallback(string key, void *refCon) { myConfigGump *gump = (myConfigGump *)refCon; gump->callback(); }
[12:32:50] <Fingolfin> of course
[12:33:52] <wjp> the situations I had in mind at the time would mostly have singletons as the recipients of the callbacks, and you can get the instances of those in another way
[12:34:36] <wjp> incidentally I did already borrow code from scummvm for the conf subsystem :-)
[12:34:51] <wjp> (and ideas, of course)
[12:38:29] <wjp> cute syntax in that program options: desc.add_options()("help", "produce help message")("compression", po::value<int>(), "set compression level");
[12:58:06] <Fingolfin> yeah
[12:58:51] <Fingolfin> I noticed some similarities in the code, yeah ;-)
[12:59:11] <Fingolfin> some thing in the ScummVM config system is quite crufty. E.g. no clean seperation between the config manager, and the config file; i want to do that one day
[12:59:29] <Colourless> funny how pentagram seems to borrow more code from ScummVM then Exult now days...
[12:59:47] <wjp> we already stripped Exult clean :-)
[12:59:57] <wjp> so we moved on to the next target ;-)
[13:00:19] <Fingolfin> also, the set/get methods are in some cases very complicated. This is partially because they both need to support the "game edit dialogs", and in other cases tries to "do the right thing", i.e. what the client code most likely "expects"... I guess I need to clean up some of this eventually
[13:00:20] <Fingolfin> heheh
[13:00:53] <Fingolfin> I think this is a good thing. That's part of what OSS is about. Reuse (and improve existing stuff). After all, i can borrow back ;-)
[13:01:23] <Colourless> :-)
[13:01:46] <wjp> yes, splitting up config files and config file manager was one of the main items on my list of requirements for the conf subsystem
[13:02:32] <Fingolfin> which reminds me... what is the status of that midi engine backport for exult? 8-). The current QuickTime midi code (written by me back when I had no clue about things :-) really sucks. Would be nice to have an exult with good midi quality on OS X, too :-)
[13:03:16] <Colourless> bah
[13:03:29] <Colourless> i really should get around to finishing that up
[13:03:34] <Colourless> it's sort of 'half' done
[13:03:41] <Fingolfin> yes, you should!
[13:03:52] * Fingolfin gets out his hypnotic llama and focuses it on Colourless
[13:03:55] <Colourless> thought the code is probably way out of date for both pentagram and exult...
[13:04:18] <wjp> hypnotic llamas? hm, maybe this is a good time for me to go away for a while :-)
[13:05:15] <wjp> (going running for a bit; be back later)
[13:06:38] <Fingolfin> have fun
[13:26:25] --> Luck|Chetic has joined #pentagram
[13:42:06] <-- Kirben has left IRC ("System Meltdown")
[13:43:47] <-- Chetic has left IRC (Read error: 110 (Connection timed out))
[16:01:24] <Fingolfin> nice, now both Pentagram and ScummVM have strangely named classes..
[16:01:33] <Fingolfin> compare ODataSource and InSaveFile ;-)
[16:01:48] <Fingolfin> (an output data *source* ? An input *save* file ? :-)
[16:04:17] <wjp> :-)
[16:04:37] <Colourless> we could always rename that clasee
[16:04:46] <Colourless> *class
[16:04:51] <Colourless> ...clasee???
[16:04:59] <wjp> renaming it will probably cause us lots of confusion :-)
[16:05:33] * wjp reads scummvm TODO entry... we're using an MVC pattern? didn't know that :-)
[16:05:42] <Fingolfin> weeeelll
[16:05:52] <Fingolfin> the config file is the model, the config manager the controller/view
[16:06:04] <Fingolfin> it's not really a full blown MVC, but you *do* seperate layers ;-)
[16:06:12] <Fingolfin> and MVC was quicker to type
[16:15:28] <Colourless> wjp, with the sound in pentagram i added in the ability to do pitch shifting. Often games tend to add random small pitch shifts to to foot step sounds so they don't all sound identical. I'm thinking it might be an idea to try doing that and just see what it sounds like
[16:19:29] <wjp> yes, sounds like a good idea
[16:43:34] <wjp> (finally) upgraded from linux 2.4.x to 2.6.y
[16:43:54] <wjp> graphics updates are suddenly much faster
[16:44:24] <wjp> I don't know if I mentioned here sometime ago that firefox was much faster in Fedora than in my gentoo setup? It's now just as fast in both
[16:44:34] <wjp> so that was apparently kernel-related
[16:45:12] <wjp> also getting more FPS in pentagram :-)
[16:45:22] <Colourless> well that's a good thing :-)
[16:45:26] <wjp> 66fps at 60% CPU usage
[16:45:44] <Colourless> lot better than me
[16:45:54] <wjp> (scale2x 320x200 -> 640x400)
[16:47:35] <wjp> hm, my scrollwheel isn't responding
[16:49:21] <Colourless> just in pentagram?
[16:49:26] <Colourless> or everything?
[16:49:27] <wjp> no, at all
[16:49:37] <Colourless> hmm
[16:49:50] <wjp> somehow I have this feeling it might have to do with the kernel upgrade :-)
[16:54:20] <wjp> ok, fixed that
[16:54:22] <wjp> next: audio :-)
[16:54:30] <wjp> after dinner, I guess; bbl
[16:55:22] <Colourless> :-)
[18:43:55] <wjp> I wonder why alsa doesn't simply automatically use software mixing if hardware mixing isn't available
[18:44:23] <wjp> and on top of that it manages to make audio stutter every couple of seconds while compiling
[18:45:16] <wjp> I'm seriously tempted to see if OSS still works with 2.6...
[18:46:17] <-- Fingolfin has left IRC ("42")
[20:04:26] <wjp> even with a buffer size of 8192 alsa's software mixer manages to get underruns (stuttering)... *sigh*
[20:04:43] <wjp> regularly, while running pentagram
[20:05:26] <wjp> so video is better than before, audio is worse than before... *sigh*
[20:21:34] <Colourless> 8192 is excessively large
[20:21:41] <Colourless> we run at 22khz?
[20:22:12] <wjp> not pentagram's buffer
[20:22:30] <wjp> I meant alsa's software mixer's buffer
[20:22:58] <wjp> but even at that large size it still manages to get underruns
[20:24:32] <Colourless> still excessively large
[20:25:08] <wjp> the example configs listed set it at 4192
[20:25:13] <wjp> 4096
[20:26:18] <wjp> disabled alsa's software mixing for now; kind of silly that now only one app at a time can play sound, but don't have the time to look at it in more detail now :/
[20:27:29] <wjp> nice rant on the topic: http://sourceforge.net/mailarchive/forum.php?thread_id=5930474&forum_id=1752 (first two/three paragraphs)
[20:28:13] <wjp> actually the first 6 :-)
[20:29:54] <wjp> ah well, have a class tomorrow I need to prepare for
[20:35:01] --> Chetic has joined #pentagram
[20:51:43] <-- Luck|Chetic has left IRC (Read error: 110 (Connection timed out))
[21:20:00] --> Darke has joined #pentagram
[21:20:01] <-- Darke2 has left IRC (Read error: 104 (Connection reset by peer))
[22:23:46] --> Kirben has joined #pentagram
[22:23:46] --- ChanServ gives channel operator status to Kirben
[23:28:48] <-- oaQ^ has left IRC ("leaving")
[23:31:27] --> oaQ^ has joined #pentagram
[23:45:01] <-- Colourless has left IRC ("casts improved invisibility")
[23:53:09] <-- sbx|afk has left IRC ("bbr")
[23:53:34] <watt> that was rantastic!!! But he does have a point