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

Archive Today Yesterday Tomorrow
Pentagram homepage


[00:00:13] <[ind]mobill> hmm
[00:00:17] <[ind]mobill> i think its 25
[00:00:28] <Dominus> I bet colourless or wjp know the exact number
[00:00:56] <[ind]mobill> ok
[00:00:59] <[ind]mobill> thanks
[00:01:00] <-- DarkeZzz has left IRC (kornbluth.freenode.net irc.freenode.net)
[00:01:01] <[ind]mobill> ill ask them
[00:01:13] --> DarkeZzz has joined #pentagram
[00:19:46] <-- DarkeZzz has left IRC (kornbluth.freenode.net irc.freenode.net)
[00:19:53] <-- Dominus has left IRC ("enough for now")
[00:19:57] --> DarkeZzz has joined #pentagram
[00:28:18] <-- [ind]mobill has left IRC (Read error: 60 (Operation timed out))
[01:20:41] --> Cash|Away has joined #pentagram
[01:21:16] <Cash|Away> <[ind]mobill> - have you played the crusader series?
[01:21:25] <Cash|Away> eh when you come back
[01:22:38] <Cash|Away> date?
[01:22:46] <Cash|Away> time?
[01:22:52] <Cash|Away> time
[01:22:59] <Cash|Away> date ?
[01:23:12] <Cash|Away> time ?
[01:23:45] <Cash|Away> ?date
[01:23:45] <exultbot> It is now Fri Jun 13 01:23:45 2003 (GMT).
[01:24:06] <Cash|Away> *tnks*
[01:30:33] <Cash|Away> ?exult
[01:30:36] <Cash|Away> ?pentagram
[01:30:52] <Cash|Away> ? pentagram
[01:30:55] <Cash|Away> pentagram ?
[01:31:05] <Cash|Away> grrrr does exult bot know much
[01:32:59] <Cash|Away> hehe
[01:34:43] --> geiusly has joined #pentagram
[01:35:31] --- Cash|Away is now known as Cashman
[01:35:32] <Cashman> hi
[01:36:12] <geiusly> pentagram's gaming stuff? damn, i was looking for satanism...
[01:37:00] <-- geiusly has left #pentagram ("Client exiting")
[01:39:22] <Cashman> hurrr
[01:39:38] <Cashman> I wonder if thats worth putting in the quotes - or are the quotes strictly developer ones!
[01:39:43] <Cashman> any thoughts on that?
[01:39:50] <Cashman> I think that should go somewhere lol
[01:39:56] <Cashman> :-)
[01:40:22] <Cashman> or really I am $-)
[01:46:02] --- Cashman is now known as Cash|away
[01:46:04] <-- Cash|away has left IRC ()
[01:53:20] <-- servusZzz has left IRC (Read error: 110 (Connection timed out))
[03:25:06] --> servus has joined #pentagram
[09:14:45] --> `daniel has joined #pentagram
[09:15:04] <`daniel> ?
[09:15:24] <`daniel> what does this channel do?
[09:16:31] <DarkeZzz> It recieves text and relays it to the users sitting on it, just like all the other irc channels. *grin* As to what it's for, it's for discussions of the 'pentagram' engine that will hopefully allow you to run ultima8 on modern OSes, sometime in the future.
[09:21:27] <`daniel> I thought exult was used for that
[09:21:29] <`daniel> hehe
[09:21:32] <`daniel> oh well
[09:21:40] <`daniel> fair enough, different project different channel
[09:22:08] <DarkeZzz> Yup.
[09:22:41] <DarkeZzz> #exult is occasionally used to chat about it on, but we created a channel so that people who aren't interested in our rambling about it, don't have to listen to it. *grin*
[09:32:54] <servus> when can i worship pagan gods?
[09:33:15] <servus> bubble bubble toil and blackrocktongueofflame
[09:33:42] <`daniel> having libglade and gtk as requirements for exult studio would be nice :)
[09:33:55] <`daniel> perhaps you could including it in the INSTALL text?
[09:34:33] <servus> i cant get curphoo to make :(
[09:35:06] <DarkeZzz> Probably would be nice to have them in the autoconf script. I thought they were documented somewhere though, can't quite remember where though. *grin*
[09:51:03] <`daniel> garr
[09:51:15] <`daniel> im getting stuck in the dependency trap :/
[09:51:51] <DarkeZzz> Eh?
[09:51:58] <`daniel> libglade needs gnome-libs and that needs orbit, and orbit needs something else and so on...
[09:53:07] <-- `daniel has left IRC (Read error: 104 (Connection reset by peer))
[09:53:59] <DarkeZzz> Ahh.
[09:57:50] --> `daniel has joined #pentagram
[09:57:57] <`daniel> back
[11:39:27] <-- `daniel has left IRC (Remote closed the connection)
[13:50:53] --> Colourless has joined #Pentagram
[13:50:54] --- ChanServ gives channel operator status to Colourless
[13:56:13] <Colourless> Hi!
[13:56:22] <Colourless> oh wait, no one here :-)
[13:59:57] --> wjp has joined #pentagram
[13:59:57] --- ChanServ gives channel operator status to wjp
[14:00:28] <wjp> now there is :-)
[14:00:28] <wjp> hi
[14:01:20] <Colourless> hi :-)
[14:01:28] <wjp> what a bizarre quote
[14:01:39] <Colourless> :-)
[14:01:54] <wjp> satanism... I wonder if he was serious :-)
[14:02:08] <Colourless> one would think not :-)
[14:02:19] <wjp> I (finally) cleaned up f and g, btw :-)
[14:02:32] <Colourless> oh NO!
[14:02:40] <wjp> f is now "@%\x49\x00=*%\x24\x00=&$"
[14:02:41] <Colourless> the end of the world as we know it ?
[14:02:57] <Colourless> oh yay for loop scripts :-)
[14:02:57] <wjp> and g is "@%\x49\x00=*%\x04\x00=&$"
[14:03:12] <wjp> they look like cursing :-)
[14:03:48] <Colourless> do you by any chance think that maybe... just maybe that using some macros to generate hard coded loop scripts might be a nice idea?
[14:04:02] <wjp> go for it :-)
[14:04:03] <Colourless> such as something like
[14:04:18] <Colourless> char *loopscript =
[14:04:39] <Colourless> LOOPSCRIPT_SOMETHING(23424)
[14:04:50] <Colourless> LOOPSCRIPT_SOMETHINGELSE()
[14:04:52] <Colourless> ;
[14:05:47] <Colourless> is there any advantage using a string ("") vs using an array { } ?
[14:06:14] <wjp> no
[14:07:22] <wjp> LOOPSCRIPT(LS_AND(LS_SHAPE(73), LS_QUALITY(36))) ?
[14:07:41] <wjp> don't forget we also need to know the length
[14:07:56] <Colourless> that is abusing the C++ pre processor if i've ever heard of it :-)
[14:08:08] <wjp> so? :-)
[14:08:09] <Colourless> hmmm yes
[14:08:23] <Colourless> !!\ No newline at end of file
[14:08:32] <wjp> so I saw...
[14:08:33] <Colourless> in the quotes commit by dominus :-)
[14:08:39] <wjp> maybe we need Dominus protection too :-)
[14:09:08] <Colourless> hey, for loopscript len we can just to sizeof
[14:09:13] <Colourless> for hardcoded that is
[14:09:18] <Colourless> s/to/do/
[14:09:24] <Colourless> if using []
[14:09:43] <wjp> hm, yes, indeed
[14:12:35] <Colourless> is making a widgets directory under gumps ok? it's use should hopefully be obvious :-)
[14:13:21] <wjp> sure
[14:13:50] <Colourless> ok. i was thinking that widgets shouldn't be in the same dir as the actual gumps cause it would just utterly confuse things
[14:14:04] <Colourless> there would become lots and lots of files :-)
[14:14:18] * wjp nods
[14:14:20] <Colourless> my opinion is only actual gumps should go in gumps
[14:14:37] <Colourless> widgets would then go in gumps/widgets obviously
[14:14:55] <wjp> really? ;-)
[14:15:03] <Colourless> hell no
[14:15:21] <wjp> *phew*... I almost thought you were going to do things the logical way :-)
[14:15:21] <Colourless> i think audio is the appropriate dir actually
[14:15:33] <wjp> now you're talking :-)
[14:16:35] <wjp> I added a OnMouseClick event, btw
[14:16:53] <Colourless> i see you have gone mad with 80 col stuff :-)
[14:16:58] <wjp> (for the delayed click)
[14:17:06] <wjp> :-)
[14:17:33] <wjp> yes... I tend to clean that up when I'm editing things in the vicinity
[14:17:39] <Colourless> i think i'm going to have to made an 81 col variable name somewhere :-)
[14:17:48] <wjp> NO!
[14:17:50] <wjp> :-)
[14:18:27] <wjp> thisVariableNameDoesntReallyNeedToBeThisLongButItAnnoysWJP?
[14:18:35] * DarkeZzz cackles!
[14:18:44] <Colourless> not long enough!
[14:19:09] <Colourless> now, if it were written in llc it could even have an excessively long type
[14:19:18] <wjp> make it a static const char * const * const * type then :-)
[14:19:50] <Colourless> Really Really Really Really Really Really long Really Really Really Really short Really long thisVariableNameDoesntReallyNeedToBeThisLongButItAnnoysWJP_ButItIsStillTooShortSoIllMakeItReallyReallyLongLikeItsType
[14:20:01] <DarkeZzz> That'd make it an ArrayVariableName, rather then just a VariableName. *grin*
[14:20:22] <wjp> I think I'd have to enable symbol completion in emacs when it gets to this :-)
[14:20:42] <wjp> thisVar<ctrl-.>
[14:20:53] * DarkeZzz makes a mental note he Really Really Really Really NeedsToAddHisLLCDocsToCVSSomeday.
[14:21:15] <Colourless> ctrl-space here
[14:23:20] <wjp> collision detection and item placement code... *sigh*
[14:23:35] <Colourless> collistion detection is not the hard part :-)
[14:23:48] <DarkeZzz> Collision avoidance is?
[14:23:58] <Colourless> hehe, exactly :-)
[14:24:10] <Colourless> oh shit, i hit something....
[14:24:52] <DarkeZzz> Now we just need to add a fully fledged physics engine so we can watch things bounce. *grin*
[14:25:12] <Colourless> what? we can enable bouncy guard mode. isn't that enough?
[14:26:18] <DarkeZzz> Only if you don't mind every object acting as if it were a billard ball. OTOP, it'd be fun to chuck things at NPCs and watch them bounce off each other.
[14:26:45] <Colourless> got to make sure we conserve momentum and energy
[14:26:59] <Colourless> and i also don't think that npc collisions would be elastic
[14:28:37] <DarkeZzz> Nah. I think that if a NPC bounces off another NPC, we need to bounce them off with increased energy and momentum at a tangent, and also bounce the NPC that was collided with away in the appropriate direction too. It's more fun that way. But would make things a little chaotic as everyone exits the execution scene. *grin*
[14:29:51] <wjp> #define CARTOON_STYLE_PHYSICS? :-)
[14:30:24] <Colourless> :-)
[14:31:03] <DarkeZzz> Nah. Write the physics engine in usecode and just swap in a different collision reaction class. *innocentlook*
[14:31:19] <Colourless> that would involve people running of the edges of cliffs and not falling till they realize they are no longer on the cliff. Then they would instantly stop moving horizontally and instantly start to move vertically
[14:31:38] * wjp slaps DarkeZzz with a 25kg mechanics textbook
[14:31:49] * DarkeZzz yipyelps!
[14:31:54] <Colourless> was it made by acme though wjp?
[14:32:12] * DarkeZzz bounces randomly around the room from the impact!
[14:32:16] <wjp> dunno... the cover is unreadable now :-)
[14:33:13] <wjp> judging by Darke's path it was an acme book, though :-)
[14:34:17] <Colourless> :-)
[14:37:24] * DarkeZzz concertina's for a bit, then stretches himself back to his original height.
[14:47:03] <Colourless> this looks nasty:
[14:47:05] <Colourless> LOOPSCRIPT(script, LS_AND(LS_EQUAL(LS_SHAPE(),LS_INT(73)), LS_EQUAL(LS_Q(),LS_INT(36))));
[14:47:19] <Colourless> it works though :-)
[14:48:34] <Colourless> of course it could be improved, by doing something like LS_SHAPE_EQUAL
[14:49:00] * DarkeZzz looks dubious and thinks it's just an excuse for Colourless to perpetuate more Macro Nightmares(tm). *grin*
[14:52:37] <Colourless> i made it LOOPSCRIPT(script, LS_AND(LS_SHAPE_EQUAL(73), LS_Q_EQUAL(36)));
[14:52:41] <Colourless> which is less dubious
[14:53:30] <Colourless> that could be written as const uint8 script[] = LS_AND(LS_SHAPE_EQUAL(73), LS_Q_EQUAL(36)), LS_TOKEN_END; but which is worse? :-)
[14:54:13] <Colourless> actually no
[14:54:18] <Colourless> forgot something there
[14:54:30] <Colourless> const uint8 script[] = { LS_AND(LS_SHAPE_EQUAL(73), LS_Q_EQUAL(36)), LS_TOKEN_END };
[14:54:57] <Colourless> using the C preprocessor as a compiler impresses me :-)
[14:56:01] * DarkeZzz hides all books and references to template meta-programming from Colourless. He'd be *way* too dangerous with those!
[15:06:01] <-- Kirben has left IRC ("System Meltdown")
[15:48:55] <Colourless> english language is really poorly designed. word ordering makes too much of a difference. Example, WILL IT vs IT WILL
[15:50:04] <Colourless> that statement of course assumes the language was designed in the first place :-)
[15:58:10] <wjp> somehow I doubt that :-)
[15:59:01] <Colourless> :-)
[16:00:13] * wjp wonders what he'll do next on pentagram
[16:00:39] <wjp> avatar movement maybe
[16:00:55] <wjp> or maybe fix target
[16:01:58] <wjp> did the game pause while waiting for an item to be selected?
[16:02:32] <Colourless> yes
[16:02:53] <wjp> speaking of which, pausing has to be done too
[16:03:37] * Colourless is working on 'more' gump stuff. More specifically, text widgets
[16:04:30] <Colourless> then maybe hacking in books, signs and tombstones, then probably button widgets, then the paperdoll
[16:05:21] <wjp> paperdoll is opened by I_openGump currently; we'll need to change that
[16:05:34] <wjp> probably by making openGump a virtual method
[16:05:58] <Colourless> yes, but it doesn't really matter all that much
[16:06:11] <wjp> not really, no
[16:12:10] <wjp> anyway... collision detection: we'll need to detect if a given position is valid, if it is supported by something, if it is on water or lava, if it's invalid-but-only-just (for stepping up stairs), if there's something you can climb onto maybe, ...
[16:13:03] <Colourless> depends on what functions you exactly want
[16:13:55] <Colourless> you'd want a simple bounding test that would probably check to see if the location is blocked, and perhaps return the surface type(s) the object would be supported by, if there is a surface
[16:14:13] <Colourless> another type would be to specfically check to see if an animation can run unblocked
[16:14:26] * wjp nods
[16:14:54] <Colourless> another type would be for stair stepping detection. I think the max delta is just 8 units
[16:15:01] <Colourless> so that would be pretty simple to check for
[16:15:07] <wjp> is that the min delta too?
[16:15:22] <wjp> or would you have to check all intermediate step sizes too?
[16:15:32] <Colourless> no, min can be any afaik
[16:16:07] <Colourless> i don't think the world is constructed that badly though that you would 'have' to check all, rather than just 8 :-)
[16:16:51] <Colourless> one thing that we need to think about
[16:17:36] <Colourless> when calling the gotHit() func when an object is stepped on, does it get called everytime you move
[16:17:56] <Colourless> or only when the object first steps on, and finally steps off
[16:18:14] <wjp> I would think the latter
[16:18:20] <wjp> but not sure
[16:19:46] <Colourless> also what is supposed to happen when an object moves from under something else
[16:20:06] <Colourless> is gotHit() supposed to be called signalling that the object has 'stepped' off?
[16:20:20] <Colourless> i don't think that would ever happen, but you never know
[16:20:51] <wjp> I think we should call gotHit then
[16:21:56] <Colourless> which means the following
[16:21:59] <Colourless> on object move
[16:22:46] <Colourless> do a surface scan for below us, and a surface scan for above us.
[16:23:00] <Colourless> after move do a second surface scan for below us, and a surface scan for above us.
[16:23:42] <Colourless> if an object is in second below but not the first, call gotHit for on, if an object is not in the second but in the first, call gotHit for off
[16:24:38] <Colourless> and with the aboves, call gotHit off on moved object for all items in the first but not second,
[16:25:13] <Colourless> and call gotHit on for the moved object for all items in the second but not first
[16:26:00] <Colourless> can't be sure what exactly the gotHit args are, but my guess is the first ushort is the item num of the 'hitter'
[16:26:11] <Colourless> probably wouldn't be hard to work out from looking at usecode
[16:27:19] <Colourless> odd
[16:27:31] <Colourless> FLOOR::gotHit() seems to have something compiled away :-)
[16:27:45] <Colourless> 0093: 24 cmp
[16:27:46] <Colourless> 0094: 51 jne 0000h (to 0097)
[16:27:46] <Colourless> 0097: 50 ret
[16:27:46] <Colourless> 0098: 79 end
[16:27:48] <Colourless> hmm :-)
[16:28:04] <wjp> :-)
[16:28:34] <wjp> avatar footsteps?
[16:28:48] <wjp> they seem to be checking if the avatar stepped on it
[16:28:53] <Colourless> no idea. it's sort of... impossible to tell :-)
[16:29:06] <Colourless> check for avatar = yes, why, no idea :-)
[16:32:59] <Colourless> hmm, you know, gotHit might only be called stepping on
[16:33:05] <Colourless> not stepping off
[16:33:41] <Colourless> it also might be used for combat hits too
[16:34:23] <wjp> release could be for stepping off
[16:34:41] <Colourless> yes possibly
[16:35:06] <Colourless> that would make sense
[16:38:42] <-- Colourless has left IRC ("bbl")