#tfl@irc.freenode.net logs for 10 Feb 2009 (GMT)

Archive Today Yesterday Tomorrow
tfl homepage

[00:59:04] --> Marzo has joined #tfl
[00:59:04] --- ChanServ gives voice to Marzo
[01:01:48] <Marzo> Wizardry: in case you get here too late and read the log
[01:02:14] <Marzo> You may want to check HDD Health (if you are running on Windows; url = http://www.panterasoft.com/download.html)
[01:03:33] <Marzo> If disk utilities remove too many entries from an NTFS partition, it is a good sign that the disk may be going the way of the Dodo, and you can confirm with that program for a lot of hard disks
[01:18:42] --- Marzo is now known as Marzo_away
[01:22:10] --- Marzo_away is now known as Marzo
[01:32:13] --- Marzo is now known as Marzo_away
[02:21:38] <-- Marzo_away has left IRC ("Marzo vanishes suddenly.")
[02:29:23] --> Marzo has joined #tfl
[02:29:23] --- ChanServ gives voice to Marzo
[02:35:33] <Marzo> ?seen wizardrydragon
[02:35:33] <exultbot> wizardrydragon left IRC around Tue Nov 4 02:09:20 2008 (GMT) ("ChatZilla 0.9.83 [Firefox 3.0.3/2008092417]")
[02:35:45] <Marzo> ?seen notadragon
[02:35:45] <exultbot> notadragon left IRC around Mon Feb 9 21:30:37 2009 (GMT) ("ChatZilla 0.9.84 [Firefox 3.0.5/2008120122]")
[02:45:57] --- Marzo is now known as Marzo_away
[03:32:33] --> WizardryDragon has joined #tfl
[03:32:35] --- ChanServ gives voice to WizardryDragon
[03:32:38] <WizardryDragon> 06Sigh
[03:32:45] --- Marzo_away is now known as Marzo
[03:32:49] <WizardryDragon> 06Well, that was fun. But I fixed the filesystem
[03:32:59] <WizardryDragon> 06Now the Firefox autoupdate ate my Firefox install
[03:33:01] <Marzo> I left you a message in the logs
[03:33:14] <WizardryDragon> 06If I had a web browser I'd view it :-0
[03:33:27] <Marzo> [01:01:48] <Marzo> Wizardry: in case you get here too late and read the log
[03:33:32] <Marzo> [01:02:14] <Marzo> You may want to check HDD Health (if you are running on Windows; url = http://www.panterasoft.com/download.html)
[03:33:38] <WizardryDragon> 06Ah, thankee
[03:33:42] <Marzo> [01:03:33] <Marzo> If disk utilities remove too many entries from an NTFS partition, it is a good sign that the disk may be going the way of the Dodo, and you can confirm with that program for a lot of hard disks
[03:33:46] <WizardryDragon> 06Ill look into that.
[03:33:58] <WizardryDragon> 06No I know what it is.
[03:34:12] <Marzo> It simply monitors HDD health using the self-reporting mechanisms most HDs have today
[03:34:39] <WizardryDragon> 06Someone interrupted a scheduled check on the machine (probably my housemate, given she is the only one in the house frequently) and ChkDsk hemmoraged. Badly.
[03:34:44] <Marzo> Low health means high chance of failure
[03:35:20] <WizardryDragon> 06I was trying to cancel out of Firefox updating, because I want to hold off until certain fixes came around
[03:35:32] <WizardryDragon> 06And apparently this made it eat a library it needs ><
[03:36:02] <WizardryDragon> 06Im just having a bad run of it lately. The NTFS problem is fixed though.
[03:36:18] <Marzo> It is for things like this that I always set any kind of auto-update to "ask me what to do"
[03:36:35] <Marzo> (or turn it off altogether and complain to the devs if it does not have that option)
[03:36:37] <WizardryDragon> 06It -was- set to that. That's the really, really irritating thing.
[03:36:43] <Marzo> Oh
[03:37:03] <Marzo> So it must have popped a notification which you accidentally clicked?
[03:37:18] <WizardryDragon> 06(And Im not entirely sure it should be running update checks, I use a CVS version, not the stable release)
[03:37:28] <WizardryDragon> 06In any event
[03:37:47] <WizardryDragon> 06Normally I use chatzilla, Im hijacking my housemates Trillian atm :-)
[03:38:27] <WizardryDragon> 06I meant to update the CVS with the mapping work I did for the Gypsy scene
[03:38:38] <WizardryDragon> 06Minus the "borders" for the void-y thingy, it's mostly done.
[03:38:47] <WizardryDragon> 06Just needs the usecode/eggs etc "hooks"
[03:38:53] <WizardryDragon> 06And a gypsy NPC.
[03:39:04] <WizardryDragon> 06Trying to update the CVS is what lead me down this path ><
[03:39:14] <Marzo> I can set those up, since I am used to resetting the initial game eggs
[03:39:31] <WizardryDragon> 06Alright well let me finish recovering all this.
[03:39:40] <Marzo> Of course
[03:39:43] <WizardryDragon> 06And I will do the mapping work.
[03:39:47] <WizardryDragon> 06Well update.
[03:39:56] <WizardryDragon> 06Manage to get a shape for the borders?
[03:40:00] <WizardryDragon> 06Well, shapes.
[03:40:25] <Marzo> Will we be stealing those from SI?
[03:40:41] <WizardryDragon> 06Well there's one issue with things as is, we have to make a choice.
[03:41:24] <Marzo> Please elaborate
[03:41:52] <WizardryDragon> 06Typically, the classical ultima Gypsy scene takes place in a forest. So ... either we need to make the 'dream sequence' thing occur in a forest with just the brown earth, we need to have a large border of "earth" chunks to dither into the existing SI borders, or the existing SI borders need modified to have grass.
[03:43:13] <WizardryDragon> 06... why is firefox update running when I just installed a clear Firefox install ...
[03:43:33] <WizardryDragon> 06I think the programmer who developed that hath lost an eighth.
[03:43:46] <Marzo> FF probably found the update file and is executing it
[03:44:12] <WizardryDragon> 06This is a gonna be an annoying night
[03:44:23] <Marzo> Seems so
[03:44:42] <WizardryDragon> 06Time to hack at some update files with Hijack this!
[03:44:48] <WizardryDragon> 06(I love the name of that app)
[03:45:10] <Marzo> I think the name is cool too, but I never actually used it
[03:45:16] <Marzo> (never found the need)
[03:45:39] <WizardryDragon> 06I dont use it for its main function, tbh
[03:45:42] <Marzo> (that comment came out grammatically wrong)
[03:45:46] <WizardryDragon> 06I use it for the "delete files dead"
[03:46:22] <WizardryDragon> 06Its delete function can kill even locked files (though you have to be terribly careful about that)
[03:46:33] <WizardryDragon> 06Good for virus removal, if you're doing that kinda thing by hand.
[03:46:37] <Marzo> I usually use Unlocker for that
[03:47:19] <WizardryDragon> 06I prefer removing viruses by hand myself, why pay norton $150 dollars + a $50 subscription fee for something I can do myself in 20-30 mins by hand?
[03:47:23] <WizardryDragon> 06:|
[03:48:00] <Marzo> I usually do that by hand too, with some free anti-virus just to keep out the more common viruses
[03:48:41] <Marzo> (my record time so far is detecting a spyware 5 minutes after infection and removing it a further five minutes of analisys)
[03:48:58] <WizardryDragon> 06I have an application for HDD optimization that keeps most of the obvious stuff out. I actually started doing it by hand when I got a particularly nasty boot-sector virus that even Norton and Kapersky had nothing on.
[03:49:09] <Marzo> On TFL news: several forest chunks have a lot of bare earth tiles
[03:49:27] <WizardryDragon> 06Yeah, its a stylistic choice really.
[03:49:33] <WizardryDragon> 06I'm just not sure which I wanna do.
[03:49:48] <Marzo> So using those at the edges may fit well with the SI borders
[03:50:35] <Marzo> We just have to decide what was the type of forest back in U4
[03:50:35] <WizardryDragon> 06(The path I'm using is one of the typical footpaths, though, so with that in mind there is also grass. I have one idea of how to handle that, though.
[03:51:20] <WizardryDragon> 06Another note: I also have mountain around one edge of the map, as there is a small cave (where people can skip through to "just TFL" if they so choose) so that is a consideration as well.
[03:51:51] <Marzo> We can put some sort of sign to warn the unsuspecting player
[03:52:02] <WizardryDragon> 06Well, I mean in our borders.
[03:52:22] <Marzo> I figured as much
[03:52:49] <WizardryDragon> 06(In the applicable room I was thinking of having an appropriate NPC pop up and offer them a scripted conversation, with the dialogue making it obvious they're skipping straight to the Feudal Lands)
[03:53:04] <Marzo> But some player will want to explore as much as possible and accidentally run into that without knowing what happens
[03:53:17] <Marzo> Well, that would work
[03:53:36] <Marzo> Maybe have the NPC ask what class you want straight-up too
[03:53:40] <WizardryDragon> 06I am considering putting them in some sort of situation or area different from the "lead in" from BG that will give them an opprotunity to get levels and experience someone starting straight out would have.
[03:53:52] <WizardryDragon> 06Well, I was thinking he would tell them to go to the gypsy.
[03:54:14] <WizardryDragon> 06And the gypsy, when shes done the casting, would ask you if you want to go to Britannia now, and you could say no to go back
[03:54:24] <WizardryDragon> 06to the other dude and then go to TFL
[03:54:37] <Marzo> That would work
[03:55:01] <Marzo> We could have the gypsy pop that question only if you talked to the TFL-fast-forward dude
[03:55:39] <WizardryDragon> 06Its probably easiest to just always ask it. Otherwise we will have people inevitably saying "I got thrown into Britannia but I really wanted to go to TFL!"
[03:55:55] <Marzo> Good point
[03:56:12] <WizardryDragon> 06just to do some forward thinking for a moment
[03:56:29] <WizardryDragon> 06When we eventually add in the SI bit, we could have a likewise situation to fast-forward to SI
[03:56:30] <Marzo> One cheap thing we can do also is have the gypsy make an (optional) quick intro of the previous games, including shrine mantras
[03:56:51] <WizardryDragon> 06Im not sure that would be entirely desireable.
[03:56:56] <WizardryDragon> 06You know what we could do though.
[03:57:07] <WizardryDragon> 06Remember the intro after the gypsy bit in ... U6 I think it was?
[03:57:41] <Marzo> I think U5 also had it, but I may be misremembering; but I too think U6 had it
[03:57:58] <Marzo> I was thinking about something along those lines, yes
[03:58:18] <WizardryDragon> 06After character creation it said "You've done blah blah blah, now you're ready to face the challenges of Ultima VI!"
[03:58:23] <WizardryDragon> 06Something like that could be done.
[03:58:28] <Marzo> (but the shrine mantras bit was just a cheap, lazy way of having that information in-game instead of doing it the 'proper' way :-p)
[03:58:41] <WizardryDragon> 06It would be nicest if we could do that with some nice graphics like U6 does though.
[03:58:51] <Marzo> I think it is possible
[03:59:07] <WizardryDragon> 06We could abuse the "Guardian face" overlay thingy to do something to that effect
[03:59:13] <Marzo> A different intro if you want to skip to TFL, and another to SI
[03:59:24] <Marzo> (or maybe slightly extended)
[03:59:28] <WizardryDragon> 06It would be a bit of usecoding but I believe it could be done
[03:59:53] <Marzo> In any case, it should be optional
[04:00:08] <Marzo> (in the sense that you should have the ability to skip it)
[04:00:13] <WizardryDragon> 06Well, presumably they could just hit something to skip through
[04:00:42] <Marzo> If it is done with guardian-face-style overlays, yes; it would be a normal conversation
[04:00:43] <WizardryDragon> 06Im not sure that's currently possible with the current functions, but Im not sure it would be difficult to add an intrinsic to that effect
[04:00:51] <Marzo> (so holding the 'a' key is enough)
[04:01:05] <WizardryDragon> 06"Display shape XX from file YY for length ZZ unless a key or mouse button is pressed"
[04:01:46] <WizardryDragon> 06Im not sure you remember the Ultima 6 introduction
[04:01:52] <WizardryDragon> 06Or Lazarus'
[04:01:54] <Marzo> The other way would be to use screen-sized sprite effects (maybe with the wizard eye effect) on timers
[04:02:13] <WizardryDragon> 06But I was always a fan of the rich narrative/graphic way those got across the backstory
[04:02:35] <Marzo> Give me a sec to fire up DOSBox and I will remember it :-p
[04:02:45] <WizardryDragon> 06http://www.youtube.com/watch?v=tccQXVrRRZE < also there, apparently
[04:02:56] <Marzo> That will do it
[04:03:28] <WizardryDragon> 06Ultima 6's intro includes some animation, but Im not sure we have the resources to get that deep, at the moment :P
[04:03:33] <WizardryDragon> 06(Unless you're volunteering)
[04:04:45] <Marzo> None of the animation seems too hard to do so far (I am up to the title screen)
[04:05:09] <Marzo> Mostly a static background and cheaply moving sprites
[04:05:46] <WizardryDragon> 06funny to think that was groundbreaking at the time, as far as intros go :)
[04:05:55] <Marzo> :-p
[04:06:23] <WizardryDragon> 06Oh, also
[04:06:40] <Marzo> The U6 animation is very simple to do, actually
[04:06:59] <Marzo> Having something like the guardian face in the BG intro would be a lot tougher
[04:07:09] <WizardryDragon> 06I'm not sure how much they'll be able to commit yet, so I haven't made a public post, but I have a friend who composes professionally (and has done some big names) who may be doing some of the TFL soundtrack for us
[04:07:14] <Marzo> I think it couls all be done with sprite effects
[04:07:33] <Marzo> Woot!
[04:07:47] <WizardryDragon> 06I'm also going to poke a few other people I know
[04:08:24] <WizardryDragon> 06I have one track one of them did, second let me find the link again
[04:09:00] <WizardryDragon> 06Thought it would work for the kinda theme I have going in my head for the mage city
[04:09:06] <WizardryDragon> 06of still-undetermined name
[04:11:00] <WizardryDragon> 06(The reason Im not sure how much he can do is he's currently also working on track production for a commerical game, and theres contract stuff he has to look over before he does much else)
[04:12:14] <Marzo> That is the theme you have in mind for the mage city?
[04:12:18] <WizardryDragon> 06Hrm the link for the fixed up version is broken, however the first draft is here:
[04:12:25] <WizardryDragon> 06http://www.allacrost.org/staff/user/rain/CelticTuneREFINE.mp3
[04:12:36] <WizardryDragon> 06Its got a few rendering artifacts that you may notice, though.
[04:12:51] <Marzo> Downloading
[04:13:07] <Marzo> Listening
[04:13:33] <Marzo> Hm. Celtic theme.
[04:13:47] <Marzo> You may consider hitting celtic mythology for a name
[04:13:55] <WizardryDragon> 06Im not sure I'd really call it celtic, but certainly something along those lines.
[04:14:23] <Marzo> Maybe some miss-spelling/variant of "Tir na nOg"
[04:14:35] <WizardryDragon> 06The problem with naming things in TFL
[04:14:39] <WizardryDragon> 06is if you look at U1
[04:14:43] <WizardryDragon> 06the names are really, really bad
[04:14:48] <Marzo> I know
[04:14:57] <Marzo> They did miracles in SI
[04:15:09] <Marzo> (to get usable names, I mean)
[04:15:12] <WizardryDragon> 06Im still nto sure why they dropped that extra n in Monitor
[04:15:31] <Marzo> Very good song
[04:16:06] <WizardryDragon> 06I happen to know quite a few people who work in audio production so Im hoping I can rope at least one or two of them into doing some tracks :-)
[04:16:24] <WizardryDragon> 06That one is by Ryan Reilly
[04:16:31] <WizardryDragon> 06(I mighta mispelled the last name)
[04:17:52] <Marzo> The U1 city of magic was 'Helen', right?
[04:18:21] <WizardryDragon> 06Kinda hoping I can get Scott to do some stuff too, he's a big Ultima/Exult fan, so if he's available I don't think I would have to twist his arm
[04:18:24] <WizardryDragon> 06I believe so
[04:18:36] <Marzo> Hehe
[04:18:48] <Marzo> So: the U1 name is completelly useless
[04:19:08] <WizardryDragon> 06If you're a fan of independant film you have probably heard Scott somewheres.
[04:19:42] <Marzo> It is rare for such independent movies to get to Brasil, so it is likely I never heard of him
[04:19:51] <Marzo> s/of/
[04:19:56] <WizardryDragon> 06Let me find my favourite track
[04:20:11] <WizardryDragon> 06http://services.mp3.com.au/File/FileHandler.ashx?FileId=132312
[04:20:35] <WizardryDragon> 06Theres some others that one could probably even coerce into TFL as is ... but thats my favourite of his work
[04:21:41] <Marzo> On another point: we could reintroduce fire bolts (as in, fired from crossbow) in TFL; the paperdoll is already there
[04:21:47] <Marzo> (man I love this song!)
[04:21:55] <WizardryDragon> 06Which one?
[04:22:01] <WizardryDragon> 06And yeah, that wouldn't be difficult.
[04:22:06] <Marzo> The one you just linked to
[04:22:14] <WizardryDragon> 06I would actually encourage you to go ahead and do so if you want.
[04:22:20] <WizardryDragon> 06Yeah.
[04:22:26] <WizardryDragon> 06Its my favourite.
[04:23:10] <WizardryDragon> 06Im _hoping_ to get him and Ryan and Justin ... I dont think I'll be able to get Justin ... he has a kid to take care of these days :P Cant hurt to ask though, and I admire all their stuff tremendously.
[04:25:36] <Marzo> (looking into making 'Helen' into a useful name...)
[04:25:45] <WizardryDragon> 06In any event the track above that was the celticy one I already have permission/rights to use, so that one will be in there providing I can wrestle a less hack-y way to get Exult to support additional music
[04:26:06] <WizardryDragon> 06(Ryan said it was fine as long as he got credited)
[04:26:45] <Marzo> Convert it to ogg and it can be done
[04:26:51] <WizardryDragon> 06Aye.
[04:26:58] <WizardryDragon> 06Not hard to do, in fact. I can do that right now.
[04:27:06] <WizardryDragon> 06GoldWave is my friend :-)
[04:29:02] <WizardryDragon> 06Converting.
[04:29:23] <WizardryDragon> 06(ETA 2 min)
[04:30:20] <WizardryDragon> 06How exactly would we be including them?
[04:30:38] <Marzo> Hold a bit and I will tell you
[04:30:44] <WizardryDragon> 06Alright.
[04:30:45] <Marzo> (need to refresh my memory)
[04:30:59] <WizardryDragon> 06I've done this '.' much with the digitalmusic in Exult
[04:31:03] <WizardryDragon> 06so yeah :-)
[04:31:23] <WizardryDragon> 06(I dont expect we'll be getting midi versions of anything, though, unless there's money involved.
[04:31:35] <WizardryDragon> 06Which there can't be, for legal reasons
[04:32:14] <Marzo> If there are sheets of music available, I can ask my father to run it through Sibellius
[04:33:48] <Marzo> Getting new songs in Exult: create a folder named "music" in the TFL's patch dir
[04:34:00] <WizardryDragon> 06(Well its less them not being able to provide MIDI, more that the files are generated _using_ MIDI source, and generally speaking electronic music composers don't part with the source unless theres money involved)
[04:34:22] <Marzo> Ah, understood
[04:34:33] <Marzo> That is a valid point
[04:34:50] <WizardryDragon> 06Im certainly not going to discourage them from providing MIDI if they want to, but for free, I'm not going to press the point, you know?
[04:35:53] <Marzo> The ogg should have a name in the format XXbg.ogg, XXsi.ogg or XXmus.ogg for BG, SI and anything else
[04:36:08] <WizardryDragon> 06So I take it you go /mods/tfl/XXmus.ogg then?
[04:36:09] <Marzo> XX is a number
[04:36:16] <WizardryDragon> 06BG I guess
[04:36:18] <WizardryDragon> 06actually
[04:36:21] <WizardryDragon> 06since its a bg mod?
[04:36:32] <Marzo> 00, 01, 02 and 03 are for intro music
[04:36:35] <Marzo> Yes
[04:36:43] <Marzo> XXbg for TFL
[04:36:47] <WizardryDragon> 06Aye I remember the intro music hack I did for TFL
[04:36:50] <WizardryDragon> 06:P
[04:36:59] <WizardryDragon> 06(Though it will be original music, eventually)
[04:37:13] <WizardryDragon> 06What would be the upper limit of music existing in BG?
[04:37:16] <Marzo> endcr01.ogg and endcr02.ogg are for end credits
[04:37:39] <Marzo> end01bg.ogg and end02bg.ogg are for the game end
[04:37:50] <Marzo> (those values are correct for BG)
[04:37:52] <WizardryDragon> 06(ie the numbers I would be adding after)
[04:38:11] <Marzo> You can have up to 255 tracks of music
[04:38:23] <Marzo> I will check how many are actually used, hold a sec
[04:38:27] <WizardryDragon> 06Alright thank you
[04:42:46] <Marzo> The oggs in <DATA>/music range from 00bg.ogg to 59bg.ogg (but only 57 files; some seem to be unused) and from si01.ogg to si14.ogg (SI reuses BG songs; it uses XXbg.ogg or siXX.ogg for songs 0-70, and only uses XXsi.ogg from there on)
[04:43:33] <Marzo> I have to test, but you can likely use XXXbg.ogg too
[04:43:46] <Marzo> (all signs point to it being the case)
[04:43:51] <WizardryDragon> 06Im not sure I'll be using more than 40 tracks :)
[04:44:25] <Marzo> Ah, but we have to plan for the SI part (even if we actually never do it)
[04:44:35] <WizardryDragon> 06True
[04:44:43] <Marzo> This would mean importing some of the SI tracks
[04:44:43] <WizardryDragon> 06Ideally
[04:45:07] <Marzo> But yes, even 20 tracks will be a lot of songs
[04:45:09] <WizardryDragon> 06A mods music would be seperate entirely
[04:45:13] <WizardryDragon> 06But
[04:45:20] <WizardryDragon> 06Thatd probalby be more fuss than its worth
[04:47:12] <Marzo> One quick way to test the song is, of course, to use the sound test cheat
[04:47:21] <Marzo> (if you are willing to test it today)
[04:47:33] <WizardryDragon> 06Ah, Scotts contribution to the Star Wars world, Id forgotten about that song
[04:47:40] <WizardryDragon> 06(Going through his old stuff)
[04:47:44] <Marzo> Hehe
[04:47:52] <Marzo> Well, I am going to bed now
[04:48:07] <WizardryDragon> 06Im going to shoot Scott an email and see if he's interested in doing music.
[04:48:11] <Marzo> If time allows, I will make/add the fire bolt tomorrow
[04:48:15] <WizardryDragon> 06A final parting note:
[04:48:22] <Marzo> Yes?
[04:48:35] <WizardryDragon> 06I'll probably be doing a large map commit once I wrestle CVS back to working status
[04:48:48] <WizardryDragon> 06Have you touched the map at all lately?
[04:48:52] <Marzo> Nope
[04:49:02] <WizardryDragon> 06Alright, thats considerably less painful :-)
[04:49:08] <Marzo> :-p
[04:49:10] <WizardryDragon> 06"Rest well, Avatar."
[04:49:16] <-- Marzo has left IRC ("Marzo vanishes suddenly.")
[04:54:31] <-- WizardryDragon has left #tfl ()
[16:59:08] --> Marzo has joined #tfl
[16:59:08] --- ChanServ gives voice to Marzo
[17:09:13] --- Marzo is now known as Marzo_away
[19:29:26] <-- Marzo_away has left IRC (kornbluth.freenode.net irc.freenode.net)
[19:29:32] --> Marzo_away has joined #tfl
[19:43:57] --- Marzo_away is now known as Marzo
[19:54:05] --- Marzo is now known as Marzo_away
[20:18:14] --- Marzo_away is now known as Marzo
[20:28:14] --- Marzo is now known as Marzo_away
[20:37:29] --> NotADragon has joined #tfl
[20:37:34] <NotADragon> Hello.
[20:37:34] --- ChanServ gives voice to NotADragon
[20:37:41] --- Marzo_away is now known as Marzo
[20:37:41] <Marzo> Hi
[20:38:04] <Marzo> Did some changes to CVS, including fixing a corrupted file
[20:38:10] <NotADragon> Corrupted?
[20:38:24] <Marzo> The u7map file of map 0
[20:38:31] <NotADragon> I noticed there were a few that TortiseCVS tried to merge for some reason.
[20:38:35] <NotADragon> When it shouldn't've
[20:38:38] <NotADragon> So that is probably why.
[20:38:38] <Marzo> (it was referring to chunk 3077 somewhere)
[20:39:04] <Marzo> It caused a crash when moving around in Britannia
[20:39:18] <Marzo> (Trinsic in particular, probably others)
[20:39:29] <NotADragon> Well so long as it is fixed.
[20:39:35] <Marzo> Seems to be
[20:39:55] <NotADragon> I figured out the problem with ES was related to a corrupt mapfile,so my post on the forum is probably explained by that as well.
[20:40:07] <Marzo> I took the Keyring version of that file; did TFL have any changes to Britannia base landscape?
[20:40:36] <NotADragon> Yes; the inclusion of that seer NPC. But that's easy enough to fix I think.
[20:41:04] <Marzo> I am thinking more about "this chunk goes there" than NPCs or non-terrain objects
[20:41:11] <NotADragon> Ah
[20:41:28] <NotADragon> Some but I actually meant to undo them at some point :-)
[20:41:40] <Marzo> Well, I saved you the work then :-)
[20:42:24] <NotADragon> I posted to the site, you may have seen, near the end of the post are where my immediate goals are.
[20:42:51] <NotADragon> I also documented the economy code, thusfar, though Im not even entirely sure if I did the classes right :P
[20:43:01] <Marzo> I fixed them
[20:43:04] <Marzo> :-p
[20:43:13] <NotADragon> In CVS?
[20:43:17] <Marzo> (it is in the commit I did, along with adding the fire bolt)
[20:43:30] <Marzo> Yep
[20:43:47] <NotADragon> Alright let me update then :-)
[20:43:55] <NotADragon> (How badly did I mangle it?)
[20:43:58] <Marzo> I will toy around with the gypsy wagon and intro
[20:44:15] <NotADragon> The wagon map should be about the only thing on MAP01
[20:44:16] <Marzo> Well, classes can't have static vars for one
[20:44:26] <Marzo> That and the Keyring stuff
[20:44:28] <NotADragon> (though come to think about it, Im not sure I regenerated the map)
[20:44:59] <Marzo> The minimap? No, you didn't
[20:45:04] <Marzo> (at least, not to CVS)
[20:45:12] <NotADragon> Yes. Easy enough to fix, though.
[20:45:21] <Marzo> Yep
[20:45:43] <Marzo> I did some fixes to the wagon itself, to make it more like the gypsy wagon in Minoc
[20:46:06] <NotADragon> Alright, I was just trying to get the basic idea out of my head and onto a map. :P
[20:46:07] <Marzo> And I am thinking of adding some eye-candy around there
[20:46:15] <Marzo> Ah, OK
[20:46:38] <NotADragon> One thing I was thinking of: we should make a cards shape vaguely resembling the virtue "tarot" to put on the table facing the gypsy
[20:46:51] <Marzo> I was about to write that
[20:47:16] <Marzo> Also, I am thinking of adding maybe some potions to remind people of U6
[20:47:31] <Marzo> (but the tarot would be in front of the gypsy)
[20:49:54] <NotADragon> That would be neat
[20:51:27] <Marzo> Hm
[20:52:16] <Marzo> Make a gypsy sprite that moves hands while sitting
[20:52:36] <Marzo> And have it randomly play with cards while the avatar is not talking to it
[20:53:14] <NotADragon> That would also be interesting (though making it function as a proper NPC might be tricky)
[20:53:21] <NotADragon> You'd know better than I.
[20:53:33] <Marzo> No need for it to be an NPC
[20:54:16] <Marzo> (we can make it an object which just sits there all day long; it is supposed to be a flashback after all)
[20:54:30] <NotADragon> How is the avatar going to talk to it, then? :P
[20:54:49] <Marzo> An object can be double-clicked too :-p
[20:54:58] <Marzo> (think of the ferryman)
[20:55:03] <NotADragon> But to spawn a converation? With a proper face graphic?
[20:55:14] <Marzo> Yep
[20:55:18] <NotADragon> I'll let you bother with that, then :P
[20:55:25] <Marzo> We just need the face graphic
[20:55:54] <NotADragon> We'll be needing one I suppose.
[21:00:54] <NotADragon> (Interesting aside: about 56% of the websites traffic comes from IPs originating from .de domains)
[21:01:07] <Marzo> Hm
[21:02:06] <NotADragon> (AWstats is nifty for churning out interesting, mostly-useless stats :-) )
[21:02:14] <Marzo> hehe
[21:02:47] <NotADragon> (And the antispam software has already nuked 18 comments that were just spam ads)
[21:02:58] <Marzo> O>o
[21:04:16] <NotADragon> RSS feed activity makes the spambot go wild, .. or something, I'm told
[21:04:50] <NotADragon> As a more on topic aside: Mapping work, even with ES, is a lot more time consuming than people give it credit for.
[21:05:02] <Marzo> Indeed
[21:05:16] <NotADragon> Virtue's hold is starting to really get there, though
[21:05:51] <NotADragon> It would be useful if there was a way to make ES not render shapes that arent flats on chunks, btw
[21:06:15] <NotADragon> (Right now Ill have those orange trees get in the way of mapping, so I'll just nuke them and restore the modified U7chunks after
[21:06:15] <Marzo> You can do that to an extent
[21:12:19] <NotADragon> How, precisely?
[21:12:40] <Marzo> Using 'hide lift'
[21:12:51] <Marzo> Doesn't get rid of the objects at ground level, though
[21:12:52] <NotADragon> Ohgod, I hit locate instead of find again
[21:12:54] <NotADragon> bleh
[21:13:05] <NotADragon> and yeah, that's 90% of things in chunks (if not more)
[21:15:52] <NotADragon> (Also: I distinctly remember being told classes didn't have inheritance :( )
[21:16:02] <Marzo> You remember wrong
[21:16:16] <Marzo> Inheritance was there from the get go
[21:16:34] <NotADragon> I was probably told wrong :P But that makes things easier.
[21:18:13] <NotADragon> (Also, everytime I hit that damn locate button instead of find, it crashes Exult)
[21:18:26] <Marzo> odd
[21:19:04] <NotADragon> This is why you get wonderfully loving comments from me when I do accidentally hit that XP
[21:20:38] <NotADragon> (Nothing useful in std_err or studio_err, for the record)
[21:21:04] <NotADragon> A few notes about the client/server link getting broken in spots but I get that normally
[21:24:15] <NotADragon> You mentioned you already had a function or something for the virtue "casting", if so, is it in the existing CVS tree, and if so, where?
[21:24:40] <Marzo> It is not yet on CVS
[21:29:23] <NotADragon> Alright
[21:31:07] <NotADragon> Let me know when you do, as at some point I'm going to tighten up the Karma system code significantly.
[21:31:20] <Marzo> k
[21:31:27] <Marzo> Right now, I am making tarot cards
[21:31:30] <NotADragon> (And I think I'm going to abuse usecode containers to make the karma invisible from the stats window, since we can use them in BG now)
[21:31:35] <Marzo> (mini-tarot cards)
[21:32:47] <NotADragon> Question about classes: the call method for functions using them is class.member_function ... or?
[21:33:15] <Marzo> Yes
[21:33:23] <Marzo> (class instance, actually, but yes)
[21:33:31] <Marzo> You can also use -> instead of the period
[21:33:46] <Marzo> A note: all functions are virtual in usecode classes
[21:34:02] <Marzo> If you do not define a new function in a class, it uses the parent function
[21:34:35] <Marzo> And you can call the parent function with a derived class by using class.baseclass::function()
[21:36:08] <NotADragon> But in an inherited function if the function is inherited I can just go for example Gemstone->get_quantity right?
[21:36:24] <Marzo> Yes
[21:37:22] <NotADragon> Re: set_cut: A setter for the Gemstone cut property. The setter for the Gemstone cut property is a little more complex, as it checks to ensure that the string passed is a valid cut. I suppose we could make the passed parameter an ENUM, but I’m not sure if UCC currently supports that.
[21:37:34] <NotADragon> Is it possible to pass enumerated types as a value to functions?
[21:37:34] <Marzo> What I meant above is that, unless you define a get_quantity function in the Gemstone class with the same parameters as the get_quantity from Commodity, the function from Commodity will be used
[21:38:08] <Marzo> We can set it through a switch
[21:38:14] <Marzo> (and the answer is no)
[21:38:19] <NotADragon> this is what I do currently
[21:38:34] <Marzo> Check for the valid values, and default for anything else
[21:38:47] <NotADragon> (you made mine a little neater, but yea)
[21:39:24] <NotADragon> (Although, I would actually default the gem to "uncut", as a gem that is new to the system would not yet be cut.)
[21:39:42] <Marzo> indeed
[21:39:54] <Marzo> I just went with what was there, I think
[21:40:07] <NotADragon> I don't think I had a default, actually, to be honest.
[21:40:13] <NotADragon> But in any case, fixed now :-)
[21:40:38] <NotADragon> And now, knowing the base classes are there, I am going to fiddle with expanding on our base.
[21:41:04] <NotADragon> You saw what I had for commodities in the econ_commodities file?
[21:41:17] <Marzo> Yes
[21:41:39] <Marzo> I had a few ideas, but I need to know more of what you want before I can make anything useful
[21:42:06] <NotADragon> Well what I want is fairly fluid, when it comes to the commodity specifics.
[21:42:17] <NotADragon> But I think you can get a general idea where I'm going with it.
[21:42:41] <Marzo> For example: the commodities should be per city, I think, right?
[21:42:58] <NotADragon> Well, that will be handled by resource pools.
[21:43:32] <NotADragon> Basically I will have an array or perhaps class - but something - that holds all the resources for a region.
[21:43:57] <NotADragon> And then each pool will have certain resources available to them. There'll be some obvious overlap, of course.
[21:49:22] <NotADragon> Im all ears to what ideas you have though
[21:49:27] <NotADragon> (Or is it all eyes? Hrm)
[21:49:42] <Marzo> I would have to think a bit about it first
[21:50:07] <NotADragon> okay
[21:50:41] <NotADragon> My current dilemna is this:
[21:51:13] <NotADragon> As I have it currently, all of, for example, the instances of the Wood commodity would have the same generation/regeneration rate.
[21:51:37] <Marzo> And you would like it to depend on the location
[21:51:57] <NotADragon> So either I would have to override it specifically for Yew (which you'd think would have more), or be able to override the default values for specific locations.
[21:53:21] <NotADragon> So basically yes, what you said.
[21:53:51] <NotADragon> Another thing I thought of would be to have the regen_rate defined in the resource pools, but that could get a little hack-y.
[21:54:38] <Marzo> So far, I have two ideas that may work
[21:54:54] <Marzo> 1) per-region instances of the commodity classes
[21:55:21] <Marzo> 2) global instances of commodity classes that manage all regions
[21:56:27] <Marzo> (2) would require reworking the classes to take a region as parameter for many (most? all?) functions, and would use arrays for the commodity variables (one entry per region)
[21:57:14] <Marzo> The former would either have huge numbers of instances (one per region) and would require changes to UCC if we want to make an array of classes to manage all that
[21:57:27] <NotADragon> Actually, I think as long as a regen_rate of 0 actually meant _0_ ... having the regen_rate defined at the resource pool may not be so bad.
[21:59:58] <NotADragon> It would mean having a fair bit of superfluous variables for some regions though
[22:01:11] <Marzo> (2) would require slightly less, as storing a class takes a lot more than storing a number in an array
[22:05:13] <NotADragon> I think what I will do is create a base resource pool, then resource pools for specific type of regions, ie forest resource pool, mountains resource pool, etc
[22:05:21] <NotADragon> and then inherit the specific towns from thos
[22:05:36] <NotADragon> that would keep superfluous regen variables to a minimum
[22:05:46] <Marzo> That works
[22:06:33] <NotADragon> (I know what Im doing ... sometimes)
[22:14:59] <NotADragon> For the base resource_pool class I have "name", "size" (basically the capacity of the pool in total), and "generation_modifier" (for modifiers to the overall production)
[22:15:05] <NotADragon> Anything else you can think of?
[22:15:32] <Marzo> brb
[22:25:35] --- Marzo is now known as Marzo_away
[22:27:26] <Marzo_away> back
[22:27:27] --- Marzo_away is now known as Marzo
[22:28:57] <Marzo> Be aware than when you instantiate a class, you must supply the constructor with initial values to all variables
[22:29:29] <Marzo> Thus, at best you can have a special "init" function in each derived class that sets values specific to the region
[22:34:01] <NotADragon> But an inherited class can overwrite it's own values, can it not?
[22:34:19] <Marzo> Yes
[22:34:44] <Marzo> After instantiation, yes
[22:35:29] <NotADragon> So just have some filler values for the generic class and overwrite them in others. It may be best in that light to simply straight inherit the different city's values instead of that middle step, though.
[22:37:45] <Marzo> How is this for the in-game tarot-deck: http://lfs.lfhost.com/seventowers/images/tarot_cards.png
[22:38:00] <NotADragon> Neat!
[22:38:42] <Marzo> The top-left is supposed to be the colored codex symbol
[22:38:59] <Marzo> But it seems to be just a jumble of colors...
[22:39:28] <Marzo> Now for the gypsy object...
[22:39:38] <NotADragon> So thats what it was
[22:40:42] <Marzo> If you have another idea I can try...
[22:41:10] <NotADragon> At that size thats prolly the best you can do
[22:41:34] <Marzo> Indeed
[22:43:05] <Marzo> Until we have a proper portrait, I will use the Minoc gypsy portrait for the gypsy
[22:45:02] <NotADragon> Alright.
[22:50:30] <NotADragon> Im thinking that certain "organisations" like the Fellowship or the Minoc artisans guild might have their own resource_pools too
[22:55:45] <NotADragon> Hmm, idea.
[22:55:56] <Marzo> Shoot
[22:56:14] <NotADragon> It would be possible to use a class to encapsulate related functions as Python does, wouldn't it?
[22:56:36] <Marzo> Don't know (don't use Python)
[22:56:57] <NotADragon> Well
[22:57:05] <NotADragon> A poor example but off the top of my head
[22:57:09] <NotADragon> have something like
[22:57:12] <Marzo> UCC classes need a class instance (the 'this' of C++) in order to use variables or functions
[22:57:32] <NotADragon> Resource_Functions and then member functions that are all related to resources
[22:57:33] <Marzo> (no such thing as C++-style static member functions in UCC)
[22:57:54] <NotADragon> and then Resource_Functions->this_function()
[22:58:46] <Marzo> If 'Resource_Functions' is an instance of a class, that would be possible, yes
[22:59:02] <NotADragon> I was thinking the Karma functions would be better organised encapsulated in such a way
[22:59:19] <Marzo> True
[22:59:33] <NotADragon> (They were originally written before classes altogether)
[22:59:50] <NotADragon> Gives you a bit of an idea how long ago I wrote those :P
[23:00:28] <NotADragon> So basically instead of "karma_getHonestyMessage" as a random example
[23:00:40] <NotADragon> Karma->GetMessage("Honesty")
[23:01:08] <Marzo> You can use integers from an enum too (to avoid string comparisons)
[23:01:32] <NotADragon> The only problem with string comparisons is case issues
[23:02:30] <NotADragon> I think I will just have karma as a class (and possibly derive classes for party member karma if we ever overkill it that much)
[23:02:44] <NotADragon> The only problem with that is Im still a little sketchy on how to properly init classes in UCC
[23:03:19] <Marzo> Suppose there is a class named 'TestClass'
[23:03:29] <Marzo> You create an instance of this class as:
[23:03:41] <Marzo> class<TestClass> test;
[23:03:52] <Marzo> When you need to initialize it, just go like:
[23:04:08] <Marzo> test = new TestClass(<insert variables here>);
[23:04:19] <Marzo> You can declare and initialize all but a static class
[23:05:02] <NotADragon> The thing with the Karma and Economy though, is they need to be init'd at the game start.
[23:05:14] <Marzo> The variables in "<insert variables here>" are one for each variable in the class declaration (although ISTR that UCC supplies zero to parameters you don't supply)
[23:05:19] <Marzo> Yes
[23:05:52] <Marzo> If we make them static classes, we can encapsulate them in a function that initializes and returns the desired class
[23:06:34] <Marzo> Also, these are advantages to defining a static class inside of a function
[23:07:32] <Marzo> (it is visible only to the initialization function, its saved values are more robust to additions of static global variables before it)
[23:12:26] <NotADragon> Well I'm going to gut and redo the Karma now and you can tell me after the CVS commit in a few minutes how horrible of an idea that is :)
[23:12:35] <Marzo> k
[23:19:39] <NotADragon> Hrm
[23:20:11] <Marzo> What?
[23:20:54] <NotADragon> Wondering if Im going to need karma/virtue for NPCs or if I should just check the variables for the Avatar's virtue in the class.
[23:21:21] <Marzo> I think that only the avatar's will suffice
[23:21:32] <Marzo> It is not like the NPCs have much choice...
[23:21:52] <NotADragon> (Which would also hide the stats from the player)
[23:22:35] <NotADragon> But we'd need to make sure we have a constructor/initialise thingy in place for when the game starts, or our gypsy intro is going to be kinda pointless :-)
[23:23:06] <Marzo> No problem with that
[23:23:45] <Marzo> When I write the usecode for the game start, I will make sure to place a comment in a convenient place for this initialization
[23:24:03] <NotADragon> Well the class name will be "Karma"
[23:24:12] <NotADragon> and the component variables will simply be the virtue name
[23:24:21] <Marzo> Or, if we encapsulate the karma class in a function like I for the keyring, it will be auto-initialized whenever it is used
[23:24:37] <Marzo> (if it needs to be initialized, that it)
[23:25:26] <NotADragon> (As an aside: this track of justins would make a cool shrine theme)
[23:34:42] <NotADragon> Im also changing my setters to return the new value of the property too, mostly for debugging purposes.
[23:45:00] --- Marzo is now known as Marzo_away
[23:49:30] <NotADragon> Alright, there's the get/set and vars altogether, now some of the more complex functions.
[23:49:39] --- Marzo_away is now known as Marzo
[23:49:54] <Marzo> Here are the three frames of the gypsy object: http://lfs.lfhost.com/seventowers/images/gypsy.png
[23:50:10] <Marzo> (and what track did you mean above?)
[23:51:12] <NotADragon> Ill get a link, second
[23:51:24] <NotADragon> Also, neat!
[23:51:40] <Marzo> Stealing SI dream borders...
[23:51:45] <NotADragon> http://edgen.hostpaw.com/edgen_light_between_shadows.mp3