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

Archive Today Yesterday Tomorrow
tfl homepage

[00:19:44] <-- NotADragon has left IRC (Read error: 110 (Connection timed out))
[00:45:33] --> NotADragon has joined #tfl
[00:46:11] --- ChanServ gives voice to NotADragon
[00:49:38] --> Marzo has joined #tfl
[00:49:38] --- ChanServ gives voice to Marzo
[00:51:10] <Marzo> Hi there
[00:59:09] <NotADragon> Hello
[00:59:37] <NotADragon> As you may have noticed, I spent an insomnia-ridden night/morning yesterday/today working on some stuff for the site.
[01:00:21] <Marzo> I saw the message at the Phorum, but didn't check it myself
[01:01:08] <NotADragon> The main addition that isn't superficial really, is that there is now something of a forum attached with the site again.
[01:01:43] <NotADragon> Also I worked out the bug in the screenshots page that caused them not to display.
[01:02:57] <Marzo> On another note, prompted (in a way) by a post in the Phorum:
[01:03:09] <NotADragon> Uhoh
[01:03:46] <Marzo> The blacksword claims that it needs to kill creatures in order to replenish your mana, while it actually requires the time to be between 9:00PM and 5:59AM
[01:04:07] <Marzo> What do you say about changing it?
[01:04:40] <Marzo> (so that you actually need to kill something in order for Arcadion to heal your mana instead of waiting until night, I mean)
[01:04:58] <NotADragon> IIRC from my discussions, that was due to usecode error that never got fixed.
[01:05:09] <Marzo> (and yes, I know better than believing everything a demon says :-p)
[01:05:24] <NotADragon> Whether we make it say it needs to be night, or it needs to kill people, either way, it needs fixed one way or the other IMO
[01:06:01] <Marzo> The usecode seems fine, actually (unless you mean the timer problem)
[01:06:19] <Marzo> (which doesn't exist in Exult, by the way)
[01:06:32] <NotADragon> I say "error" instead of ""bug" because it was a design thing as opposed to implementation.
[01:07:09] <NotADragon> (Also, you think they would have stuck that code in Seance =) )
[01:07:42] <Marzo> Seance is actually a strange spell
[01:08:11] <Marzo> There is every hint that you wuold have to cast it once for every ghost, but the final game requires you to cast it once
[01:08:20] <NotADragon> Yeah, I know ...
[01:08:22] <Marzo> s/wuold/would
[01:08:27] <NotADragon> To be honest.
[01:08:35] <NotADragon> Once per every ghost, is probably overmuch.
[01:08:46] <NotADragon> But in the final game you cast it once and never have to cast it again.
[01:08:51] <NotADragon> It should probably end at dawn
[01:09:53] <Marzo> That is an usecode bug coupled with an integer overflow bug
[01:10:31] <NotADragon> Mmm overflows
[01:11:10] <NotADragon> Speaking of upper limits, the NPC limit thingy got whacked, right?
[01:11:40] <Marzo> They botched the calculation of the script delay, so that it is delayed by several minutes (almost up to an hour), and the integer overflows if there is more than half a day of duration
[01:11:43] <Marzo> Yes
[01:12:08] <Marzo> You should be able to create up to about 65000 NPCs
[01:12:37] <NotADragon> NOT NEARLY ENOUGH
[01:12:38] <NotADragon> Ahem
[01:12:40] <NotADragon> I mean
[01:12:42] <NotADragon> :-)
[01:13:03] <Marzo> (actually, slightly less tnah half a day -- about 11 hours is enough)
[01:13:37] <Marzo> It is very likely that you will run out of memory long before reaching that ceiling
[01:14:14] <NotADragon> Well, how well Exult handles that will certainly get well tested once I start adding in NPCs to TFL (not to mention redoing SI)
[01:15:02] <Marzo> The only annoying part is that NPCs need to be added sequentially (you can't manually select the NPC's number in ES)
[01:15:54] <Marzo> (not that reserving ranges of NPC numbers for certain locations work all that well)
[01:16:31] <NotADragon> Yes that makes organisation a little more difficult. It would require a rather fundamental shift in code to change that though, and you would know better than I how intrusive into Exult that would be,
[01:16:59] <NotADragon> Notably, it would involve fetching NPCs by a reference as opposed to the hard NPC number in the datafile.
[01:17:30] <Marzo> Currently, NPCs (actually, pointers to NPCs) are stored in an array; the Nth element corresponds to NPC #N
[01:18:45] <Marzo> From the standpoint of memory fragmentation, it would be best to store all NPCs (instead of just pointers to them) in a contiguous array of NPCs too
[01:19:20] <NotADragon> The method I use for referencing NPCs in another project I contribute to is simply a bunch of references such as "Person@Location" which then map to the hard NPC # in the NPC datafile.
[01:19:28] <Marzo> NPCs with numbers 356-360 (unsure about 360) are reserved due to the use of some of these constants for special purposes
[01:19:52] <NotADragon> Such as the "party" constant, aye.
[01:20:12] <Marzo> Yep; avatar = 356, party = 357, wildcard = 359
[01:20:30] <Marzo> (actually, their negatives, but better safe than sorry)
[01:21:04] <NotADragon> Aye, we already know all about how finicky Usecode is, best not to tempt fate.
[01:21:38] <NotADragon> But uh, yeah, since we can't hard-set NPC numbers, the actual file could get pretty fragmented, pretty quick.
[01:21:46] <Marzo> I have been thinking of making the element 356 point to the same location as element 0 to simplify some bits of the code, but it would require adding some protection to prevent the avatar from being deleted
[01:22:34] <Marzo> And Exult currently has no method of identifying an NPC by location or name
[01:22:41] <NotADragon> Generally speaking the PC getting deleted would be bad, yes.
[01:23:02] <NotADragon> Well by name alone would be a bad idea, I would think, that would be somewhat safer.
[01:23:03] <Marzo> (other than looking through objects in an area, checking which are NPCs and comparing the information)
[01:23:32] <NotADragon> Well in the case of the example I'm thinking, it's actually just arbirtrary in that that NPC belongs to that "area"
[01:23:52] <NotADragon> Though if you recall we do need to figure out a way to define "areas" anyways, for the Economy system we were devising
[01:23:53] <Marzo> PC being deleted: there is a single way (that I have found) of truly deleting the avatar in the original games
[01:24:39] <Marzo> (in SI, actually)
[01:25:03] <NotADragon> Anything's possible in SI, except a completeplot.
[01:25:10] <NotADragon> Er, that was missing a space.
[01:26:13] <Marzo> You treat the avatar as a dead body in a resurrect command in a usecode script
[01:26:31] <Marzo> Avatar vanishes, and the game goes downhill from there
[01:26:47] <Marzo> (you do need to write custom usecode for that, though)
[01:27:06] <NotADragon> =)
[01:27:32] <Marzo> Almost everything else has some form of preventing that from happening
[01:28:00] <NotADragon> Actually, if you have an initial release version, it was posible for the Avatar to just ... disappear during the Petra transferrance sequence
[01:28:10] <NotADragon> (Of SI that is)
[01:28:46] <Marzo> Hm. That is interesting.
[01:29:08] <NotADragon> It was fixed in subsequent versions that were released. (And a floppy disk patch. Man, if they still had to mail people disks to patch things still, software would be so much more stable)
[01:29:15] <Marzo> I bet that something like that could happen in the beta, but it is downright unplayable
[01:29:27] <Marzo> Indeed
[01:30:09] <NotADragon> I need to UC dump the beta. While it wouldn't give us really workable usecode, I bet you we could find some interesting things in there.
[01:30:17] <NotADragon> (But Im betting you already have :P )
[01:30:36] <Marzo> (I forgot to mention: the beta has line numbers and debug information in the usecode, so that you sometimes you have to press a key to resume usecode, including the start)
[01:30:46] <Marzo> You bet right
[01:31:23] <Marzo> I even recovered the beta's intrinsic table, and made a version of Exult that loaded it
[01:31:39] <NotADragon> Interesting. Anything insightful to that?
[01:31:40] <Marzo> It was still unplayable, but for other reasons
[01:35:20] <NotADragon> I've been told the intrinsic table changed quite a bit from early versions of the code to the final product but I don't (yet) have a dump of the beta, so I wouldn't know personally. However if it has, you can compare the difference, and on a programming level at least, more or less extrapolate where they were originally headed with things.
[01:35:35] <Marzo> One interesting thing is that the biggest difference in the intrinsic table is that the final SI has two different versions of the give_last_created intrinsic
[01:36:19] <Marzo> Exult treats both of them the same, and it seems to work fine for SI
[01:36:39] <Marzo> But it seems to be the wrong one for the beta
[01:37:02] <Marzo> (the teleport storm creates an endless number of copies of every item due to this difference)
[01:37:04] <NotADragon> Yeah I always wondered what was different about them, but back when I originally dumped them, the UC extractor was in its infancy still, and I had to go by mostly raw usecode trying to figure things out.
[01:37:10] <Marzo> (in Exult, that is)
[01:37:47] <Marzo> (start a private chat, please)
[03:06:35] <-- Marzo has left IRC (Read error: 104 (Connection reset by peer))
[03:12:24] --> Marzo has joined #tfl
[03:12:24] --- ChanServ gives voice to Marzo
[03:13:00] <Marzo> (how was it that a private chat is started again?)
[05:18:06] <-- Marzo has left IRC (Read error: 104 (Connection reset by peer))
[05:18:27] --> Marzo has joined #tfl
[05:18:27] --- ChanServ gives voice to Marzo
[05:18:41] <Marzo> Oops, Miranda crashed on me
[05:19:12] <Marzo> Last thing I said/read was about the 'duration' field for repeat
[05:20:15] <Marzo> Wow, look at the time
[05:21:11] <NotADragon> 12:21 am for me
[05:21:23] <Marzo> Here is 3:21 AM
[05:21:33] <NotADragon> Easy to get carried away when you're being productive, I was up till 7am yesterday
[05:21:40] <Marzo> Yep
[05:22:02] <Marzo> In any event, I think we should resume this later today
[05:22:19] <NotADragon> A note before you go, the new TFL forums dont require a seperate user from the site (though do to cookie sharing problems logging onto the forums will log you off the main site, and vice versa)
[05:22:22] <Marzo> Have some time to sleep on the ideas I had
[05:22:40] <NotADragon> I will be putting there a hidden forum where you can toss ideas for consumption if I'm not around
[05:22:50] <Marzo> k
[05:23:10] <Marzo> Good night
[05:23:18] <NotADragon> Im also going to try to see if I cant whip up a few people to help get this going again, so try not to be too freaked out if you see others around.
[05:23:24] <NotADragon> Sleep well, Avatar :-)
[05:23:34] <-- Marzo has left IRC ("Marzo vanishes suddenly.")
[05:28:11] <-- NotADragon has left IRC ("ChatZilla 0.9.84 [Firefox 3.0.5/2008120122]")
[20:17:18] --> NotADragon has joined #tfl
[20:17:18] --- ChanServ gives voice to NotADragon
[21:06:45] <-- NotADragon has left IRC ("ChatZilla 0.9.84 [Firefox 3.0.5/2008120122]")
[22:01:54] --> Marzo has joined #tfl
[22:01:54] --- ChanServ gives voice to Marzo
[22:40:27] <-- Marzo has left IRC ("Marzo vanishes suddenly.")
[22:40:42] --> Marzo has joined #tfl
[22:40:42] --- ChanServ gives voice to Marzo
[22:50:48] --- Marzo is now known as Marzo_away