#uwadv@irc.freenode.net logs for 11 Oct 2002 (GMT)

Archive Today Yesterday Tomorrow
Underworld Adventures homepage


[07:04:32] --> wjp has joined #uwadv
[07:04:32] --- ChanServ gives channel operator status to wjp
[08:52:21] --> Dominus has joined #uwadv
[08:53:26] <-- Dominus has left #uwadv ()
[09:25:54] <-- QQtis has left IRC (brunner.openprojects.net irc.openprojects.net)
[09:25:54] <-- wjp has left IRC (brunner.openprojects.net irc.openprojects.net)
[09:25:59] --> wjp has joined #uwadv
[09:25:59] --> QQtis has joined #uwadv
[10:10:34] --> Dominus has joined #uwadv
[10:21:19] <-- Dominus has left IRC (Read error: 104 (Connection reset by peer))
[10:23:42] --> Dominus has joined #uwadv
[11:08:36] <Dominus> damn stl never wants to compile on my system...
[11:26:46] <-- wjp has left IRC (brunner.openprojects.net irc.openprojects.net)
[11:26:46] <-- Dominus has left IRC (brunner.openprojects.net irc.openprojects.net)
[11:26:46] <-- QQtis has left IRC (brunner.openprojects.net irc.openprojects.net)
[11:27:09] --> vividos has joined #uwadv
[11:27:09] --> Dominus has joined #uwadv
[11:27:09] --> QQtis has joined #uwadv
[11:27:09] --> wjp has joined #uwadv
[11:27:42] <vividos> huh :)
[11:27:42] <Dominus> and yes, after the volume curve was set correctly my blue screens are gone
[11:28:09] <vividos> well, the code diff you sent just updates the value in the config object, and uwadv doesn't have that code
[11:28:41] <Dominus> so, the midi code in uwadv doesn't produce an invalid number (instead of 1.0) for sure?
[11:30:21] <Dominus> hm, could you send me the libstlport_mingw32_static.a file again? stl refuses to compile on my system (probably due to gcc 3.2)
[11:31:24] <vividos> I found another solution to the gcc-3.2 problem
[11:31:56] * Dominus listens
[11:32:16] <vividos> just go to the download section of the uwadv home page and download the "needed files to compile uwadv" under "sources"
[11:33:04] <vividos> in the zip file there is a file called stl_gcc.h that fixes the include path for the mingw32-2.0 release
[11:33:23] * vividos probably should send a mail with the note to uwadv-devel
[11:33:50] <Dominus> ok
[11:40:46] <wjp> hi vividos
[11:41:55] <vividos> hi wjp
[11:45:03] <vividos> just fixed item combining
[11:53:07] <vividos> whp, how do I rotate a 3d vector around a given axis?
[11:53:49] <vividos> s/whp/wjp
[11:57:37] <wjp> ugh
[11:57:42] <wjp> well
[11:57:55] <wjp> easiest is to rotate the given axis onto the x-axis
[11:57:59] <wjp> then rotate around the x-axis
[11:58:02] <wjp> and the rotate back
[11:58:28] <wjp> if you want the all-in-one matrix I guess I could run to the library and find a linalg book
[11:58:46] <vividos> well, you don't have to run to the library just for that :)
[11:59:01] <wjp> (it's down the hall, btw ;-) )
[11:59:22] <Dominus> vividos: with semi-latest source (from this morning): source/physics.cpp: In member function `void
[11:59:23] <Dominus> ua_physics_model::calc_collision(ua_vector2d&, const ua_vector2d&)':
[11:59:23] <Dominus> source/physics.cpp:250: ISO C++ forbids declaration of `level' with no type
[11:59:23] <Dominus> make: *** [source/physics.o] Error 1
[11:59:25] <vividos> well, I just wanted to implement ua_vector3d::rotate(double angle, double axisx, double axisy, double axisz)
[12:00:05] <wjp> I have a 3d graphics book lying beside my bed which has that function in it
[12:00:11] <wjp> problem is that my bed is 10 minutes away :-)
[12:00:34] <vividos> Dominus: you did enable the debug define, didn't you? :-)
[12:00:46] <Dominus> hm, yes
[12:00:52] <Dominus> shouldn't do that?
[12:01:26] <wjp> http://www.makegames.com/3drotation/ <-- has the matrix about halfway through the page
[12:01:40] <wjp> (right above "Properties of a Closed Set")
[12:01:56] <-- vividos has left IRC (Killed (NickServ (Nickname Enforcement)))
[12:02:04] --> vividos has joined #uwadv
[12:02:04] --- ChanServ gives channel operator status to vividos
[12:02:21] <wjp> http://www.makegames.com/3drotation/ <-- has the matrix about halfway through the page
[12:02:22] <wjp> (right above "Properties of a Closed Set")
[12:02:23] <vividos> Dominus: just add a "int" between "static" and "level"
[12:02:44] <vividos> wjp: thanks!
[12:03:16] <Dominus> vividos: if i disable debug I don't have to do that right? and there is nothing to gain from debug?
[12:04:04] <vividos> Dominus: yes, but some things are disabled, like alt+pageup / alt+pagedown == level changing
[12:04:25] <Dominus> saving/loading works?
[12:04:46] <vividos> yes
[12:05:08] <vividos> but expect to throw away your saved games every now and then :)
[12:05:16] <Dominus> ok, then I'm compiling without debug options
[12:05:46] <Dominus> hey, I've been with exult for quite some time and therefor I'm used to throw away my saves :-)
[12:06:11] <vividos> wjp: the matrix is pretty ugly :)
[12:07:19] <vividos> I think I just implement x, y and z-axis rotation
[12:31:13] <Dominus> hm, saving/reloading is still a bit buggy, right?
[12:32:06] <Dominus> and you might want to have n and N handled the same when asked if a new savegame is wished for
[12:40:19] <vividos> well, the savegames are just quick hacks to get it working; the savegame screen is hopefully replaced at a time
[12:40:56] <Dominus> it crapped out on me when I entered n instead of N when I first saved
[12:41:03] <vividos> :)
[12:41:30] <vividos> don't think that screens would/should get into official releases
[12:41:43] <Dominus> maybe not :-)
[12:45:47] * vividos asks himself what rehubbing is ...
[12:45:56] <-- wjp has left IRC (brunner.openprojects.net irc.openprojects.net)
[12:45:56] <-- vividos has left IRC (brunner.openprojects.net irc.openprojects.net)
[12:45:56] <-- QQtis has left IRC (brunner.openprojects.net irc.openprojects.net)
[12:45:56] <-- Dominus has left IRC (brunner.openprojects.net irc.openprojects.net)
[12:46:07] --> vividos has joined #uwadv
[12:46:07] --> Dominus has joined #uwadv
[12:46:07] --> wjp has joined #uwadv
[12:46:07] --> QQtis has joined #uwadv
[12:54:41] <-- QQtis has left IRC (brunner.openprojects.net irc.openprojects.net)
[12:54:41] <-- vividos has left IRC (brunner.openprojects.net irc.openprojects.net)
[12:54:41] <-- Dominus has left IRC (brunner.openprojects.net irc.openprojects.net)
[12:54:41] <-- wjp has left IRC (brunner.openprojects.net irc.openprojects.net)
[12:54:55] --> vividos has joined #uwadv
[12:54:55] --> Dominus has joined #uwadv
[12:54:55] --> wjp has joined #uwadv
[12:54:55] --> QQtis has joined #uwadv
[12:56:51] <vividos> log looks funny :)
[12:59:29] <wjp> it probably shows that all of us left and rejoined? :-)
[13:01:52] <vividos> yes
[13:46:18] <Dominus> gotta go, see you later
[13:46:21] <-- Dominus has left IRC ("enough for now")
[14:01:22] --> hairyjim has joined #uwadv
[14:13:36] <vividos> hi jim!
[14:15:45] <hairyjim> lo
[14:16:28] <vividos> nice to see you here in the channel
[14:16:37] <hairyjim> Thought I'd poke my nose round and say hello
[14:16:46] <vividos> hello :)
[14:16:51] <vividos> did you get my last mail?
[14:16:51] <hairyjim> ;)
[14:17:15] <hairyjim> About critters?
[14:17:43] <vividos> yes
[14:18:07] <hairyjim> I haven't had time to more than glance at that, I'm afraid.
[14:18:12] <vividos> hmm ok
[14:19:20] <hairyjim> How am I handling those? The same way as in your draft spec, or not?
[14:20:03] <vividos> well, I did research a few days ago, so I don't quite remember
[14:20:24] <hairyjim> I can't remember how that stuff works. It looks right in TSSHP as far as I can tell.
[14:20:42] <vividos> the 32 different critter animations are loaded, that's for sure
[14:21:02] <vividos> I'm asking myself how critter object id maps to critter animation
[14:21:05] <hairyjim> Yeah. We're talking about original Underworld here I presume
[14:21:09] <vividos> yes
[14:21:27] <wjp> hi hairyjim
[14:21:40] <hairyjim> Hold on. Crit_get_uw_segment_frame() in critter.c I think
[14:21:42] <hairyjim> wjp
[14:21:58] <vividos> ok, I'll have a look
[14:22:10] <hairyjim> I'm using (objid - 64) as index into the association table
[14:22:30] <hairyjim> which I think I have to build myself for Underworld, it's explicit in the LoW crits data though
[14:22:32] <vividos> hmm, but there are 64 critters AFAIK
[14:23:11] <hairyjim> No, it's in crit/assoc.anm
[14:23:16] <vividos> ah yes, objid - 64, and it limits to the number of loaded anims
[14:24:25] <hairyjim> assoc.anm has the 32 names of animations at the start
[14:24:58] <hairyjim> then it has 2 bytes for each critter (not for each anim) with anim, variant for each.
[14:24:59] <vividos> yes, and the anim/variant list
[14:25:03] <hairyjim> Right.
[14:26:11] <hairyjim> But the names are indexed by animation and the anim/variant list are indexed by critter id
[14:26:19] <vividos> variant is the number of the auxpal in the anim to use
[14:26:20] <vividos> aaaah!
[14:26:22] <vividos> that's it!
[14:26:48] <hairyjim> Animation #3 is "bat" but a bat is critter 2
[14:27:04] <vividos> everything gets clearer now
[14:27:12] <hairyjim> which indeed has 3 for its anim, not 16
[14:27:23] <hairyjim> That's where you were confused, yes?
[14:27:25] <vividos> yes
[14:27:59] * vividos needs to put that in the uw-formats.txt
[14:28:30] <vividos> how's TSSHP going on?
[14:28:44] <hairyjim> Slowly.
[14:28:54] <hairyjim> I'm trying to write my thesis at the moment, hence the lack of updates
[14:29:25] <vividos> the same at my place, unfortunately
[14:29:27] <hairyjim> I've managed to hack a bit, but not do much real coding lately.
[14:29:41] <hairyjim> I think I've figured out the object free list
[14:30:30] <vividos> the one in objects.dat?
[14:30:43] <hairyjim> No, the table in the level archive
[14:31:24] <vividos> where exactly is that?
[14:31:37] <hairyjim> Immediately following the static object list
[14:32:06] <vividos> the missing 0x0108 bytes?
[14:32:49] <hairyjim> There's 2 tables, one for critters with 254 entries (0x1fc bytes) the other for static objects with 768 entries (0x600 bytes)
[14:33:02] <hairyjim> Then there's 0x104 bytes I don't know about
[14:33:19] <hairyjim> Then there are 3 count values and a chunk ID ('uw')
[14:34:23] <vividos> hmm ...
[14:35:07] <vividos> I think I wait until you update your uw-specs.txt
[14:35:21] <hairyjim> I just this minute did, if you get it from cvs
[14:35:34] <vividos> ok
[14:35:44] <hairyjim> I'm also now describing object definitions as having 4 16-bit words, since they do
[14:35:53] <hairyjim> (UW is entirely 16-bit 286 code)
[14:36:26] <vividos> right
[14:37:56] <vividos> just saw that you added a section "3.1. Common object properties", too. I always thought I got these infos from your document :)
[14:38:21] <hairyjim> It looks to me as if you got them from my code
[14:38:40] <hairyjim> Then I got them back from your uw-formats ;(
[14:38:44] <hairyjim> ;) I meant
[14:39:02] <vividos> hehe
[14:39:12] <vividos> I also found some stuff in the TSSHP SF forum
[14:41:03] <hairyjim> How do you identify in-use objects? By tracing through the links from the tile map?
[14:42:11] <vividos> yes, at loading time I go through all tilemap links to the master object table and copy the infos to my own list
[14:42:40] <hairyjim> Right. I load up the whole object list but mark them as used from the tilemap links in the same way
[14:42:54] <vividos> of course I also follow the link2 when the flag is set
[14:43:07] <hairyjim> I'll probably continue to do so, but cross-check them against the free list to make sure everything's ok there
[14:43:11] <hairyjim> Of course. Me too ;)
[14:43:28] <vividos> ah, the free list describes which places are free, I guess
[14:43:48] <hairyjim> Right.
[14:44:02] <vividos> ah, item 1 is the avatar :)
[14:44:22] <hairyjim> From a cursory examination it does indeed appear that the entries in the free list are exactly those missing from the map
[14:44:52] <hairyjim> Yup. He doesn't exist in the original lev.ark, but might in the save games
[14:45:07] <vividos> good, another puzzle solved!
[14:45:59] <vividos> hmm, when the avatar is item #1, they even could have stored the inventory in the master object list
[14:46:02] <hairyjim> The 2 6-bit fields in the object definition, one is quality, the other I've decided to call "owner"
[14:46:18] <hairyjim> They might. I haven't checked.
[14:47:09] <vividos> I thought the inventory was stored as part of the player.dat in the SaveX folders.
[14:47:39] <vividos> but storing the inv in the master object list would only require relinking some objects when e.g. an object is picked up
[14:48:01] <hairyjim> I think the stuff in player.dat is just the predefined inventory slots (shoulders, hands, armour and the 8 pack slots)
[14:48:01] <wjp> time for me to go home
[14:48:01] <wjp> bye
[14:48:04] <hairyjim> cu
[14:48:08] <-- wjp has left IRC ("gtg")
[14:48:19] <hairyjim> It'd be more convenient for sure.
[14:48:30] <hairyjim> Hold on, how long is player.dat?
[14:48:52] <vividos> more than 256 bytes
[14:49:02] <hairyjim> How MUCH more than 256 bytes, is what I meant ;)
[14:49:06] <vividos> only the 220 first are encrypted
[14:49:41] <vividos> length varies
[14:49:46] <hairyjim> Damn.
[14:50:03] <hairyjim> Then the inventory probably is stored with the player.
[14:50:38] <vividos> shortest one I saw, glancing at some savegames, was 0x0138 bytes
[14:51:05] <vividos> and there's an unencrypted on in the "data" folder as well
[14:51:31] <hairyjim> That gives 56 = 7*8 inventory slots minimum
[14:52:19] <hairyjim> Nowhere near enough. You need at least 2(shoulder) +2(hand) +2(ring) +4(armour) +8(pack)
[14:53:18] <hairyjim> So there is. Hadn't looked at that.
[14:53:21] <vividos> the one in the data folder is 0x012d long
[14:53:34] <hairyjim> "GRONKEY". Hmmm
[14:53:38] <vividos> :)
[14:54:22] <vividos> the uw_demo has some more files, in the data folder; Dplayer.* (they're encrypted)
[14:56:00] <vividos> btw, the channel has logs, if you need to look at it later again
[14:56:01] <vividos> ?logs
[14:56:01] <exultbot> Logs are available at http://www.math.leidenuniv.nl/~wpalenst/uwadvlog.php
[14:56:16] <hairyjim> Great.
[14:58:53] <vividos> do you plan to update uwadv's uw-formats.txt as well? I could do that if you like
[14:59:11] <hairyjim> Go ahead.
[14:59:45] <hairyjim> Got to go in a minute, have to meet with PhD supervisor about all the work I haven't done on the thesis this week :(
[15:00:49] <vividos> you're always welcome here, of course!
[15:00:54] <vividos> bye!
[15:01:08] <hairyjim> Thanks!
[15:01:12] <-- hairyjim has left IRC ("[BX] Do you... BitchX?")
[16:08:51] <QQtis> greetings vividos
[16:09:27] <QQtis> I do not expect to be going back home this weekend
[16:09:46] <QQtis> so unfortunately I won't have any new music for you in the near future
[16:09:57] <QQtis> maybe in another week
[16:20:57] <vividos> hi QQtis
[16:21:05] <vividos> ok
[16:55:29] <vividos> gtg
[16:55:31] <-- vividos has left IRC ("Leaving")
[17:07:02] --> wjp has joined #uwadv
[17:07:02] --- ChanServ gives channel operator status to wjp
[18:12:11] --> Dark-Star has joined #uwadv
[18:32:27] --- Dark-Star is now known as Dark-Star|afk
[18:39:31] <QQtis> hey wjp
[18:39:37] <QQtis> did you try new CVS?
[18:39:51] <QQtis> why is clipping completely turned off?
[19:30:14] --- Dark-Star|afk is now known as Dark-Star
[19:34:25] <wjp> hm, no, I haven't tried it yet
[19:36:29] <wjp> the collision detection was updated today
[19:38:57] <wjp> hm, yes, it does seem to be slightly broken :-)
[20:02:08] <QQtis> slightly ;)
[21:02:54] <-- Dark-Star has left IRC (brunner.openprojects.net irc.openprojects.net)
[21:02:57] --> Dark-Star has joined #uwadv