#nuvie@irc.freenode.net logs for 30 Aug 2006 (GMT)

Archive Today Yesterday Tomorrow
Nuvie homepage


[00:00:17] <SB-X> someone can figure out how to linkify it later
[00:00:36] <wizardrydragon> what wiki software are you guys using?
[00:00:56] <wizardrydragon> to link something in mediawiki just use [[http://example.com|example of a link]]
[00:01:01] <SB-X> looks like MoinMoin
[00:01:11] <SB-X> yeah I'm used to editing wikipedia
[00:01:18] <wizardrydragon> hehe
[00:01:30] <wizardrydragon> it's what the TFL dev wiki uses, so I'm rather familiar with it :)
[00:01:41] <SB-X> luteijn: examples on HelpOnFormatting are invisible
[00:02:05] <luteijn> yes becuase that external image moved I think.. click the link you get a 404
[00:02:18] <SB-X> "Thank you for your changes. Your attention to detail is appreciated."
[00:02:35] <luteijn> I usually spot some typo just after reading that quote ;)
[00:04:30] <SB-X> same here, i just spotted a small change i could make (dont need the [url label] format with double links now, and the link should be in the table with the image) and updated the page again
[00:05:32] <luteijn> maybe we can use the [[imagelink]] macro here.. I'll give it a try.
[00:17:09] <luteijn> kludgy workaround in place for the attribution link..
[00:19:35] <luteijn> maybe you want to add a 'profile' so your changes aren't linked to your hostname but to 'SB-X' or some variant of it? http://luteijn.xs4all.nl/nuvieki/UserPreferences
[00:22:01] <SB-X> ok, soon
[00:22:25] <luteijn> actual work nuvie takes precendence of course ;)
[00:29:36] <SB-X> luteijn: do you initialize parent_obj?
[00:29:46] <SB-X> so I can assume its always 0 for not contained objects
[00:34:03] <luteijn> IIRC yes.
[00:34:37] <luteijn> it's NULL which usually is 0 but could be anything really.
[00:36:26] <SB-X> ok
[00:36:31] <SB-X> im assuming NULL==0 in C++
[00:36:58] <SB-X> either one is not true
[00:38:11] <luteijn> Obj() {obj_n = 0; status = 0; frame_n = 0; qty = 0; quality = 0; parent_obj = NULL; container = NULL; };
[00:38:34] <luteijn> so if you use the constructor it's initialized to NULL.
[00:38:39] <SB-X> ok
[00:39:21] <luteijn> if you create it some other magic way, it might not be, becuase it's just not touched by loading routines, except when an object is added to a container.
[00:41:10] <luteijn> I think there is a routine that searches backwards to through nested containers using recurive calls.. that would probably break if you assert too much.. let me see if I can find it again.
[00:42:17] <SB-X> we currently don't safely remove objects from containers, so it will probably still be set in that case
[00:45:35] <SB-X> im not hearing the drums in the dungeon music
[00:45:44] <luteijn> it's in ObjList.h and probably the one you referred to earlier becuase it is paranoid, doublechecking (the is_held() function).
[00:45:52] <SB-X> i hear them barely, they are too quiet
[00:46:12] <luteijn> I don't have proper sound support, so don't know.
[00:46:33] <SB-X> where is ObjList.h
[00:46:39] <luteijn> it's that 'heartbeat' at the start isn't it?
[00:46:43] <SB-X> yes
[00:46:59] <SB-X> i thought music was broken/muted for a while
[00:46:59] <luteijn> s/ObjList/ObjManager/
[00:47:06] <SB-X> ah k
[00:47:32] <luteijn> did you compare to the original? maybe sound is just set too low?
[00:48:19] <SB-X> i cant get sound in dosbox unless i run timidity/fluidsynth and then it obviously always sounds different than from the adlib synthesizer
[00:49:01] <SB-X> because my sound hardware doesnt have midi synthesis
[00:49:38] <SB-X> why would is_held() break and whats that have to do with get_obj_container()
[00:50:24] <luteijn> I never had a real adlib card, and my 1990's soundblaster's amplifier was broken years ago when my brother shortcircuited the audio-out.
[00:50:55] <SB-X> hehe
[00:51:38] <SB-X> my other computer has a real sound card, and with this one i can get sw synth in WindowsXP so for a while I didnt know if the hardware supported midi or not
[00:51:49] <luteijn> SB-X is_held is not using get_obj_container, just uses parent_obj directly. Since Obj is a struct, get_obj_container is redundand anyway.
[00:52:35] <SB-X> hmm you're right about it being redundant, but I don't see where you're saying it will break if you assert too much
[00:53:12] <SB-X> ah, eventually when it recurses to the top non-contained object
[00:53:22] <SB-X> that's your paranoid check not mine :)
[00:53:24] <luteijn> well I thought if you assert too much it might break something, and I think I was thinking of the is_held() thing.
[00:53:44] <luteijn> but that's not the case, so you can add an assert to get_obj_container
[00:53:49] <SB-X> true
[00:54:14] <luteijn> I just added that get_obj_container becuase there was existing code depending on it..
[00:54:54] <luteijn> (marked with FIXME: in MapWindow.cpp)
[00:55:10] <SB-X> on second glance the recurse wont break because there are other position checks before that assertion
[00:55:47] <SB-X> get_obj_container was needed if we had to convert from x to obj at runtime
[00:56:26] <luteijn> but we only need that when saving anyway.
[00:56:47] <SB-X> yeah
[00:56:49] <SB-X> Actor.cpp:760: how was that commented out code supposed to work in the first place? it looks like a typo
[00:57:27] <SB-X> it clears container if inventory is set
[00:58:25] <SB-X> the other commented out lines in the else block correctly clear container if container is set
[00:58:40] <luteijn> they are exclusive. that's one of the reasons I changed to .._new functions.
[00:58:58] <SB-X> but why would you clear container if adding to a container?
[00:59:36] <SB-X> you'd clear inventory if it's set
[01:00:06] <SB-X> not to mention it's a bug in how ^ is used, because you don't know the bit is set
[01:00:56] <luteijn> hmm that particular one.. might be a typo :) anyway I threw it out. maybe there was already an earlier check it's compensating for or something... remember those bits are related (2bit field for 4 statuses that are exclusive)
[01:01:20] <luteijn> don't directly bitmanipulate those status bits ;) use my functions ;)
[01:01:27] <luteijn> (getting some food, brb)
[01:01:47] <SB-X> Thanks, I just wanted some confirmation that I was reading it corrently... I don't remember if you or I added it in the first place. I'll remove the commented code.
[01:02:07] <SB-X> correctly*
[01:05:22] <SB-X> If it was there to compensate for an earlier check it would have been used incorrectly anyway. I may have copy/pasted it from the else block and forgot to change the second line to OBJ_STATUS_IN_INVENTORY.
[01:05:37] <SB-X> you definately dont need to set obj->x there
[01:06:21] <SB-X> if you're going to do it when saving
[01:06:28] <SB-X> perhaps we should forward that to obj_add_obj anyway
[01:11:19] <luteijn> I was pretty careful at that point, so left things in that may not be needed. I think objblk_n is not really usefull when you've carried off the object..
[01:11:36] <luteijn> so yes, go ahead and clean up the commented out code, and redundant things.
[01:15:45] <SB-X> do you set x when saving?
[01:16:32] <wizardrydragon> wow i need my eyes checked
[01:16:58] <wizardrydragon> i missed th t when readin that last coment abnd was going to say something itty :P
[01:17:24] <wizardrydragon> note to self: typing with just right hand doesnt work
[01:17:39] <SB-X> but typing with left hand works if you have a dvorak keyboard
[01:17:49] <wizardrydragon> or are left handed as I am
[01:18:26] <luteijn> if we don't set x when saving it would break on loading... so I think we do that. (and I have some more paranoid checks when saving to see if the parent and parent_obj match)
[01:18:50] <luteijn> why are you typing with only one hand..
[01:19:03] <luteijn> (that was a rhetorical question)
[01:20:05] <wizardrydragon> because the other hand contains a greasy slice of pizza
[01:21:12] <SB-X> luteijn: ok good, wouldn't want to remove setting x in inventory_add_obj if it never got set later
[01:21:14] <luteijn> well usually when you read those IRC-quotes-sites people typing with one hand are doing something else.. since you mentioned bad eyesight, and missing the "t " in "set x"...
[01:21:48] <wizardrydragon> lol
[01:21:56] <wizardrydragon> get your mind out of the gutter :P
[01:22:02] <wizardrydragon> assuming you have one :)
[01:22:21] <luteijn> line 343 of ObjManager.cpp
[01:23:23] <SB-X> ok i see that thanks
[01:23:23] <luteijn> well you started it ;) Be happy you were eating pizza; if it was a saucage or other oblong object, you'd now be on one of those quote sites ;)
[01:23:41] <wizardrydragon> LOL
[01:24:08] <SB-X> luteijn: can you look at MapWindow.cpp:1287 and confirm that its correct?
[01:24:22] * luteijn swallows the last bit of hotdog..
[01:24:58] <SB-X> hehe no hurry
[01:25:59] <luteijn> hmm that part makes my head hurt with the negative logic.. let's see
[01:26:30] <luteijn> if it's not READIED ...
[01:26:46] <SB-X> it looks ok to me, im not sure why i made a note of it now
[01:27:11] <luteijn> I probably juggled with the _new functions there..
[01:27:30] <SB-X> i dont think the comment applies to the line after it, but to needed functionality
[01:27:55] <luteijn> assert(0) would abort, so if it is in a container, it will abort.
[01:28:52] <luteijn> I think it is also some sort of forward reference to yet to be coded things.
[01:29:24] <SB-X> thats what i mean
[01:29:38] <SB-X> im adding a blank line after the comment
[01:29:58] <SB-X> and "// remove from map" to the next line
[01:30:17] <luteijn> maybe check what it was before I updated it to use the _new versions of the property checks. maybe it followed logically on a tail comment above it, that I cut?
[01:30:56] <SB-X> just had the old versions
[01:31:23] <SB-X> the !obj->is_in_inventory_new() is unneeded isn't it? because is_readied() was already working the new way
[01:32:45] <luteijn> I went over the code in a few passes, frst replacing all original_checks() with check_old(); then I changed the logic to work with check_new(), and then I sometimes cleaned out redundant things, if it was clearly redundant now. In this case maybe it wasn't too clear.
[01:32:48] <SB-X> argh negative logic... i was reading it wrong :)
[01:33:13] <SB-X> yes you seem to have fixed everything
[01:33:24] <SB-X> using the corrent position checks
[01:33:27] <SB-X> correct*
[01:33:52] <luteijn> yes, negative logic is confuising, esp because assert(A) is something like "abort_if(not A)" so you get double neagtion
[01:33:52] <SB-X> that's the third time today i've mistyped correct with an n
[01:34:35] <SB-X> i dont read assert as abort_if
[01:34:52] <luteijn> I think I misspelled deprecated as depricated, might as wel fix that too.
[01:35:47] <luteijn> assert(a) --> make certain that a is valid, if not stop. so if not A, abort.
[01:37:03] <luteijn> anyway it was even more unreadable before with the old meaning of the is_in_inventory() and is_in_container() functions...
[01:39:16] <SB-X> unless you knew what they meant :)
[01:40:07] <luteijn> even if you knew what they meant ;)
[01:40:37] <SB-X> no i never found them confusing
[01:41:06] <SB-X> when we were assuming there were two position bits
[01:41:33] <SB-X> Then you just had to know that "is_in_inventory" doesn't mean "is in inventory". It means "the OBJ_STATUS_IN_INVENTORY" bit is set.
[01:41:56] <SB-X> of course, you had to then play with both bits in checks, and that could appear confusing
[01:42:05] <luteijn> well there was non-luteijn code using them wrong, i.e. treating them as unrelated...
[01:42:57] <SB-X> it got confusing when combined with is_readied() which was always using both to check
[01:43:25] <SB-X> treating them as unrelated was the correct method before
[01:43:39] <luteijn> anyway, it's better now, isn't it?
[01:44:07] <SB-X> yes, im not arguing that, i dont need to get used to the new functions as I wanted them to do this from the beginning
[01:44:21] <SB-X> to do this = treat the bits as related as they should be
[01:44:31] <SB-X> i just never changed it because I was afraid it would break things :)
[01:45:05] <SB-X> and make people confused as to what those checks meant
[01:45:28] <luteijn> omlette you can't make without some eggs breaking.
[01:46:10] <wizardrydragon> yoda-like your grammar be
[01:46:12] <SB-X> since you were already confused by the way it was (ok, incorrectly) checking before, then it's for the best they get changed finally
[01:46:15] <SB-X> hehe
[01:46:41] <SB-X> luteijn: thanks for looking at the MapWindow code, it looks fine
[01:46:59] <luteijn> I was going to just say "omlette, eggs" originally :)
[01:47:30] <luteijn> mayeb I should have gargl-fied it instead?
[01:48:04] <wizardrydragon> To concur.
[01:52:55] <SB-X> luteijn: sorry if it sounded like I didn't prefer the new position checks; im glad you took the time to find every location they're used and fix them
[01:53:50] <SB-X> i think i spotted another a bug in use_powder_keg() though :)
[01:54:12] <luteijn> I jsut thought we were agreeing (or at least 90% agreeing), so we wouldn't need to discuss it ;).
[01:54:25] <luteijn> did I even touch use_powder_keg?
[01:55:33] <luteijn> oh yes, I know what you mean
[01:56:01] <luteijn> it should also explode if in container carried by someone
[01:56:15] <SB-X> at the very least not remove from inventory if in a container
[01:56:19] <luteijn> but can't use i_container, cause it coudl be in a container on the map, so have to use is_held
[01:56:53] <luteijn> it was broken before, I noticed that, but didn't fix it, incase I made things worse. Should have put a fixme in though
[01:57:26] <SB-X> look at the MESG_EFFECT_COMPLETE elseif block where it removes the keg
[01:57:42] <SB-X> it calls get_actor(obj->x) is the object isn't on_map
[01:58:03] <luteijn> brr
[01:58:06] <SB-X> behavior undefined
[01:58:07] <SB-X> heh
[01:59:18] <luteijn> if it's in a box on the map it also doesn't work, even if obj->x was to be trusted.
[01:59:32] <luteijn> or in a nested container.
[02:00:28] <SB-X> yes because on a box on the map isnt on the map
[02:02:46] <SB-X> wouldnt in_container work in the first case? if its in a container on the map
[02:05:44] <luteijn> hmm you get the message, the is_on_map() fails. so it drops in the else. that tries to find an actor but an object in a container that's not held won't have an actor regardles of the obj->x setting
[02:06:42] <luteijn> so need to do something with 'obj->is_held()' and finding the top-level container.
[02:28:31] <SB-X> or do both is_in_container and is_in_inventory
[02:29:30] <SB-X> and if in container dont try to get actor
[02:29:42] <SB-X> you dont need to mess with the actor then because its not in inventory
[02:36:12] <luteijn> those are never both true.
[02:37:10] <luteijn> you can't tell the difference between in a container on the map or in a container held (deep) in inventory by just looking at those 2 bits.
[02:37:40] <SB-X> there is no difference
[02:37:58] <SB-X> of course they are never both true, thats why you'd have an else if block for each
[02:38:51] <SB-X> anyway I just replaced the whole thing (check position, remove, delete) with a call to destroy_obj() :)
[02:39:11] <luteijn> the difference is that to find where to 'explode' you'd look for the top-level container (that 'is_on_map')or the holding actor's coordinates
[02:39:36] <SB-X> oh, ok... i was looking at deleting the object now
[02:39:54] <luteijn> or maybe the parent of th e held container could be the actor's related body object, which hopefully 'is_on_map' so you can get those coordinates instead.
[02:40:24] <SB-X> we dont use actor objects
[02:41:01] <luteijn> hmm, it would make some things easier, and some things harder if we did..
[02:41:11] <SB-X> i think actor should inherit obj
[02:41:49] <luteijn> the ace article seems to imply actors have object flags. objlist has them (first block of 256 bytes) etc.
[03:06:08] <SB-X> U6UseCode::torch: if(obj->is_in_container_new())
[03:06:08] <SB-X> scroll->display_string("\nNot now!\n"); // FIXME make this just work.
[03:06:19] <SB-X> torches arent supposed to work from containers are they?
[03:07:19] <luteijn> I don't know if they work or not in u6, but what's wrong with just treating it the same as a torch held in top level of inventory?
[03:08:36] <SB-X> it would be extra work
[03:09:03] <SB-X> i can leave the FIXME though
[03:09:46] <luteijn> I'll test the orignal to see if torches work out of the box.
[03:11:41] <luteijn> but this seems like another instance of the 'containers are not working/unsafe to remove stuff from, lets just not implement this-type of things.
[03:13:27] <SB-X> yep :D
[03:13:55] <SB-X> especially if you add "and besides U6 didn't allow it anyway"
[03:14:03] <luteijn> - ready torch from bag works fine.
[03:15:03] <luteijn> - use torch from bag works fine
[03:16:12] <luteijn> Both of the above ready the unlit/lit torch to the hand of the person carrying it, in this case Iolo, eventhough Avatar was doing the commands (i.e. not in solo mode)
[03:16:31] <luteijn> so the not working was just us being afraid of containers.
[03:16:46] <SB-X> did you try torches in containers on the ground?
[03:17:29] <luteijn> that's not posible to do is it?
[03:17:52] <luteijn> you can't open a container on the ground and use its contents.
[03:18:12] <luteijn> and we all know what happens if you use a torch that's on the ground...
[03:18:28] <SB-X> ah right
[03:18:48] <SB-X> why did I decide to use the "Not now!" message?
[03:19:04] <SB-X> there must be some similiar situation where you cant use something from a bag
[03:19:17] <luteijn> because you were afraid of messing up the container when deleting stuff from it?
[03:19:38] <SB-X> i mean that particular message
[03:20:12] <luteijn> that message does come up sometimes, let me think, probably when you're doing something while in a ship..
[03:20:28] <SB-X> i wouldve certainly messed up the container (at least made the object disappeared) if trying to remove it before parent_obj was added :)
[03:20:40] <SB-X> also when you try to close a door someone is standing in
[03:20:55] <luteijn> so that's why I added the fixme when I added the parent object stuff ;)
[03:21:02] <luteijn> close the porticulis not now
[03:22:32] <SB-X> ok thanks for checking, im fixing another bug there but i'll add that one to my todo list
[03:22:33] <luteijn> gamestrings has a 'not now' (no exclamation mark) between Fire! and Powder lit!
[03:22:45] <SB-X> ah, k... powder kegs
[03:22:55] <luteijn> so I think that not now is when you try to remove the fuse ;)
[03:23:11] <SB-X> or light another keg
[03:23:52] <luteijn> oh it can only keep track of one? then probably it wil have a countdown timer in objlist we could identify.
[03:24:48] <luteijn> "Not now!" after "Direction-" and before "None generated!"
[03:25:03] <SB-X> if you save the game and reload when a keg is lit, it never explodes
[03:25:07] <servus> SB-X: Was the actor lighting manager ever finished? Is it possible for me to fix the torch bugs now? :)
[03:26:01] <luteijn> SB-X: that sounds familiar.. is that in the original or nuvie?
[03:26:35] <SB-X> servus: there was never going to be an actor lighting manager! just a list of lit things ... im editing the torch usecode now but if you see any bugs after that feel free to tell me or submit a patch for them :)
[03:26:45] <servus> That's what I meant by the manager :)
[03:26:55] <SB-X> luteijn: hmm probably both
[03:26:57] <SB-X> heh ok
[03:27:01] <SB-X> yes it works now
[03:27:19] <servus> Okey dokey. I'll take a look at it soon, working on other things currently : o)
[03:28:02] <SB-X> im not sure you're allowed to have multiple torches lit in the first place though (or if the light doesnt always apply to the avatar and not to the actor holding the torch)
[03:29:29] <servus> Well, I thought the main problem was that lights got lost in the fold, and you ended up permanently lit because the only way to lose "actor light" was for a light to unregister itself... or a light got registered twice and unregistered once, to the same end effect.
[03:30:20] <SB-X> i fixed that already
[03:30:50] <SB-X> wouldn't be surprised if there is somewhere it still happens
[03:31:03] <SB-X> where the light is not removed at least
[03:31:45] <wizardrydragon> random thought
[03:31:58] <wizardrydragon> isnt lighting a torch in say, a barrel, not quite the best idea?
[03:32:41] <SB-X> no, but it automatically makes you hold it
[03:32:58] <wizardrydragon> Ah
[03:34:19] <luteijn> oh, nice original bug..
[03:35:08] <wizardrydragon> Originality is good.
[03:35:36] <luteijn> light a torch, than move 1 torch from the rest of the stack oftorches to another partymember. you end up effectively unlighting the torch you held, although normally you can't douse your torch.
[03:38:49] <wizardrydragon> lol
[03:40:20] <SB-X> that does sound like a nice bug
[03:43:49] <luteijn> seems that if anyone has a torch, the light is there for the whole party, even if the torchbearer solo-ed away..
[03:44:15] <wizardrydragon> The wonders of modern torch technology :)
[03:45:29] <luteijn> hmm and I seem to have triggered some kind of equipment duplication bug.. but not sure how..
[03:46:20] <SB-X> in u6 or nuvie?
[03:46:50] <luteijn> u6. but maybe the savegame is buggered.. dosbox is to painfully slow over vnc to properly test anyway.
[03:47:58] <luteijn> I'll have to test it properly some time..
[04:02:40] <wizardrydragon> Well Im fiddling in U6 and Im not being able to duplicate inv items ...
[04:03:06] <luteijn> I think I got my whole party killed first.
[04:03:11] <wizardrydragon> lol
[04:03:24] <wizardrydragon> Ill go near one of the shrines with unlevelled characters then :P
[04:03:38] <wizardrydragon> Im in normal U6 if it makes any difference :P
[04:03:53] <luteijn> then they all had their stuff in inventory, and after moving around a bit (including use of alt-215 and -214) they had their gear back in their hands and also still in inventory.
[04:04:35] <luteijn> when I removed my torch, it was replaced by a spellbook instantly.. this also hints at how u6 keeps track of this...
[04:04:45] <wizardrydragon> alt-215?
[04:05:30] <luteijn> advance gametime 1 hour (to get it to be dark.) eventualy I got fed up since took too long so teleported underground instead...
[04:05:50] <wizardrydragon> lol
[04:07:45] <SB-X> we did already discover that equip locations can have multiple objects unlike in nuvie
[04:08:05] <wizardrydragon> I believe I remember that
[04:08:42] <SB-X> you cant exploit that in normal gameplay situations though :)
[04:09:07] <wizardrydragon> :)
[04:11:36] <luteijn> I guess they don't use slots that get filled, but just the 'is_equipped' flag, and 'hardcoded' equip-locations for stuff.
[04:12:17] <SB-X> another thing we need to put in datafiles
[04:12:59] <SB-X> because we have hardcoded equip-locations too
[04:13:19] <luteijn> yuv found the 'real' hardcoded monster-stats table, or didn't he?
[04:14:03] <SB-X> no, I did
[04:14:24] <SB-X> he implemented it in nuvie
[04:15:01] <luteijn> is that documented? I only have the 'old documents' version of the monster table, and some musings on how this could have been implemented in the original..
[04:20:25] <SB-X> its mostly the same
[04:20:37] <SB-X> so i dont think there are any other documents
[04:21:00] <SB-X> there ARE differences, so we should create a new list
[04:24:56] <luteijn> the old-docs was definately not complete. Where can I find the new information. (Don't mind to look at the source, but a pointer to where to start would be nice ;) )
[04:26:27] <SB-X> actor/U6ActorTypes.h
[04:26:30] <SB-X> actors/U6ActorTypes.h*
[04:27:22] <SB-X> see actors/U6Actor.h for the actual u6actortype class that that is a table of
[04:27:59] <SB-X> we are planning to split the giant const array into smaller arrays
[04:29:12] <luteijn> but where is this in the original? (offset into game.exe/memory)
[04:29:56] <SB-X> oh I thought you were asking where the list can be seen... let me look...
[04:31:45] <luteijn> well both, but its interesting to see what's in the neighbourhood of this...
[04:34:59] <SB-X> ok found readmonsters.c still on a backup dvd-rom
[04:35:23] <SB-X> the list starts at 0x30342 in game.exe
[04:35:45] <luteijn> I guess we don't read it from game.exe because of (de)compression issues?
[04:36:28] <SB-X> possibly
[04:37:06] <SB-X> i dont remember if this is in the compressed or uncompressed exe
[04:37:30] <SB-X> the compressed exe might only be partly compressed
[04:37:44] <luteijn> probably uncompressed. I prefer to use the originals data if possible, but this is a shadowy area..
[04:38:30] <SB-X> the game.exe in the same directory is 212,640bytes in size
[04:39:06] <SB-X> and i assume i put them together because that was the game.exe that readmonsters was using
[04:39:16] <SB-X> them=game.exe and readmonsters.c
[04:40:32] <luteijn> hmm: 208 -rwx------ 1 luteijn luteijn 205613 1990-05-16 02:56 game.exe
[04:42:10] <luteijn> if it's compressed, then it's only slightly compressed ;). and the game-strings aren't
[04:42:48] <SB-X> wierd
[04:43:57] <wizardrydragon> To think that most of this is going over my head.
[04:44:37] <luteijn> wizardrydragon: it only starts to make sense after a while..
[04:44:55] <SB-X> er, u7 usecode is even more confusing!
[04:45:06] <SB-X> especially disassembled wud output
[04:45:22] <SB-X> disassembled usecode
[04:45:32] <SB-X> just look at drcode on the exult sourceforge island patch
[04:45:36] <wizardrydragon> Not really, but then ive been staring at the stuff since I was fourteen so ...
[04:45:39] <wizardrydragon> ;)
[04:45:58] <SB-X> it turned him mad! you must be strong of heart
[04:46:21] <wizardrydragon> All I have to say to the people that complain about UCC is that you should be greatful you dont have to use real usecode
[04:47:39] <wizardrydragon> pop 0x098a
[04:47:39] <wizardrydragon> SET 0x098a "It's maddening"
[04:47:39] <wizardrydragon> CALL say(0x098a)
[04:47:39] <wizardrydragon> push 0x098a
[04:47:44] <wizardrydragon> :P
[04:48:10] <wizardrydragon> Course I should capitalize POP and PUSH but Im lazy
[04:48:29] <SB-X> luteijn: Effect.cpp:540: why is that commented out, I don't understand the comment
[04:49:16] <SB-X> you'd always have either a tile or an obj_n
[04:50:30] <wizardrydragon> I do have to say that being in here gives me an appreciation for how Crysta feels when Marzo and I are discussion usecode in #TFL though ;)
[04:51:11] <luteijn> but thrown weapons had both set to zero...
[04:51:20] <SB-X> heh
[04:51:40] <luteijn> I think I fixed that table though.
[04:52:10] <luteijn> thrown weapons still don't work properly, it generates new weapons instead of throwing the one you have.
[04:52:31] * luteijn needs sleep..
[04:52:40] <SB-X> i only confirmed it worked with missile weapons :)
[04:52:45] <SB-X> ok, cya
[04:53:01] <luteijn> try putting that assert back..
[04:54:19] <SB-X> ok
[04:55:14] <wizardrydragon> Thought: thrown weapons would be better used as melee weapons when in melee range instead of throwing them and having to retrieve them :P
[04:55:57] <SB-X> i wonder if that would work for all of them
[04:56:08] <wizardrydragon> What do you mean, SB-X?
[04:58:14] <wizardrydragon> luteijn: what time is it your side of the world? It's 00:58 here :)
[05:01:55] <SB-X> do all thrown weapons make sense being used as melee weapons
[05:02:16] <SB-X> i guess a throwing axe does, like a tomahawk
[05:02:21] <wizardrydragon> Well I can't remember what all the thrown weapons were in U6
[05:02:44] <wizardrydragon> But in any event, most thrown weapons would actually be superior melee weapons, because they must be remarkably well balanced.
[05:06:38] <SB-X> luteijn: Target selection is broken with multiple weapons equipped, but when attacking with throwing axes the assertion is never triggered.
[05:25:28] <wizardrydragon> overcomplicates things but would be cool: if you have a main gauche equipped it should increase your defense value too, seeing as it's a sword meant for parrying
[05:27:05] <SB-X> it does increase your defense already
[05:27:10] <SB-X> at least in u6
[05:27:18] <wizardrydragon> I know it does in U6
[05:27:27] <wizardrydragon> I dont know if it does in Nuvie
[05:27:44] <SB-X> probably does
[05:28:00] <SB-X> why would that overcomplicate things?
[05:28:36] <wizardrydragon> well you guys have enough to worry about already
[05:29:28] <SB-X> but if it acts as armor in u6 wouldnt it naturally do the same in nuvie if any armor increases your defense?
[05:30:11] <SB-X> its not any more complicated than others because you check the ratings of all equipped items, not just those in "armor" locations
[05:30:13] <luteijn> it was broken in nuvie because someone didn't set its defense value
[05:30:15] <wizardrydragon> I was under the impression it counted as a weapon AND as an armour in u6, but perhaps im mistaken...
[05:30:44] <SB-X> it is
[05:30:50] <luteijn> but I fixed that table.
[05:31:31] <SB-X> it only absorbs 1 point of damage anyway ;)
[05:31:34] <luteijn> it's 7:31 herejust finished a night shift)
[05:31:44] <wizardrydragon> in the morning?
[05:32:20] <SB-X> luteijn: hehe thanks for fixing the main gauche then
[06:02:39] <wizardrydragon> And the Ultima fan community can rejoice, for hyou can now destroy the world again in U7 :)
[06:07:33] <wizardrydragon> now if only I could steal the rain of fire from Pentagram, because no armaggeddon is complete without a rain of fire
[06:12:21] <SB-X> haha
[06:12:38] <SB-X> what was armaggeddon missing in u7?
[06:12:52] <wizardrydragon> It wasn't missing in U7 but Exult's didnt work properlhy
[06:13:03] <wizardrydragon> All it did was put everyone to the sleep schedule :P
[06:16:10] <wizardrydragon> I also need to find a much more efficient way to disable every single egg in the game world :P
[06:18:38] <SB-X> really? that's odd I figured armageddon wouldve worked by now (and thought I remembered testing it before)
[06:19:16] <wizardrydragon> They had it fully "working" at a point, but working in quotation marks because it crashed the game half the time ;)
[06:19:33] <SB-X> oh, so someone removed that?
[06:19:42] <wizardrydragon> they cheated
[06:20:12] <SB-X> add a global armageddon setting, and only hatch eggs if it's false
[06:20:36] <wizardrydragon> they were having problems finding and killing every single NPC except british, spawning bodies, making sure they didnt respawn, and such, so they set it so that when armageddon was cast, everyone goes to the sleep schedule
[06:20:47] <wizardrydragon> and I can't; I have to use usecode :P
[06:21:01] <SB-X> why?
[06:21:06] <wizardrydragon> Well I could
[06:21:11] <SB-X> it's fixing a bug in exult
[06:21:28] <wizardrydragon> Because it's not a bug, I
[06:21:35] <SB-X> meh, unfinished feature
[06:21:41] <wizardrydragon> eggs did fire in U7
[06:21:42] <SB-X> close enough ;)
[06:21:48] <SB-X> ah k
[06:22:03] <SB-X> then you have to use usecode :P
[06:22:03] <wizardrydragon> but I dont want rabbits and birds flitting about around the dead and dying corpses of all Britannia
[06:22:04] <wizardrydragon> :P
[06:22:29] <SB-X> isn't an egg an object with usecode?
[06:22:37] <wizardrydragon> Its several objects
[06:22:45] <wizardrydragon> egg_creature, egg_music, egg_script, etc
[06:23:02] <SB-X> ok, so egg_creature isn't calling usecode you mean
[06:23:21] <SB-X> i wonder if they hatched in u6
[06:23:29] <SB-X> after casting the armageddon spell
[06:23:32] <wizardrydragon> I don't want it to, but right now UCC can't reliably differentiate between eggs
[06:23:53] <wizardrydragon> It would also be nice to change music sequences for music eggs but that's a fluff thing
[06:24:10] <wizardrydragon> But it does sound kind of odd walking into britain when everyones dead and having a cheery tune going :)
[06:24:48] <SB-X> perhaps no music would be best at that time
[06:25:21] <wizardrydragon> Perhaps disable all the music eggs and just play a doom and gloom track of some sort :)
[06:26:00] <SB-X> i imagined the World of Ruin music from FF3 for some reason
[06:26:08] <wizardrydragon> hehe
[06:26:21] <wizardrydragon> I was thinking more just the Skara Brae theme :P
[06:26:30] <wizardrydragon> Or perhaps have Justin make a track for that event :P
[06:26:58] <SB-X> i couldnt remember what the skara brae music sounded like
[06:27:25] <wizardrydragon> Well given that it's burnt to a crisp, not happy music ;)
[06:44:05] <wizardrydragon> Probably would be worth lookinhg into how u6 handled armaggedon, i dont think I ever used it in u6...
[06:48:48] <SB-X> it deletes every npc, leaving their inventories on the ground
[06:48:51] <SB-X> every*
[06:49:33] <SB-X> i dont think it creats a "magic storm" effect but I'd like to change that so it does
[06:50:48] <wizardrydragon> Hehe
[06:55:15] <wizardrydragon> I wants meh rain of fire :D
[06:55:38] <wizardrydragon> If Armageddon is supposed to be a doomsday spell I want what was advertised :)
[06:55:45] <SB-X> ive never seen that in pentagram/u8
[06:55:54] <wizardrydragon> Rain of fire?
[06:55:57] <SB-X> because I never played u8 long enough to cast spells
[06:56:02] <wizardrydragon> Ah
[07:48:27] <-- exultbot has left IRC (shutting down)
[07:50:27] --> exultbot has joined #nuvie
[07:50:27] --- Topic for #nuvie is: Nuvie - New Ultima VI Engine (http://nuvie.sf.net)
[07:50:27] --- Topic for #nuvie set by ChanServ at Sun Jun 25 04:12:02 2006
[10:13:04] <SB-X> you can enter any of the spell syllables multiple times and get the same spell
[10:14:43] <SB-X> aas,as,sssa,ass -> curse
[10:17:57] <servus> An Sanct, Noxexgravantymex Porrelorttymexcorphurtyminortnox!
[10:35:31] <SB-X> :)
[11:39:34] --> Yuv422 has joined #nuvie
[11:52:21] <Yuv422> hey
[11:52:36] <Yuv422> I have lua magic script working
[11:52:41] <Yuv422> +s
[11:53:02] <Yuv422> I'm just reworking the loading routines to get scripts from individual files
[12:04:58] <-- Kirben has left IRC (Read error: 110 (Connection timed out))
[12:20:53] <-- Yuv422 has left IRC (Read error: 110 (Connection timed out))
[12:22:05] --> Yuv422 has joined #nuvie
[14:16:15] <-- wizardrydragon has left IRC (Read error: 110 (Connection timed out))
[15:40:30] <Yuv422> ok I have stub files for all the magic spells
[15:40:40] <Yuv422> callable via their invocations
[15:40:52] <Yuv422> I've linked locate,eclipse and tremor up
[15:41:32] <Yuv422> I think I might make a lua branch in cvs at some point
[15:41:42] <Yuv422> so others can play around and let me know what they think
[15:42:14] <Yuv422> either that or upload a src snapshot to the temp/ on the website
[15:44:21] <wjp> I'd prefer a branch, I guess
[15:46:23] <wjp> makes it easier to keep it separate for review for a while, tweak it in the meantime, and then merge it back to trunk without having to juggle patches/source trees around
[15:47:40] <Yuv422> hey wjp
[15:47:47] <wjp> hi
[15:48:14] <Yuv422> I'll make a scripting test branch tomorrow
[15:48:27] <Yuv422> right now it's time for bed
[15:48:33] <wjp> ok :-)
[15:48:34] <wjp> good night
[15:48:51] <Yuv422> 1:50am is too late for a week night. ;-)
[15:49:00] <Yuv422> cya
[15:49:11] <-- Yuv422 has left IRC ()
[16:05:16] --> wizardrydragon has joined #nuvie
[16:45:57] <-- wizardrydragon has left IRC ("Trillian (http://www.ceruleanstudios.com")
[18:50:05] --> wizardrydragon has joined #nuvie
[20:01:28] <wizardrydragon> I feel compelled to answer "yes, eventually" to every instance of "should we even bother supporting this?" in the progress list ;)
[20:19:57] <servus> I didn't realize you were working on Nuvie.
[20:25:51] <wizardrydragon> I've been poking around with the usecode section
[20:27:04] <servus> Conversely, poking around brains doesn't qualify one as "working on brains". You can't say, "Oh, yes, I work on brains", if all you really do is poke around with them.
[20:27:47] <wizardrydragon> Just because one hasn't moved mountains doesn't mean one hasn't done landscaping ;)
[20:28:15] <servus> Speaking of which, I finished u7mapper: http://sammatthews.com/images/Exult3D/u7mapper-out-tfl03.gif
[20:28:50] <wizardrydragon> Better.
[20:28:58] <wizardrydragon> What's the blue in the mountains, though?
[20:29:08] <servus> Mountains.
[20:29:40] <wizardrydragon> Ah.
[20:29:50] <wizardrydragon> I worried it might be water chunks
[20:34:40] <wizardrydragon> luteijn or sb-x: Has anyone figured out creature egg spawns?
[20:35:07] * wizardrydragon plays log tag
[20:58:04] <SB-X> wizardrydragon: yes completely
[20:58:43] <wizardrydragon> sb-x: Eff. I was reading through the TODO list and that wouldve been something I'd've been interested in working on
[20:58:47] <SB-X> TODO is outdated
[20:59:01] <SB-X> i have a more up to date version locally that im going to upload today or tomorrow
[20:59:22] <SB-X> needs some more cleanup and integration with progress lists first
[20:59:59] <wizardrydragon> If you could send that to me then, I can find somewhere to get stuck in :)
[21:00:35] <SB-X> when it's ready i'll upload it!
[21:00:52] <wizardrydragon> Is the TODO on the website then? O_o
[21:00:57] <SB-X> no
[21:00:59] <wizardrydragon> I just have the one from CVS
[21:01:11] <SB-X> is that map for TFL?
[21:01:41] <wizardrydragon> That Servus posted the link to?
[21:01:45] <SB-X> yes
[21:02:08] <wizardrydragon> Indeed it is, although the version I have is older than the one he generated
[21:02:09] <SB-X> yesterday servus said it was "just for fun"
[21:02:29] <SB-X> why is he making maps for TFL? he's not on the TFL team
[21:02:42] <wizardrydragon> He's the one making the U7Mapper tool I used to generate it
[21:02:54] <SB-X> it's a very good map
[21:02:55] <wizardrydragon> He's been fiddling with the map Ive been using to improve his tool :)
[21:03:12] <SB-X> oh, is that all? ok
[21:03:27] <wizardrydragon> Be right back, I have to restart my client.
[21:03:51] <-- wizardrydragon has left IRC ("Trillian (http://www.ceruleanstudios.com")
[21:06:32] --> wizardrydragon has joined #nuvie
[21:06:52] <wizardrydragon> Back
[21:10:51] <SB-X> I say, that generated map is so good, if servus weren't only working on it to improve his tool, he should be part of the TFL team. :)
[21:11:43] <wizardrydragon> Indeed. I'm not stopping him ;)
[21:12:22] <wizardrydragon> When I checked out the CVS, I got the nuvie module, SB-X. Are there other modules I should be aware of?
[21:12:30] <SB-X> yeah, docs
[21:12:45] <wizardrydragon> That would make sense
[21:12:52] <SB-X> some of those are out of date too but im frantically working on getting newer versions up
[21:12:59] <wizardrydragon> Lol!
[21:13:09] <SB-X> we also have a nuvieki where docs go
[21:13:19] <SB-X> ah you saw that already
[21:13:33] <wizardrydragon> Indeed, I made a comment about it too even ;)
[21:13:40] <wizardrydragon> Wow, am I stupid
[21:13:59] <wizardrydragon> I just realized what the Nuvie site's favicon is
[21:17:26] <SB-X> bbl
[21:17:28] <-- SB-X has left IRC ("*casts gate travel*")
[21:25:50] <wizardrydragon> er, what is the purpose of these empty functions?
[21:25:50] <wizardrydragon> 04[17:20] wizardrydragon: 01U6UseCode::U6UseCode(Game *g, Configuration *cfg) : UseCode(g, cfg)
[21:25:50] <wizardrydragon> {
[21:25:50] <wizardrydragon> }
[21:25:50] <wizardrydragon>
[21:25:51] <wizardrydragon> U6UseCode::~U6UseCode()
[21:25:53] <wizardrydragon> {
[21:25:55] <wizardrydragon> }
[21:25:59] <wizardrydragon> what is the purpose of these empty functions? are they placeholders?
[21:33:03] <wjp> how's your C++?
[21:33:41] <wjp> the top one isn't empty, by the way
[21:57:59] <wizardrydragon> Rusty, since I haven't coded in anything but UCC/Usecode for the past couple of years
[21:58:49] <wizardrydragon> But if I remember my C++, the first one is a pointer another function, while the second doesn't appear to do anything unless my eyes missed something
[22:00:32] <wizardrydragon> Part of why I want to poke around and help a bit in Nuvie is to brush up on my C :)
[22:10:38] <wjp> the first is a constructor for the U6UseCode class, the second the destructor
[22:11:20] <wjp> the ': UseCode(g, cfg)' means it first constructs the parent UseCode object as specified
[22:11:49] <wjp> the second one does nothing, but an empty destructor is often added just in case it'll be filled later on
[22:11:51] <wizardrydragon> That makes sense. Wow that was an incredibly stupid series of questions.
[22:12:53] <wjp> stupid and not knowing something yet/anymore are two entirely different things :-)
[22:13:38] <wizardrydragon> Well I should have recalled constructors and destructors from programming class :P
[22:13:54] --> Kirben has joined #nuvie
[22:14:17] <wjp> time for me to go; bye
[22:14:23] <wizardrydragon> Take care
[22:59:18] <-- wizardrydragon has left IRC ("Trillian (http://www.ceruleanstudios.com")
[23:57:20] --> SB-X has joined #nuvie