#nuvie@irc.freenode.net logs for 4 Jun 2003 (GMT)

Archive Today Yesterday Tomorrow
Nuvie homepage


[00:16:10] --> Kirben has joined #nuvie
[01:28:33] <-- Eclair has left IRC (Read error: 113 (No route to host))
[01:29:49] <-- Kirben has left IRC (Read error: 104 (Connection reset by peer))
[01:30:28] --> Kirben has joined #nuvie
[02:15:59] --> animeloe has joined #nuvie
[02:16:03] --- animeloe is now known as Eclair
[05:40:55] --> Yuv422 has joined #nuvie
[05:51:29] --> animeloe has joined #nuvie
[05:54:12] <-- Eclair has left IRC (Read error: 60 (Operation timed out))
[05:58:10] <-- servus has left IRC (Read error: 110 (Connection timed out))
[06:20:43] --- animeloe is now known as Eclair
[07:22:17] <Kirben> There is no support for MD yet, right ?
[07:27:02] <kefka> MD?
[07:27:07] <kefka> oh
[07:27:11] <kefka> martian dreams
[07:27:15] <kefka> dunno
[07:30:08] <-- Kirben has left IRC (Read error: 54 (Connection reset by peer))
[07:30:42] --> Kirben has joined #nuvie
[07:44:55] --> maku has joined #nuvie
[07:45:00] <maku> hello all
[07:45:27] <maku> Kirbe, you asked about MD?
[07:47:06] <kefka> hello
[07:47:40] <maku> I have plans to start working on Martian Dreams support
[07:49:02] <maku> maybe after u6 introduction works better
[07:49:07] <Kirben> ok thats good to know.
[07:49:10] <Yuv422> hey guys
[07:49:15] <maku> hi
[07:49:28] <maku> drawbrigde works! thanks
[07:49:36] <Yuv422> Kirben: I got adplug to work. :)
[07:49:41] <Yuv422> maku: np
[07:50:07] <maku> adplug with nuvie?
[07:50:20] <Yuv422> nah just the lib
[07:50:25] <Yuv422> I couldn't get it to compile
[07:50:32] <maku> why was that?
[07:50:50] <Kirben> What did you change to get past the getopt problem ?
[07:50:57] <Yuv422> they were re-including a GNU libc version of optget
[07:51:13] <Yuv422> which was conflicting with the libc version on darwin
[07:51:28] <Yuv422> getopt
[07:51:46] <Yuv422> -D__GNU_LIBRARY__
[07:51:56] <Yuv422> for adplay
[07:52:20] <Yuv422> for adplug I just removed the include and recompiled with the libc version.
[07:53:14] <Yuv422> so we should be able to provide music to the intro. :)
[07:54:03] <maku> :)
[07:54:11] <maku> adplug is somewhat slow
[07:54:13] <Yuv422> I bet people will want us to support the new MT32 version though
[07:54:58] <Yuv422> I must admit they do sound a bit better
[07:56:03] <maku> is there MT32 emulator library available?
[07:56:11] <maku> what does exult use?
[07:56:55] <Kirben> One is been worked on http://zetafleet.com/dev/rmt/index.php
[07:58:33] <Yuv422> I think we'll startout with adplug
[07:58:42] <Yuv422> then add mt32 support in later.
[07:58:54] <Yuv422> as adplug should be quite easy to support.
[07:59:01] <maku> yep
[07:59:29] <Yuv422> have you looked at the MD file structure maku?
[07:59:39] <Yuv422> is your copy lzw compressed?
[07:59:56] <maku> yes it is --- or at least I think it is
[08:00:05] <Yuv422> IIRC they gave you the option to decompress the files when installing
[08:00:14] <maku> almost every file has extension lzc
[08:00:43] <maku> yes there is such an option but I copied this from my archive CD
[08:00:57] <maku> I could give it a try with dosbox
[08:01:02] <Yuv422> we'll need to see what happens when you select uncompress when installing
[08:01:21] <Yuv422> the problem is you can only do it when installing form the disk sets for the first time
[08:01:34] <Yuv422> you can't change it once it is installed on your HD.
[08:01:46] <maku> then I have a problem
[08:01:51] <maku> I think we sould support both compressed and uncompressed version
[08:02:00] <Yuv422> yes
[08:02:21] <Yuv422> or provide a utility to transform one to the other.
[08:02:33] <maku> u6, also, can be either compressed or uncompressed
[08:02:44] <Yuv422> really?
[08:02:48] <maku> iirc
[08:02:49] <Yuv422> I don't think so
[08:02:59] <Yuv422> not my original version at least
[08:03:09] <Yuv422> it is always compressed
[08:03:19] <maku> ok. I may be wrong
[08:06:23] <maku> talk.lzc seems to be uncompressed
[08:06:37] <maku> it looks a bit a DOS bat script
[08:07:02] <maku> "if errorlevel 1 goto err ..."
[08:07:46] <Yuv422> really?
[08:08:34] <maku> make > talk.log
[08:08:41] <maku> @if errorlevel 1 goto err
[08:08:49] <maku> copy talk.lzc \u6\game
[08:08:53] <maku> @goto done
[08:08:56] <maku> ...
[08:09:01] <maku> wierd
[08:09:58] <Yuv422> what file was that from again?
[08:10:08] <maku> talk.lzc
[08:10:14] <maku> from martian dreams
[08:10:22] <Yuv422> the start of the file?
[08:10:28] <maku> yep
[08:10:41] <maku> then all the texts in conversations
[08:10:45] <maku> in plain text
[08:11:03] <maku> including few non-alphabet characters
[08:11:03] <Yuv422> you must have the uncompressed install
[08:11:10] <maku> so it seems
[08:11:18] <Yuv422> my talk is lzw compressed
[08:12:41] <maku> fine. then we can look for differences between our installations
[08:12:52] <maku> and test nuvie with both
[08:13:41] <maku> does someone have any information about eggs?
[08:13:46] <maku> I'd like to implement them
[08:14:23] <Yuv422> hmm
[08:14:26] <Yuv422> jim has some info
[08:14:34] <Yuv422> so does JP Morris
[08:14:51] <maku> do you have any URLs?
[08:15:09] <maku> we can probably use some code from exult also
[08:15:30] <Yuv422> hmm I think exults code is a bit too far removed to work in nuvie
[08:15:58] <Yuv422> http://nuvie.sourceforge.net/?page=links
[08:16:01] <maku> yes but it can give some hints and information about how the data is encoded
[08:16:01] <Yuv422> the last two links
[08:16:13] <maku> thanks
[08:17:29] <Yuv422> you'll need to get to know the objlist file too
[08:17:51] <maku> eggs are basically containers
[08:17:52] <Yuv422> that's where temp actors are stored
[08:18:11] <Yuv422> a egg just spwans an object
[08:18:11] <maku> both 12 bytes long, where ordinary objects are 6 bytes long
[08:18:27] <Yuv422> no I think an egg is the same size
[08:18:40] <Yuv422> could be wrong though
[08:19:06] <maku> how nuvie currently handles eggs?
[08:19:20] <Yuv422> it doesn't
[08:19:33] <maku> but at least it knows they're there
[08:19:34] <Yuv422> they get loaded along with all the other objects
[08:19:50] <maku> but get no special treatment?
[08:19:56] <Yuv422> that's why we see the little egg tile.
[08:20:01] <Yuv422> no
[08:20:17] <Yuv422> we should have a class that handles eggs
[08:21:17] <maku> I'll have a look
[08:21:51] <maku> btw, we should make classes really support other games
[08:22:39] <Yuv422> yes
[08:22:45] <maku> xGame class could define all file names, which could then be passed to other classes
[08:23:02] <Yuv422> I've started with the UseCode class
[08:23:13] <maku> I've noticed :)
[08:23:42] <Yuv422> what do you think?
[08:24:23] <maku> looks very promising
[08:25:48] <Yuv422> we still don't fully understand how temp actors ork
[08:25:50] <Yuv422> work
[08:26:08] <Yuv422> but they are stored along with the perm actors in objlist
[08:26:21] <maku> don't look at me. I have no idea.
[08:27:12] <maku> I think first we have to understand how eggs really work. how they are triggered etc.
[08:27:19] <maku> then it's the actors
[08:29:31] <Yuv422> I've got a doc going in docs/ cvs about objlist
[08:30:17] <Yuv422> I think the data stored for temp actors will he in decoding the egg data
[08:30:26] <Yuv422> he/help
[08:30:37] <maku> it might
[08:32:10] <Yuv422> try going to someware with a horse or sheep egg and saviong the game
[08:32:23] <Yuv422> you'll see all the temp animals in objlist
[08:33:05] <Yuv422> I'm not sure who should control "mosters" after they have been created
[08:33:15] <maku> ActorManager
[08:33:21] <Yuv422> as some like guards/wisps can speak
[08:33:29] <Yuv422> and you can ride horses
[08:33:35] <Yuv422> probably
[08:33:55] <Yuv422> there will be a limit to the amount of temp actors at any given time too
[08:34:07] <Yuv422> as objlist can only store a limited amount
[08:34:14] <maku> oh
[08:34:34] <maku> have you any idea what this limit is?
[08:34:58] <Yuv422> I can work it out
[08:34:59] <Yuv422> on sec
[08:35:04] <maku> cool
[08:36:05] <Yuv422> 32
[08:36:11] <maku> quite small
[08:36:15] <Yuv422> yes
[08:36:48] <Yuv422> then again 32 on screen at once would surely overwhelm the avatar and party. ;)
[08:36:57] <maku> :)
[08:37:09] <Yuv422> unless it was 32 sheep
[08:37:19] <maku> much food
[08:39:00] <maku> too many classes have hard coded filenames
[08:39:09] <Yuv422> they all do
[08:39:11] <Yuv422> ;)
[08:39:27] <maku> yep. that's too many ;)
[08:40:48] <Yuv422> hehe nobody said it was going to be a nice task. ;)
[08:41:17] <Yuv422> we need to see how different the three games really are first.
[08:41:40] <Yuv422> then we can work out how to implement them all.
[08:42:13] <maku> true. I believe SE is more similiar to U6 than MD is to U6
[08:43:10] <Yuv422> just looking at the file nameing between games. I'd say SE is closer to MD than u6
[08:43:22] <Yuv422> so u6 is the odd one out
[08:43:29] <maku> shame on u6!
[08:43:55] <maku> origin tweaked engine a bit before making SE and MD
[08:44:59] <Yuv422> I think we should get eggs going soon
[08:45:18] <maku> I am just studing the code in ObjManager.cpp
[08:45:30] <maku> we could build an own tree for eggs
[08:46:03] <Yuv422> yeah
[08:46:17] <Yuv422> we might want to see how many eggs there are first
[08:46:33] <Yuv422> but it sounds like the way we'll go
[08:46:43] <Yuv422> let me check how many eggs there are
[08:46:58] <maku> ok
[08:47:20] <Yuv422> egg is obj_n 335
[08:47:56] <maku> I've read that there is a size byte before each object in objlist
[08:48:10] <maku> if it's 1 then objects is just an ordinary one
[08:48:19] <Yuv422> ?
[08:48:30] <maku> if it's 2 then object is container or an egg
[08:48:39] <Yuv422> there aren't any objects in objlist
[08:48:52] <maku> oops. wrong filename :)
[08:48:55] <Yuv422> objects are stored in objblkxx files
[08:48:57] <Yuv422> hehe np
[08:49:26] <maku> so if this size is == 2 (or was it 12?) and obj_n == 335 then it's an egg!
[08:49:44] <Yuv422> do you mean status?
[08:50:15] <maku> I think status has different meaning for eggs
[08:51:41] <maku> status seems to be this byte
[08:52:30] <maku> where are the status flags defined?
[08:52:46] <Yuv422> there are no status flags yet
[08:53:14] <maku> nice
[08:53:47] <maku> I'll make a new class ObjEgg that extends Obj
[08:53:52] <Yuv422> there are 942 eggs
[08:54:05] <Yuv422> Obj is just a struct
[08:54:42] <Yuv422> can you extend structs in C++?
[08:54:57] <maku> never heard one could
[08:55:12] <maku> I remembered Obj was a class
[08:56:10] <maku> could ObjManager::loadObj() just return NULL and store the data in different list when it hits an egg?
[08:56:36] <Yuv422> loadObj just reads the object data from disk
[08:56:57] <Yuv422> bool ObjManager::loadObjSuperChunk(char *filename, uint8 level)
[08:57:18] <Yuv422> actually manipulates the data.
[08:57:46] <maku> so my egg code goes there
[08:58:16] <Yuv422> well you could feed the objects into the egg list there
[08:59:06] <Yuv422> but you'll need to handle the object inside the egg
[08:59:20] <Yuv422> have a look at how I add objects into containers
[08:59:27] <Yuv422> I need another llist for that
[08:59:46] <maku> have to add a list for eggs
[09:00:18] <Yuv422> objects in a container
[09:00:32] <Yuv422> find their container by it's position in the object file
[09:00:35] <Yuv422> its
[09:02:03] <Yuv422> so if you add the egg to list as normal it will have its children added automatically
[09:02:30] <maku> yep
[09:02:47] <Yuv422> they will be in the obj->container
[09:03:35] <maku> but when an egg is triggered?
[09:03:53] <maku> when avatar first sees it?
[09:06:34] <Yuv422> I'd say they would be area based
[09:06:48] <Yuv422> so if you come within n tiles of the egg
[09:06:51] <Yuv422> it might fire
[09:07:08] <maku> I'll try to find where this 'n' is stored
[09:07:31] <Yuv422> trail and error. :)
[09:07:37] <Yuv422> trial
[09:07:40] <maku> :)
[09:07:58] <Yuv422> there is also a random change it will fire
[09:08:06] <Yuv422> which might be qty
[09:08:13] <maku> quality may be from 0 to 100
[09:08:25] <Yuv422> if(obj->obj_n == 335)
[09:08:25] <Yuv422> printf("egg status = %d, qty = %d qual = %d\n",obj->status,obj->qty,obj->quality);
[09:08:32] <Yuv422> add that to loadObj
[09:08:41] <Yuv422> then you can see all the eggs as they are loaded
[09:09:09] <Yuv422> brb
[09:15:28] <maku> qual might be the range
[09:16:02] <maku> is see values from 0 to 21, 0 and 4 being most common
[09:16:55] <maku> egg in LB's thorne has status of 0
[09:17:27] <maku> all other eggs have status 0
[09:17:51] <maku> so 0x20 could mean "Trigger only once"
[09:18:17] <Yuv422> could do
[09:18:50] <Yuv422> try changing them in a hex editor
[09:19:01] <Yuv422> and running the result in the original u6
[09:19:40] <maku> running u6 in dosbox on my slow lappy is pure pain...
[09:20:37] <maku> the egg in the thorne has its quality set to 2
[09:22:09] <maku> I don't the offset of the egg
[09:22:12] <maku> in the file
[09:22:40] <maku> I don't even know in which file it resides
[09:31:01] * maku is away: having lunch
[09:43:17] * maku is back (gone 00:12:16)
[10:01:23] <-- Yuv422 has left IRC (Read error: 110 (Connection timed out))
[10:07:24] <-- laxdragon has left IRC (sterling.freenode.net irc.freenode.net)
[10:07:32] --> laxdragon has joined #nuvie
[10:40:56] <-- maku has left IRC ("Jo riittää.. Vain järjestys takaa tulevaisuuden!")
[11:39:57] --> servus has joined #nuvie
[12:11:44] --> Yuv422 has joined #nuvie
[13:12:55] --> maku has joined #nuvie
[13:14:58] <Yuv422> wb maku
[13:16:33] <maku> hello
[13:16:57] <maku> I just installed U6 on my brothers computer
[13:17:04] <Yuv422> ah k
[13:17:11] <maku> now I am able to play the real thing
[13:17:20] <Yuv422> what spec machine?
[13:18:58] <maku> AMD Duron 700mHz, 512MB ram, Radeon ?
[13:19:19] <maku> win2k
[13:20:27] <maku> I believe that the qual of an object inside an egg is somehow related to temp actors
[13:21:00] <Yuv422> how do you think it is related?
[13:21:16] <maku> the number of the actor?
[13:22:32] <Yuv422> probably
[13:22:40] <maku> all creatures and monsters spawned by eggs behaving same way have the same gual
[13:23:14] <maku> oops.. I meant qty
[13:23:17] <Yuv422> you can check the value against the object list in docs
[13:23:44] <maku> qual tells how many objects to create
[13:23:47] <Yuv422> I guess there are eggs with multiple objects inside?
[13:24:09] <maku> all eggs seem to have only one object inside them
[13:24:49] <maku> egg's qual could be distance from which egg is triggereg
[13:26:17] <maku> I would do some more testing if pu6e had better support for eggs
[13:26:37] <maku> it corrupts some values
[13:27:10] <Yuv422> that's no good.
[13:29:31] <maku> if I could figure out where some particular egg is in objblk file, I could do some hacking
[13:29:51] <Yuv422> easy
[13:30:00] <maku> tell me
[13:30:00] <Yuv422> well sort of easy
[13:30:13] <Yuv422> get the egg's location
[13:30:22] <maku> x, y and z?
[13:30:31] <Yuv422> and objblk_n
[13:30:32] <Yuv422> yes
[13:30:47] <Yuv422> then you can work out which objblk file it's in
[13:31:02] <Yuv422> just divde x & y by 128
[13:31:44] <Yuv422> then seek 2 + 8 * objblk_n into the file
[13:31:51] <Yuv422> and you'll be at the egg.
[13:32:05] <maku> great. I'll give this a try
[13:33:04] <maku> btw, Avatar can walk on water near opened drawbridge
[13:33:23] <Yuv422> have you got todays cvs
[13:33:34] <maku> from this morning
[13:33:42] <maku> GMT+3
[13:33:53] <Yuv422> hmm I updated it today not sure when your time
[13:34:15] <Yuv422> have a look in ObjManager::is_passable
[13:34:33] <Yuv422> if you have this line
[13:34:35] <Yuv422> bool object_at_location = false;
[13:34:42] <Yuv422> then you've got the latest cvs.
[13:35:19] <maku> there it is
[13:35:29] <maku> the line I mean
[13:35:33] <Yuv422> hmm
[13:35:44] <Yuv422> where can you walk on water?
[13:36:02] <maku> on the left side of the bridge
[13:36:10] <maku> one tile wide area
[13:36:50] <Yuv422> hmm I don't seem to be able to
[13:37:04] <maku> I try to recompile
[13:37:23] <maku> I may have modified ObjManager.cpp
[13:37:25] <-- maku has left IRC ("Jo riittää.. Vain järjestys takaa tulevaisuuden!")
[13:37:49] --> maku has joined #nuvie
[13:37:52] <maku> good me
[13:37:57] <Yuv422> hehe
[13:38:01] <Yuv422> wrong button?
[13:38:05] <maku> yep
[13:38:15] <maku> :)
[13:38:44] <Yuv422> you used to be able to walk up the left side of the drawbridge
[13:39:57] <maku> I cannot anymore
[13:40:03] <Yuv422> :)
[13:40:52] <maku> then just make crank animate only when used :)
[13:41:19] <Yuv422> I haven't worked out how I'm going to do that yet.
[13:41:41] <maku> there are few other objects that shouldn't animate constantly
[13:41:59] <maku> maybe add new flag
[13:42:27] <Yuv422> we just need to workout which objects shouldn't animate all the time
[13:42:55] <maku> so is drawbridge hardcoded now?
[13:43:01] <maku> do they both work?
[13:43:11] <Yuv422> the other one should work
[13:43:22] <Yuv422> but I haven't tested it
[13:43:29] <Yuv422> as you can't use the crank in nuvie
[13:43:33] <maku> cool
[13:44:00] <maku> bridges in MD may be implemented similiar way. what do you think?
[13:44:09] <Yuv422> could be
[13:51:20] <Yuv422> did you find your egg location in the objblk file?
[13:51:35] <maku> I am on the phone...
[13:51:42] <Yuv422> ah k
[13:59:23] <maku> back
[14:09:04] <maku> no luck
[14:09:14] <Yuv422> on what?
[14:09:23] <maku> finding the egg
[14:09:45] <maku> or I may have found it, I just don't understand the data
[14:10:06] <Yuv422> have a look at jims u6notes.txt
[14:10:18] <Yuv422> that describes the object structure on disk
[14:10:31] <maku> ok
[14:10:33] <Yuv422> also you might want to look at this.
[14:10:34] <Yuv422> http://www.it-he.org/eggs2.txt
[14:10:39] <Yuv422> if you haven't already
[14:11:08] <Yuv422> from eggs2.txt
[14:11:08] <Yuv422> Quantity: Maximum number of objects that appear.
[14:11:09] <Yuv422> For Silver Snakes, this determines the length of the snake.
[14:11:09] <Yuv422> Quality: If you set this to 9, a creature will be docile and runs away.
[14:11:09] <Yuv422> If you set it to 8, they will be aggressive and violent.
[14:11:09] <Yuv422> (This was sampled from a comparison between the 'Death Deer' I
[14:11:11] <Yuv422> created accidentally in Doug's Castle, and wild deer outside
[14:11:13] <Yuv422> Trinsic way.)
[14:11:15] <Yuv422> There are other values but I don't know what they mean.
[14:12:52] <Yuv422> qty in the egg is percentage chance that the egg will fire
[14:14:52] <Yuv422> do the objects spawned have values in y and z?
[14:15:27] <maku> they have
[14:15:30] <Yuv422> before they spawn that is
[14:16:12] <maku> the gargoyle egg in the thorne has x, y, z: 156, 640, 1
[14:16:29] <maku> the gargoyle _in_ the egg
[14:16:55] <maku> the egg has coordinates: 307, 350, 0
[14:17:24] <maku> qty and qual should be stored in separate bytes?
[14:17:36] <maku> in objblknn
[14:24:18] <Yuv422> yes
[14:24:34] <maku> now I think I found the egg I was looking for.
[14:24:41] <maku> I searched frong file
[14:24:44] <maku> :)
[14:24:51] <Yuv422> ah k
[14:25:10] <Yuv422> I can never remember which comes first
[14:25:12] <Yuv422> x or y
[14:25:18] <Yuv422> in the objblk numbering
[14:25:48] <maku> what about the coordinates of spawned objects?
[14:26:01] <Yuv422> what do you mean?
[14:27:06] <maku> you asked do creatures inside egg have coordinates
[14:27:59] <Yuv422> yeah
[14:28:12] <Yuv422> well x will be the location of the egg in the objblk file
[14:28:22] <Yuv422> don't know what y and z would be for
[14:28:36] <Yuv422> anyway I'm off to bed now
[14:28:42] <maku> okay. cya
[14:28:50] <maku> I keep hacking
[14:28:57] <Yuv422> let me know what you find out
[14:28:59] <Yuv422> :)
[14:29:01] <maku> sure
[14:29:07] <Yuv422> have fun
[14:29:08] <Yuv422> cya
[14:29:09] <-- Yuv422 has left IRC ("[BX] The FDA says 5 servings of BitchX a day increases sexual potency")
[14:43:09] <-- maku has left IRC ("going out")
[15:09:16] <-- Kirben has left IRC ("System Meltdown")
[20:28:04] <-- servus has left IRC (Read error: 110 (Connection timed out))
[23:21:20] --> servus has joined #nuvie
[23:53:17] --> Kirben has joined #nuvie