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

Archive Today Yesterday Tomorrow
Pentagram homepage


[01:43:38] --> Kirben has joined #pentagram
[01:43:38] --- ChanServ gives channel operator status to Kirben
[08:17:37] --> SB-X has joined #pentagram
[10:29:05] --> Dark-Star has joined #pentagram
[10:29:33] <Dark-Star> Hi
[10:59:56] --> Colourless has joined #Pentagram
[11:00:06] --- ChanServ gives channel operator status to Colourless
[11:00:11] <Colourless> hi
[11:05:55] <Darke> Hi.
[11:09:03] <Colourless> what should i do today?
[11:09:23] <Darke> Umm... movement?
[11:10:26] <Colourless> ok then. I'll write sint32 CollideMove(sint32 x, sint32 y, sint32 z, bool teleport, bool force); of course, anything else... that's a completely different matter :-)
[11:14:10] * Darke pouts.
[11:14:27] * Darke decides to be sneaker next time .*noddle*
[11:39:36] --> wjp has joined #pentagram
[11:39:36] --- ChanServ gives channel operator status to wjp
[11:40:08] <Colourless> hi
[11:47:32] <Colourless> ultima8 has an unused transformed 'palette'. It's a palette that removes the red. There is nothing too special about this, except, it very much looks like the darkest night mode in ultima7
[11:49:44] <Colourless> i'm thinking, perhaps, just perhaps, they may have intended for there to be day/night cycles
[11:50:30] <Darke> Hi.
[11:50:48] <Darke> Makes sense. That would have been fun. *grin*
[11:56:10] <Colourless> npc processes not being terminated on map changes has interesting effects :-)
[11:56:20] <wjp> no doubt :-)
[11:56:30] <Darke> Hmm... wasn't pagan sunless or something anyway?
[11:56:37] <Darke> Heh.
[11:56:41] <wjp> yeah, sun was permanently hidden
[11:56:51] <wjp> (after the battle between the titans and the Destroyer)
[11:56:59] <wjp> that's why Tenebrae is called Tenebrae
[11:57:22] * Darke thinks the world is kinda... well... bright for one lacking a source of illumination. *grin*
[11:57:23] <wjp> (latin for darkness)
[11:57:29] <Colourless> it's stratos's doing (permanent thick clouds)
[11:57:39] <Darke> Ahh.
[11:58:03] <Colourless> of course pyros is quite happy it's like that, since it allows him to keep the illusion that he is the only source of fire
[11:58:44] <wjp> hm, he seems to believe that himself though
[11:58:50] <wjp> or was he fooling Malchir?
[11:59:19] <Colourless> i'm sure pyros knows better.
[11:59:50] <Colourless> arcadion for sure would know
[12:00:13] <Colourless> he says himself he's been to earth
[12:00:32] <Darke> Colourless: Since you were looking for something to do... getting gravestones/books/plaques working would be a worthy cause for your time. *grin*
[12:00:50] <Colourless> there are lots of things i 'could do' :-)
[12:01:28] <Colourless> books, graves and stuff require model gump operation.... this is not something that i'm looking forward to implementing :-)
[12:01:57] <Darke> Think of the challenge! *grin*
[12:02:42] <Darke> Oooook... I really don't think these 'rolling spheres' are supposed to roll when they're in a chest.
[12:03:45] <wjp> probably not, no
[12:03:48] <Darke> If you close the chest, it continues to 'roll' too, you just don't see it, and it's back when you open the chest again. *grin*
[12:03:48] <wjp> do they? :-)
[12:04:00] <Darke> Yep! *grin*
[12:04:29] <Colourless> where?
[12:04:37] * Darke is having fun watching one roll from the left side of a chest, across the chest, then 'off' the right of the chest for a length of a chest, then wrapping around to the left again.
[12:04:55] <Darke> Umm... in the necromancer's house in the graveyard I think.
[12:04:56] <wjp> not really for the length of a chest... I'll bet it's 256 :-)
[12:05:11] <Darke> Probably. *grin*
[12:05:37] <Darke> Second floor, in his bedroom, there's a chest with a dozen, round, green thingies, that claim they're a 'rolling sphere', and they do!
[12:05:55] <wjp> ah yes, I remember that chest
[12:06:17] <Colourless> marbles :-)
[12:07:12] <wjp> oh, only when you double click them
[12:07:19] * Darke leaves the rolling stones^Wspheres to their own devices.
[12:07:21] <wjp> looks interesting, though :-)
[12:09:17] <wjp> MARBLE::use doesn't really seem to check if it's in a container
[12:09:27] <wjp> so Item::hurl should probably just fail
[12:09:56] <wjp> (or did it really hurl them in the original in a chest too? :-) )
[12:10:08] <Colourless> i'm trying to find out
[12:10:14] <Darke> Do you get a large frame rate drop after having them active for a while? My fps dropped from 25 down to 5 after 10 minutes or so of opening/closing the chest and watching them, and I'm trying to work out why. *grin*
[12:10:18] <Colourless> of course the game crashed on the way to the graveyard :-)
[12:10:25] <Darke> Heh.
[12:10:25] <wjp> typical :-)
[12:10:31] <wjp> pentagram doesn't do that :-)
[12:10:50] <Darke> Agreed. *grin* Pentagram doesn't do much, but it certainly doesn't do *that*!
[12:11:03] <wjp> maybe an overflow on something?
[12:11:13] <wjp> it's already overflowing x into y
[12:13:24] <Darke> Dunno. It cleared when I changed maps, and I was back up to reasonable numbers again.
[12:14:36] <Colourless> no they didn't roll around in the chest
[12:18:16] * Darke snickers. If you click on one of the spheres as it's rolling, the text 'roll's with it. *grin*
[12:18:23] <wjp> of course
[12:27:33] <Colourless> question, does your stl support the -> operator on iterators?
[12:28:49] <wjp> hm, probably
[12:29:21] <Colourless> just it would be nicer to do iterator->something rather than having to do (*it).something
[12:32:03] <Colourless> well, stl implementations are supposed to have it
[12:33:59] <-- SB-X has left IRC ("sleep")
[12:50:40] * Darke is pretty sure he uses it, so... it should! *grin*
[12:50:49] <wjp> well... items can be dragged now... somewhat
[12:51:13] <Colourless> define somewhat
[12:51:25] <wjp> I don't correctly determine the target location yet
[12:51:43] <wjp> I'm just setting the z coordinate to 128, and set (x,y) in such a way that it matches up with the cursor :-)
[12:51:53] <wjp> (and call item->fall() after dropping it)
[12:52:09] <wjp> no range checks either
[12:52:24] <Colourless> you do know that z ranges from 0>255
[12:52:59] <wjp> making it higher than 128 will make it even harder to tell where the item will land :-)
[12:53:23] <Colourless> :-)
[12:57:38] * Darke hmms... and manipulates wjp's mouse to click and drag the Avatar, just to watch him fall.
[12:57:46] <wjp> that works, yes :-)
[12:58:04] <Darke> Yay!
[12:58:10] <wjp> (I get the feeling just checking is_fixed() isn't enough ;-) )
[12:58:40] <Darke> Try checking whether it's a npc or not too. *grin*
[12:58:54] <Colourless> weight
[13:00:54] * Darke is glad we don't have a female Avatar, that way she can't get indignant if you check her weight. *innocentlook*
[13:00:56] <wjp> could you move the tiny insect 'monsters'?
[13:01:05] * Darke quickly flees before the PC police catch up with him.
[13:01:21] <Colourless> no
[13:01:32] <Colourless> no afaik
[13:03:36] <Colourless> which ones do you mean?
[13:03:43] <Colourless> spiders or the other ones?
[13:03:59] <wjp> either one
[13:05:01] <Colourless> doesn't matter you can't drag either
[13:27:38] <wjp> ok, took a quick detour through dragging into/from containers
[13:27:42] <wjp> (which is working now too)
[13:28:18] <wjp> oh, I made ConsoleGump::PointOnGump always return false, btw
[13:28:26] <wjp> (to prevent it from 'taking' any dragged items :-) )
[13:28:59] <Colourless> ok with me
[13:29:43] <Colourless> PointOnGump is only really going to be used with mouse events, and the console won't accept any mouse event
[13:30:08] <wjp> I added a FindGump(int mx, int my), that returns a child/self/NULL
[13:30:14] <wjp> (depending on which gump is at that location)
[13:30:39] <wjp> which calls FindGump on children recursively and uses PointOnGump if none of the children returned anything
[13:32:12] <wjp> the main remaining issue is determining the target location in GameMapGump
[13:35:01] <Colourless> yeah. i'll probably get on to that 'soon'
[13:35:51] <wjp> oh, you want to do it? :-)
[13:36:00] <wjp> works for me :-)
[13:36:02] <wjp> thanks
[13:37:08] <wjp> btw, would it be worthwhile creating some doxygen (or other) documentation?
[13:37:30] <wjp> we'd have to add some documenting-comments
[13:37:45] <wjp> and the entire class tree with member functions and comments would be online
[13:38:28] <Colourless> yes it would be nice :-)
[13:38:45] <Colourless> darke and i actually discussed it once a long long time ago :-)
[13:39:16] * Darke thinks it'd be useful for the core stuff, like filesys/ and Console and such. Still not 100% sure it'd be worth all the effort for the stuff only one or two people touch... then again, considering there's only three coders... *grin*
[13:39:27] <wjp> we actually have descriptive comments for quite a lot of the 'main' functions already
[13:39:48] <wjp> (e.g. Gump and RenderSurface, thanks to Colourless)
[13:39:48] <Darke> Colourless: In a #channel far, far away? *grin* I can't even remember if #pentagram existed then.
[13:41:35] <Darke> At least it's something to do when one wants to code, but doesn't have the brain power at the time... write documentation! *grin*
[13:42:35] <wjp> I guess I'll commit this and then go have lunch
[13:43:00] <wjp> you'll even be able to move NPCs until I fix that check :-)
[13:44:15] * Darke celebrates! Yay!
[13:46:15] <wjp> the Avatar's "container" gump is behaving somewhat strangely, but that was expected :-)
[13:46:39] <wjp> k, committed
[13:46:44] <wjp> bbl, lunch
[13:47:11] <Colourless> btw you said something about slots the other day. i don't think the game used slots, other than you could only have one of each item type in the avatar
[13:50:05] <wjp> ah... so the argument to that intrinsic was 'type'...
[13:50:09] <wjp> ok, I interpreted that as slot
[13:51:06] <Colourless> doesn't really matter though.
[13:53:41] <wjp> hmm
[13:54:10] <wjp> avatar->getEquip(6) is apparently supposed to return the backpack
[13:54:17] <wjp> (in ABACUS::use())
[13:54:43] <wjp> but equiptype 6 is SE_WEAPON
[13:55:11] <wjp> in fact, getEquip is only ever called with 6
[13:56:38] <wjp> I kind of expected it to at least show up for the magic shield too
[13:59:05] * Darke finds 12Gig of free space his flatmate had 'lost' due to the fact he didn't use tune2fs to remove the reserved blocks on a rather large raid partition, which is our data store...
[13:59:40] <wjp> 5% of blocks reserved for root? :-)
[13:59:48] <Darke> Yup. *grin*
[14:00:13] <wjp> big disk :-)
[14:00:15] <Darke> On a 240gig partition, which has *no* need what so ever for that. *grin*
[14:00:31] <Darke> Four disks actually. Software (*shudder*) raided using LVM. *grin*
[14:00:50] <wjp> ah
[14:03:54] <Darke> If I fiddled with other stuff, like turning on sparse superblocks, I could no doubt squeese a few hundred meg more out of it, but that's only if you're completely nuts and want to get every last byte out of the disk. *grin*
[14:11:19] <Darke> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5 <- Someone else having fun with their bug tracking system. *grin*
[14:12:17] <wjp> hehe :-)
[14:15:08] <Colourless> uh oh... collision detection... detected :-)
[14:15:41] <wjp> collision detection detected?
[14:15:59] <Colourless> in my version of pentagram)
[14:16:30] <Darke> So we'll be able to bounce guards off walls soon when we're hurling them around?
[14:17:06] <Darke> (Yes, that was my first thought. I worry about myself sometimes...)
[14:17:09] <Colourless> hmm, no
[14:17:27] <Colourless> bouncing isn't currently implemented
[14:17:31] <wjp> guards already hit walls when hurled
[14:17:34] <wjp> they just don't bounce
[14:17:37] <Colourless> head splashes though
[14:17:40] * Darke pouts. Darn.
[14:19:28] <wjp> Darke: look in GravityProcess
[14:19:38] <wjp> can I assign a 'no bouncing' bug to you?
[14:19:41] <wjp> ;-)
[14:20:10] <Colourless> you could :-)
[14:27:37] * wjp emerges doxygen
[14:28:02] <wjp> (did I ever mention I love gentoo? :-) )
[14:30:53] <wjp> anyway, really gone now :-)
[14:32:05] <Colourless> i'll commit this, then it's time for SURFACE SEARCH :-)
[14:39:49] * Darke gahs! He hasn't even had a chance to try out wjp's changes yet! Stop adding stuff so quickly! *grin*
[14:41:13] <Colourless> drag drag drag... SPLASH, SPLASH, SPLASH
[14:41:48] * Darke has been putting stuff on the roof, whilst trying to drag inside a house. This is impressive stuff! The items teleport straight out of your hand!
[14:42:30] <Colourless> dragging the npcs into the water while the excution scene is running, is... unwise :-)
[14:42:56] <Darke> Cool! Magical scrolls Do Stuff!
[14:43:10] <Darke> Umm... yeah. One might imagine that would cause problems. *grin*
[14:45:14] <Darke> The avatar looks... odd when casting spells. *grin*
[14:45:59] <Darke> Hmm... if I open a jewerly box from an open chest, and I move the chest gump around, the jewerly box's gump also moves around, is it supposed to work like that?
[14:46:21] <Colourless> well, that depends what you mean by supposed :-)
[14:46:47] <Darke> "Did it work like that in the original u8?" *grin*
[14:46:57] <Colourless> no
[14:47:30] <Colourless> ok, committed my collision stuff
[14:47:40] <Darke> So... "Do we want it to do that in pentagram?" *grin*
[14:48:05] <Colourless> probably not
[14:48:55] <wjp> avatarInStasis doesn't prevent dragging yet... *cough* :-)
[14:49:29] <Colourless> no, it doesn't :-)
[14:49:33] <Darke> Hmm... dying is kinda bad at the moment too.
[14:49:44] <wjp> should it display a red X when trying to drag while in stasis?
[14:50:02] <Colourless> the mouse should turn to an x
[14:50:16] <wjp> ok, so it should be the same as dragging an invalid item
[14:50:16] <Colourless> of course we first need to implement the mouse before we can do that :-)
[14:50:37] <wjp> details details :-)
[14:51:16] <Colourless> spikey balls work now !
[14:51:19] <wjp> pausing is another rather relevant thing that isn't happening yet
[14:51:21] <wjp> yay!
[14:51:50] <Colourless> sort of...
[14:52:09] <wjp> oh :-)
[14:52:30] <Darke> That kinda describes everything... "Pentagram works now!... Sort of!"
[14:53:11] <wjp> and there's this thing of moving an item into its own gump
[14:53:29] <Colourless> always fun :-)
[14:53:41] <wjp> (result: basket is removed from world but not added to self)
[15:08:04] * wjp "admin"s the bug category names
[15:11:06] <wjp> Colourless: I assigned the "doors flicker when lerping" to you (with a low priority). K?
[15:11:37] <Colourless> i guess so. even though i have no idea what the prob is :-)
[15:11:55] <wjp> the doors are being moved around while opening/closing
[15:12:11] <wjp> probably since the origin for the opening door is different from the closed one
[15:12:29] <wjp> and when lerping it's moving in steps instead of instantaneously
[15:12:33] <Colourless> ah yep, ok
[15:14:32] <wjp> I'm guessing it shouldn't do lerping when changing shape
[15:14:53] * Darke suggests making bug catagories too, so we can file them appropriately. *grin*
[15:15:21] <wjp> I have 'Build system', 'Gumps', 'Renderer', 'Usecode' now
[15:15:26] <wjp> 'World mechanics'?
[15:16:15] <-- Colourless has left IRC (Read error: 104 (Connection reset by peer))
[15:16:41] <wjp> (is that an appropriate term for things like collision detection?)
[15:17:12] <Darke> Not sure. I can't think of a term that would cover that stuff... hmm...
[15:17:25] <Darke> "Game Mechanics" is usually what that collection of things would come under.
[15:18:16] <Darke> So I guess "World Mechanics" is perfectly acceptable. *grin*
[15:18:49] * Darke checks the clock and ahhs. So that's why he's so incoherent.
[15:19:05] <wjp> :-)
[15:19:58] --> Colourless has joined #Pentagram
[15:19:58] --- ChanServ gives channel operator status to Colourless
[15:21:05] <Darke> Hmm... are things supposed to fall if you remove items holding them up?
[15:21:15] <Darke> Greetings once more, non-coloured being.
[15:21:47] * Darke kicks a guard and watches him continue to pathfind his way to the next waypoint... whilst he's still in the air.
[15:23:20] <wjp> Darke: yes
[15:23:32] <wjp> I'm guessing Item::grab() should be called when moving an item
[15:23:40] <wjp> (and Item::grab() should be implemented :-) )
[15:23:49] <Darke> Hmm... I managed to lock pentagram solid doing something, whilst wandering around in that big red building (the palace?).
[15:23:59] <wjp> did you step on a mirror?
[15:24:19] <Darke> Umm... possibly. Definately 'near' a mirror, but not on it's plate.
[15:24:34] <Colourless> doors probably
[15:25:01] <Darke> Didn't try to open any doors.
[15:25:22] <wjp> Colourless: what would you call the bug category to which collision detection/hit/gotHit, etc... belong?
[15:25:33] --> Lord_Devi has joined #pentagram
[15:26:04] <Darke> Yeah, it looks like I must have just 'touched' the area with my bounding box. I managed to duplicate it by deliberately walk on top of a mirror's reflect pad.
[15:26:34] <wjp> what an... interesting... username you have :-)
[15:26:34] <wjp> hi
[15:27:00] <Lord_Devi> hah, i would have gotten rid of it recently... but it's so old it's almost tradition
[15:27:04] * Lord_Devi waves
[15:28:16] <Colourless> hi
[15:28:37] <Darke> Greetings.
[15:28:38] <Colourless> wjp: i could say collision detection :-)
[15:29:02] <wjp> why not :-)
[15:29:23] * Lord_Devi just hides in the corner seeing if there's any cool development talk he might catch n' find interesting
[15:31:04] * Darke sticks Colourless in the freezer. Oh, you said cool *development* talk. Sure you don't want cool developer talk instead?
[15:31:24] <Colourless> omgg darke
[15:32:10] * wjp spams himself with bug tracker updates
[15:32:19] <wjp> (12 mails so far :-) )
[15:33:10] <Darke> Colourless: *innocentlook*
[15:33:20] * Darke pouts. No fair! He only got one bug tracker spam!
[15:33:45] <wjp> so submit or take more bugs :-)
[15:36:07] <Darke> Even the pointless bugs that are likely to be fixed before I submit the report, like: "stepping on a mirror reflec surface causes pentagram to lock solid"? *grin*
[15:36:31] <wjp> that won't be fixed son
[15:36:33] <wjp> s/son/soon/
[15:36:38] <wjp> needs surface searches
[15:37:11] <Darke> Which is apparently what Colourless is doing now. *grin*
[15:37:52] * Darke quickly submits the bug before Colourless has a chance to fix it!
[15:37:58] <Colourless> :-)
[15:38:12] <Colourless> they will be implemented in about 2 minutes
[15:38:34] <wjp> oh, ok :-)
[15:39:40] <Colourless> woot! Mirrors work :-)
[15:40:23] <Darke> Darn. *grin*
[15:40:28] <wjp> yay :-)
[15:40:37] <Colourless> but it's not committed yet darke :-)
[15:40:43] <Darke> wjp: See! Told you!
[15:46:13] --> Cless has joined #Pentagram
[15:46:18] <-- Colourless has left IRC (Read error: 54 (Connection reset by peer))
[15:46:37] --- Cless is now known as Colourless
[15:46:37] --- ChanServ gives channel operator status to Colourless
[15:55:33] <-- Lord_Devi has left IRC (Read error: 104 (Connection reset by peer))
[15:57:25] <wjp> hm, I still didn't get the CVS mails for the collideMove stuff
[15:59:19] <Colourless> i haven't got them either
[16:00:19] <Colourless> surface search committed
[16:00:29] <wjp> if any of you is interested, I'm keeping CVS snapshots of nuvie/uwadv (and exult/pentagram) at http://www.math.leidenuniv.nl/~wpalenst/cvs/
[16:01:03] * Darke echos Colourless' "I haven't got them either."
[16:02:39] <wjp> and I did get the surface search mails just now
[16:02:41] <Colourless> odd
[16:02:53] <Colourless> me too
[16:06:46] <Darke> Umm... me too.
[16:07:58] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[16:13:22] <Colourless> uint32 Item::getTotalWeight()
[16:13:26] <Colourless> {
[16:13:26] <Colourless> return getShapeInfo()->weight;
[16:13:26] <Colourless> }
[16:13:26] <Colourless> ok :-)
[16:13:42] <Colourless> is that virtual?
[16:14:17] <Darke> No, it's probably not virtuous... *squint* oh, *virtual*.
[16:14:24] <Colourless> yes it is
[16:14:40] * wjp checks his newly generated doxygen docs
[16:14:46] <wjp> yes it is :-)
[16:15:47] <Darke> Now we just need to have our webpage automatically cvs-update and re-doxygen upon every commit, so we've got perpetually up-to-date docs. *grin*
[16:16:01] <wjp> I'll probably put it on my uni webspace
[16:16:08] <Colourless> technical docs :-)
[16:16:25] <Colourless> time for I_getSurfaceWeight
[16:16:41] <Darke> Colourless: Details, details. Docs is docs. *grin*
[16:16:53] <Colourless> now i've got to remember how to use my nice LoopScript macros
[16:17:03] <Colourless> Darke: dominus is our doc writer
[16:17:09] <Colourless> readme seems to be up to date to me
[16:20:59] <Darke> Wow. You get a shape that looks kinda like it might be a person, when you step on the mirror's pad... You know, I wonder just how many hours went into drawing/scripting/debugging this... err... *very* impressive feature?
[16:21:36] <Colourless> :-)
[16:21:38] <wjp> it's just a relatively simple use of gotHit/release
[16:21:40] <wjp> :-)
[16:22:07] <Colourless> it's better than than the hack to do the same thing in U7
[16:22:56] * Darke admits he was expecting something a little more impressive then that, but ah well. *grin*
[16:23:28] <Colourless> what, like a real reflection? :-)
[16:23:47] <wjp> now that would've been impressive :-)
[16:24:26] <Darke> Nah. Just like it detecting what part of the mirror you were over (left, center, right, left-center, etc), and displaying the appropriate amount of reflection on it. *grin*
[16:26:45] <wjp> Yup, mirrors work. When you get really close they even turn red because you're wearing a red shirt ;-) *cough*
[16:27:28] <Colourless> only if you press 'h' though
[16:28:11] <Colourless> btw, 'h' now toggles the highlight only. collisions are now always done
[16:28:18] <wjp> ok
[16:28:32] <wjp> so the readme isn't up-to-date after all? :-)
[16:28:46] <Colourless> h : highlights any item you are "hitting", colliding with
[16:28:50] <Colourless> yes it is :-)
[16:28:56] <wjp> lucky :-)
[16:29:06] * Darke ahhs... yeah. He just found out about that 'you can now drown' feature. *grin*
[16:29:10] <Colourless> i already knew what it said :-)
[16:29:46] <Colourless> i'm thinking of hacking it so av wont trigger drown or lava deaths
[16:30:02] <wjp> that would be a nice cheat :-)
[16:31:05] <Colourless> of course there 'is' a flag wont trigger them... just which one is it :-)
[16:31:11] <Colourless> water at least
[16:32:31] <wjp> easy to disable a couple of classes in the callUsecodeEvent_gotHit
[16:32:39] <Colourless> it's a hack
[16:32:41] <Colourless> 015B: 4E push global [0069 01] (DevonHitWater)
[16:32:53] <wjp> we should probably start considering some 'proper' ways to store flags :-)
[16:33:54] <Darke> Interesting... you can't 'kick' something you're touching.
[16:34:17] <Colourless> kick?
[16:34:27] <wjp> kick isn't in yet :-)
[16:34:38] <wjp> (combat mode isn't even in yet)
[16:34:40] <Darke> Colourless: 'mouse 3' it. Whatever that test is that sends objects flying. *grin*
[16:34:47] <wjp> ah :-)
[16:34:53] <wjp> it's called hurling :-)
[16:35:11] * Darke thinks 'kick' sounds better. *grin*
[16:35:30] * Darke kicks the bucket, among other things.
[16:35:58] <Colourless> Darke, your mission should you choose to accept it: Make the avatar play the kick animation after pressing mouse 3
[16:36:32] <wjp> :-)
[16:36:33] <Darke> Umm... no thanks. I think my mission is to go to sleep, to stop my sillyness. *grin*
[16:36:45] <wjp> but it's so easy to do :-)
[16:37:32] <Colourless> uh oh. i hurled some items off edge of the map
[16:39:27] <Colourless> i've now got lots of messages complaining about items being our of range at -100000 y :-)
[16:40:23] * Colourless gets back to work
[16:40:24] <Darke> Ooooh.
[16:40:56] <wjp> :-)
[16:45:32] <Colourless> get lots of "Warning: invalid item passed to area search" when getting hit be fireshrooms
[16:47:29] <Colourless> s/be/by/
[16:50:05] <wjp> doxygen stuff: http://www.math.leidenuniv.nl/~wpalenst/pentagram/
[16:51:13] <wjp> It'll take some work to 'convert' current inline doc-comments to doxygen format
[16:51:40] <Colourless> aye it will
[16:51:47] <Colourless> i need to know what it is first :-)
[16:53:10] <wjp> http://www.stack.nl/~dimitri/doxygen/docblocks.html#specialblock
[16:55:00] <Colourless> UCStack IBufferDataSource is almost surely not the right base class
[16:55:09] <Colourless> in Compound List
[16:58:25] <wjp> yes :-)
[16:58:44] <wjp> that was accidentally picked up as doxygen comments :-)
[16:59:45] <Colourless> ooh, neat inheritance diagrams :-)
[16:59:52] <wjp> yup
[17:03:44] <Colourless> jumping off of moving platforms calls AccumulateDexterity
[17:04:02] <wjp> heh :-)
[17:04:25] <Darke> So does a high dex make it easier to land on the platforms in the first place? *grin*
[17:04:35] <Colourless> no
[17:04:48] <Colourless> probably only increases your base armour class
[17:04:51] <Darke> So... err... what's dex used for then?
[17:04:56] <Darke> Ahh.
[17:05:08] <wjp> is there a chance to hit?
[17:05:13] <wjp> or does every blow hit?
[17:05:34] <Colourless> i think there is a chance to hit
[17:05:37] <Colourless> with criticals
[17:05:48] <Colourless> remember. avatar used to be able to be knocked onto his back
[17:05:59] <wjp> pre-patch, yes
[17:06:24] <Colourless> avatar still can hit others over though.
[17:06:56] <wjp> heh, the 'referenced by' list of uint32, uint16, ... is interesting :-)
[17:09:59] <Colourless> heh
[17:10:57] <Darke> Is there 'referenced by' lists for int/unsigned int/etc? If so, that'd be helpful to locate 'pentagram standard' stuff. *grin*
[17:11:10] <wjp> don't think so
[17:13:56] * Darke shrugs. Ah well, he'll have to continue to irregularly run his rather hacked up perl script to detect such stuff then. *grin*
[17:17:02] <wjp> isExplosive? :-)
[17:17:25] <Colourless> hey, all it does is check for the silly explode type flag
[17:17:28] <Colourless> might as well add it
[17:18:38] <wjp> well, let's see how well my semi-automatic cvs snapshot + doxygen updater works
[17:18:41] * wjp presses big red button
[17:20:07] <wjp> well, that seems to have worked :-)
[17:20:15] * Darke *know* remembers why he hasn't run the script in a while...
[17:20:15] <Darke> > ./locateCruft.pl ~/ls120/pentagram/ |wc -l
[17:20:15] <Darke> 657
[17:20:26] <wjp> um, 'cruft'?
[17:20:44] <wjp> I wouldn't consider int/unsigned int cruft :-)
[17:21:04] <Darke> It should be sint32/uint32, therefore it's cruft. *grin*
[17:21:07] <wjp> (in fact, I'd prefer using int/unsigned int when there's no particular reason to use one of the uintX/sintX ones)
[17:21:26] <Darke> Besides, it also checks for stuff like ALPHA defines still floating around in our code, etc.
[17:23:00] <Darke> (From waaaay back when exult was actually compiling on an Alpha. *grin*)
[17:33:37] * Darke heeds the call of the Zzz's... in kind of the same way snakes heed the call of a snake charmer, swaying dazedly in it's direction. Night!
[17:33:46] <wjp> night :-)
[17:33:51] --- Darke is now known as DarkeZzz
[17:34:01] <Colourless> ok, i've committed test of doxygen comments
[17:35:50] * wjp presses big red button again
[17:37:30] <wjp> ok
[17:38:27] <wjp> looks good
[17:40:44] <Colourless> neat
[17:40:46] <Colourless> even makes links
[17:41:00] <Colourless> not sure though if a link to Item is required though :-)
[17:41:41] <wjp> um, no :-)
[17:42:12] <Colourless> probably should make that ObjID
[17:42:17] <Colourless> rather than item num
[17:42:47] <Colourless> should probably clarify that line a bit more. too
[17:46:35] <Colourless> ok, what are the glob aligned chunks called?
[17:46:51] <wjp> hm, we never really named them
[17:46:54] <wjp> chunks?
[17:49:14] <Colourless> i guess so
[17:50:01] <Colourless> you should get it to skip the docs dir
[17:50:14] <Colourless> it's picking up stuff that is not pentagram :-)
[17:53:37] <wjp> hm, such as?
[17:54:05] <Colourless> colourless0.cc
[17:54:26] <wjp> is that in docs/?
[17:54:36] <Colourless> yes
[17:54:44] <Colourless> docs/design/
[17:55:04] <wjp> I'll exclude docs
[17:56:00] <wjp> should be gone now
[17:59:41] <wjp> hm, something which just occured to me: that extra parameter to Actor::doAnim could be something like 'ignore collisions'
[17:59:58] <Colourless> hmm, could be
[18:00:05] <wjp> (or one of the unknown bytes in the animation header could indicate this)
[18:04:28] <Colourless> ok, it would be useful to have doxygen to expand the ENABLE_RUNTIME_CLASSTYPE() macro
[18:06:23] * wjp tries an option
[18:07:15] <wjp> ok, that didn't work
[18:08:03] <Colourless> need ENABLE_PREPROCESSING=YES, MACRO_EXPANSION=YES, EXPAND_ONLY_PREDEF=YES, EXPAND_AS_DEFINED=ENABLE_RUNTIME_CLASSTYPE
[18:08:26] <Colourless> i think :-)
[18:08:50] <wjp> MACRO_EXPANSION=YES shouldn't be needed
[18:08:58] <wjp> hm, or maybe it should
[18:09:11] <Colourless> EXPAND_AS_DEFINED
[18:09:15] <Colourless> If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this tag can be used to specify a list of macro names that should be expanded. The macro definition that is found in the sources will be used. Use the PREDEFINED tag if you want to use a different macro definition.
[18:10:30] <wjp> still nothing
[18:10:58] <Colourless> try
[18:11:01] <Colourless> EXPAND_AS_DEFINED=ENABLE_RUNTIME_CLASSTYPE
[18:11:01] <Colourless> [03:38] <Colourless> i think :-)
[18:11:09] <Colourless> EXPAND_AS_DEFINED=ENABLE_RUNTIME_CLASSTYPE()
[18:11:16] <wjp> yes, I was just trying that :-)
[18:11:43] <wjp> still the same
[18:12:16] <Colourless> hm
[18:12:26] <Colourless> my guess is it's not finding the macro being defined
[18:13:56] <Colourless> try doing PREDEFINED=ENABLE_RUNTIME_CLASSTYPE()
[18:14:08] <Colourless> instead of EXPAND_AS_DEFINED=ENABLE_RUNTIME_CLASSTYPE()
[18:14:30] <Colourless> the idea is, if it's working, the ENABLE_RUNTIME_CLASSTYPE lines shouldn't be produced
[18:15:37] <wjp> still there
[18:16:38] <Colourless> somethings not quite working then
[18:17:00] <wjp> ah, without () it worked
[18:17:14] <wjp> PREDEFINED=ENABLE_RUNTIME_CLASSTYPE
[18:17:59] * wjp hmmms
[18:18:19] <Colourless> yes?
[18:20:05] <Colourless> try setting WARNINGS=YES if it's not already there
[18:21:30] <wjp> already on
[18:21:45] <Colourless> and does it say anything about the macro?
[18:21:48] <wjp> no
[18:22:56] <Colourless> i'm guessing it's problem is it's looking in the header files, and not finding ENABLE_RUNTIME_CLASSTYPE being defined
[18:23:32] <Colourless> cause that is defined by included pent_include.h which of course included in the cpp files, not the h
[18:23:46] <wjp> hm, yes, that might be a problem
[18:24:12] <Colourless> try adding #include "pent_include.h" or p_dynamic_cast.h in Object.h
[18:25:37] <wjp> hm, annoying that there isn't an 'autoinclude'
[18:29:40] <Colourless> perhaps it should be a feature request
[18:29:49] <wjp> might already exist in a newer version
[18:32:55] <wjp> from the docs on the site it doesn't look like it, though
[18:33:09] <Colourless> http://www.stack.nl/~dimitri/doxygen/todo.html number 31
[18:36:26] <Colourless> anyway, did including the file actually do anything?
[18:36:29] <wjp> ah... INPUT_FILTER can probably be used for this
[18:36:34] <wjp> oh, sorry, didn't try :-)
[18:37:40] <Colourless> hmm, input filter... it would be abusing it to get it to include a file, but doable :-)
[18:40:19] <wjp> hacks'r'us :-)
[18:40:50] <Colourless> all you need to do is get it to output #include "pent_include.h" followed by <input-file>
[18:43:53] <wjp> argh
[18:44:02] <Colourless> yse?
[18:45:00] <Colourless> infinite recursion?
[18:45:15] <wjp> more like infinite annoyance :-)
[18:47:33] <Colourless> if i were doing it in windows, the type command has enough flexibilty to do exactly what's required, as it can read multiple files :-)
[18:47:47] <wjp> oh, cat can, too
[18:47:53] <wjp> doxygen is the problem, not the filter :-)
[18:47:59] <wjp> http://www.math.leidenuniv.nl/~wpalenst/pentagram/doxygen/ActorAnimProcess_8h-source.html
[18:49:13] <Colourless> hmm :-)
[18:49:44] <wjp> hm, include path, maybe
[18:49:46] <Colourless> there might be a command to 'hide' a line
[18:50:00] <wjp> the option below INPUT_FILTER might only be for the source browser
[18:50:16] <wjp> hard to tell when it isn't working yet :-)
[18:52:03] <Colourless> try doing
[18:52:21] <Colourless> \\! \include pent_include.h
[18:52:33] <wjp> yes, with INPUT_FILTER=NO it does include it, but not in the file source
[18:52:40] <wjp> file source browser, I mean
[18:53:05] <wjp> (since the docs do mention pent_include.h is being included)
[18:53:23] <Colourless> ok
[18:53:26] <Colourless> but does it work? :-)
[18:53:31] <wjp> no :-(
[18:54:00] <Colourless> do you have the correct setting set?
[18:54:11] <Colourless> PREDEFINED=ENABLE_RUNTIME_CLASSTYPE
[18:54:24] <wjp> EXPAND_AS_DEFINED, currently
[18:55:10] <Colourless> uh yeah
[18:55:18] <Colourless> EXPAND_AS_DEFINED=ENABLE_RUNTIME_CLASSTYPE
[18:56:24] <wjp> *sigh* I give up
[18:56:52] <Colourless> try removing the () from the #define and the use of the macro
[18:59:11] <wjp> dinner first :-)
[18:59:13] <wjp> I'll bbl
[18:59:20] <Colourless> :-)
[19:48:24] <wjp> back
[19:48:36] * Colourless is looking at createsprite
[19:50:54] <wjp> ah, cool
[19:50:57] <wjp> explosions :-)
[19:51:11] <Colourless> i know '5' of it's args
[19:51:17] <Colourless> i don't think you need to guess what they are :-)
[19:51:49] <wjp> shape, frame, location?
[19:51:58] <Colourless> :-)
[19:52:05] <wjp> did I pass? :-)
[19:52:12] <Colourless> yes
[19:52:56] <wjp> it might be a frame range instead of a frame
[19:53:08] <Colourless> it's frame
[19:53:15] <Colourless> there would also be a frame range too
[19:53:33] <Colourless> probably a timing value too
[19:53:41] <Colourless> which leaves 2 args :-)
[19:53:44] <wjp> there's a createSprite(0x242, 0, 11, 2, <coords>) here
[19:53:57] <wjp> frames 0-17 form an explosion
[19:54:01] <Colourless> first arg = shape, second = frame
[19:54:10] <Colourless> 11 = hex
[19:54:11] <wjp> (I meant 0x11)
[19:54:32] <Colourless> that could be end frame, OR num frames :-)
[19:54:40] <wjp> If I had to guess I'd say display frames 0-17, showing each one for 2 frames
[19:54:45] <wjp> end frame; num frames = 18
[19:55:10] * wjp looks for a createSprite that doesn't start at frame 0
[19:55:40] <wjp> end frame
[19:55:42] <Colourless> there is a second createSPrite func that as 2 extra args
[19:55:48] <wjp> there's a (0x244, 0x51, 0x77)
[19:56:06] <wjp> hm, ok, I've been looking at D6
[19:56:31] <Colourless> i know the difference
[19:56:46] <Colourless> createSprite(shape, frame, end, unk, <coords>)
[19:56:48] <Colourless> is equiv to
[19:57:13] <Colourless> createSprite(shape, frame, end, end, 1, unk, <coords>)
[19:57:38] <wjp> hm, it's not a process, is it?
[19:58:04] <wjp> kind of weird, I'd expect being able to wait for a sprite effect to finish
[19:58:09] <Colourless> could be
[19:58:44] <wjp> retval isn't used anywhere
[19:59:19] <Colourless> as in, probably is. but i don't know if it should return a pid
[19:59:45] <wjp> hm, that long form is only used in the 'equivalent' form you mentioned
[20:00:07] <wjp> so they didn't use whatever extra flexibility it provided
[20:00:19] <Colourless> ok, good :-)
[20:00:55] <Colourless> which means the 1 value is probably not got any use
[20:01:26] <wjp> the 4th argument (of the short one) is 1, 2 or 3
[20:01:33] <Colourless> it's repeats
[20:01:48] <wjp> yes, that would be my guess too
[20:02:16] <Colourless> 4 arg, which would be the unk...
[20:03:19] <Colourless> wait
[20:03:45] <Colourless> could be 60ths or 30th of a second
[20:04:10] * wjp nods
[20:07:22] <Colourless> ok. lets implement
[20:10:34] <wjp> oh shit, I drowned :-)
[20:10:52] <Colourless> doing what?
[20:11:00] * wjp makes a mental note to levitate up a bit while crossing the cave to the plateau :-)
[20:14:54] <wjp> yikes, Darke's last bug report is one big spelling/grammar mistake :-)
[20:15:03] * wjp wonders if he was already half asleep :-)
[20:27:01] <Colourless> you know, they just HAD to use overloaded functions in the intrinsics list didn't they :-)
[20:27:29] <Colourless> createSprites and... createSprite
[20:27:42] <wjp> I_createSprite, I_createSpriteEx? :-)
[20:28:03] <Colourless> i was going to have I_createSprite and I_createRepeatedSprite
[20:28:16] <wjp> weren't they both repeating?
[20:28:27] <Colourless> or I_createSpriteLooped
[20:28:36] <Colourless> i wouldn't call a repeat count of 1 repeating :-)
[20:29:13] <Colourless> args for the short one are createSprite(shape, frame, end, delay, x, y, z);
[20:29:26] <Colourless> args for the longer one createSprite(shape, frame, end, unk, repeats, delay, x, y, z);
[20:33:02] <Colourless> i'll use Ex (shorter)
[20:33:09] <wjp> :_)
[20:33:13] <wjp> s/_/-/
[20:33:24] <wjp> it appears a broken nose is infectious :-)
[20:33:49] <Colourless> i was just thinking the same thing
[20:35:21] * wjp documented Container
[20:36:36] <Colourless> i bet 'that' was difficult :-)
[20:36:41] <wjp> oh, yes, very :-)
[20:36:55] <Colourless> now try Item :-)
[20:37:02] <wjp> I'm doing Object first :-)
[20:37:08] <Colourless> i guess i should write docs as i go
[20:37:26] <wjp> that was what I was doing :-)
[20:37:34] <wjp> (but I did all of Container while I was at it :-) )
[20:37:43] <wjp> (I added Container::CanAddItem() )
[20:39:12] <wjp> hm, why does Object::callUsecode return a uint32?
[20:39:16] * wjp changes that to a uint16
[20:40:06] <Colourless> don't look at me
[20:48:37] <wjp> I think I'll disable 'brief' descriptions in doxygen
[20:49:03] <wjp> (those are the descriptions in the top section of a class documentation)
[20:49:21] <wjp> our function names should be descriptive enough to serve as a brief description
[20:49:58] <wjp> (otherwise the entire docs will be filled with: "getObjId(); gets objID" :-)
[20:51:37] <Colourless> hmmm. you know, i 'could' make both use the same function. we do support such things cause we send the arg size to the function
[20:56:19] <Colourless> infact, i think i'll do that :-)
[21:12:49] <wjp> what's the even_odd param to inFastArea?
[21:13:23] <Colourless> got to do with tracking when an item has entered/left the fast area
[21:14:08] <Colourless> GameMapGump has 2 vectors for the fast area
[21:14:31] <Colourless> one stores what was in the fast area previous frame, and the other stores what was in it this frame
[21:14:46] <Colourless> the even_odd param is set to which of the fast areas is being used for this frame
[21:15:40] <wjp> *phew*.. Item.h done
[21:15:48] <wjp> (I skipped the intrinsics, though)
[21:17:44] <wjp> hmmm... INTRINSIC really confuses doxygen :-)
[21:17:49] <wjp> Item::INTRINSIC ( I_getCZ )
[21:17:53] <wjp> Reimplemented in Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, Actor, MainActor, Container, Container, Egg, Egg, Egg, Egg, Egg, Egg, MonsterEgg, and MonsterEgg.
[21:18:22] <Colourless> perhaps you should force that defined
[21:19:30] <Colourless> PREDEFINED=INTRINSIC(x) x (const uint8* args, unsigned int argsize)
[21:19:57] * wjp inserts a uint32
[21:20:00] <Colourless> PREDEFINED=INTRINSIC(x)=x(const uint8* args, unsigned int argsize)
[21:20:10] <Colourless> oh yeah
[21:21:28] <Colourless> the delay value to animate sprite looks like it's 1/15 seconds
[21:22:00] <Colourless> s/animate/create/
[21:37:28] <wjp> hmm... I seem to be losing items occasionally
[21:37:39] <wjp> (when dragging things in and out of gumps)
[21:37:49] <Colourless> yes
[21:37:51] <Colourless> something odd is going on
[21:38:02] <Colourless> happened to me when i dragged myself
[21:38:12] <wjp> you made yourself disappear? :-)
[21:38:18] <Colourless> if i moved though, i came back
[21:40:03] <wjp> I should probably call collideMove(teleport=true, force=false) when dropping a dragged item, right?
[21:40:38] <Colourless> hmm, you could
[21:40:52] <Colourless> it would return 0 if it can't move (i think...)
[21:41:24] <wjp> it's too late at that point to detect it can't move
[21:41:47] <Colourless> ignore the i think :-)
[21:42:07] <Colourless> then set force to true
[21:43:18] <wjp> oh! I'm forgetting to clear item->parent
[21:43:46] <Colourless> did you try the INTRINSIC define thing?
[21:43:50] <wjp> no
[21:44:05] <wjp> I'm not really in the mood for trying more macro things with doxygen atm :-)
[21:44:12] <Colourless> cause the docs at the moment look really bad :-)
[21:44:34] <wjp> when did you lose yourself exactly?
[21:44:42] <wjp> after dragging yourself out of a container?
[21:44:51] <Colourless> no
[21:44:59] <Colourless> i was just in tenebrae
[21:45:05] <wjp> (which has interesting effects, btw ;-) )
[21:46:05] <wjp> hm, I can reproduce it
[21:46:11] <Colourless> umm, do you want to add code to Item::move that will clear parent if you are moved
[21:46:38] <Colourless> s/you are/the item is/
[21:46:41] <wjp> I'd prefer to make Item::move fail if container/equipped
[21:46:51] <wjp> s/container/contained/
[21:47:25] <Colourless> well then, how do you move an item from a container to the world?
[21:47:45] <wjp> container->RemoveItem(item); item->move(x,y,z);
[21:48:11] <Colourless> so that would be parent->RemoveItem(this); move(x,y,z);
[21:48:16] <Colourless> ok
[21:48:31] <wjp> well, those two calls are in separate functions, actually
[21:48:45] <wjp> the item is removed in ContainerGump::StopDraggingItem
[21:49:06] <wjp> and added in GameMapGump::DropItem
[22:01:51] <Colourless> i broke floor plates....
[22:02:20] <Colourless> specifically floor plates no longer raise
[22:04:37] <wjp> hm, is release() still being called?
[22:04:44] <Colourless> cause surfaceSearch is busted :-)
[22:04:46] <wjp> maybe getSurfaceWeight?
[22:05:11] <Colourless> and probably areaSearch is busted too
[22:05:19] <wjp> in what way?
[22:05:41] <Colourless> don't do any check to see if the input item is the same as the item being added to the list of found items
[22:05:59] <wjp> ah
[22:06:10] <wjp> good point
[22:08:56] <Colourless> ok, that fixed it
[22:09:52] <wjp> great
[22:16:17] <Colourless> committed sprites. and I am going to bed
[22:16:39] <Colourless> cya
[22:16:40] <-- Colourless has left IRC ("casts invisibility")