#tfl@irc.freenode.net logs for 6 Sep 2006 (GMT)

Archive Today Yesterday Tomorrow
tfl homepage


[00:04:50] <Vsr> todays your birthay?
[00:05:02] <wizardrydragon> <_<;;
[00:05:20] --- Vsr is now known as Vistaer
[00:27:12] * wizardrydragon steps on the crickets that are chirping
[00:29:54] <Crysta> lol
[00:31:10] * Marzo is not saying anything because he is busy trying to come up with a way to implement inheritance in usecode classes
[00:31:38] <wizardrydragon> You know, it couldnt hurt to ask Jeff to do at least one or two of the things on your todo list :P
[00:31:55] <Crysta> and im jut kinda.. sitting here... quietly
[00:32:12] * wizardrydragon is still trying to find all his ultima swasg
[00:32:21] <Marzo> It wouldn't hurt, except that I volunteered to do this one in particular
[00:32:33] * wizardrydragon was happy to find his ankh from ultima IV game
[00:32:45] <wizardrydragon> Well, theres plenthy other ones to choose from :)
[00:32:59] * Marzo is much better at adding things to his todo list than actually doing them
[00:33:13] * wizardrydragon shares this skill.
[00:46:47] * Marzo has crossed something of his todo list. Whatever it is that wizardrydragon did, it must be working :-)
[00:47:07] * wizardrydragon is shocked he managed to do something right for once.
[00:47:20] <Marzo> lol
[00:47:41] <wizardrydragon> So what is it I did right, again? lol
[00:48:03] <Marzo> [21:33] wizardrydragon shares this skill.
[00:48:17] <Marzo> Oh wait.
[00:48:27] <Marzo> I had missed the 't' the first time.
[00:48:29] <Marzo> lol
[00:48:40] <wizardrydragon> Lol
[00:48:47] <wizardrydragon> blah
[00:48:53] <Marzo> So you didn't do anything right once more :-)
[00:49:26] <wizardrydragon> Id work on the intro ... but I fear how much I'd break things in my muchly fatigued state.
[01:09:52] <Crysta> just a quiet boring day, eh?
[01:09:59] * wizardrydragon snores.
[01:12:36] <wizardrydragon> If you think this is boring you shouldve been in here when i first masde this channel
[01:15:57] <wizardrydragon> <_<
[01:16:02] <wizardrydragon> >_>
[01:16:03] <Crysta> lol
[01:16:20] * wizardrydragon gives Marzo a sheep and runs off laughing maniacallyh.
[01:17:08] * Marzo throws the sheep (in Worms 2 style) at wizardry dragon and laughs whimsically
[01:17:36] * wizardrydragon pulls out his bazooka and blows it up, Woms 2 style
[01:20:16] * Marzo just realized that occludes.dat doesn't support shapes >1023
[01:20:26] <wizardrydragon> !!
[01:20:30] * wizardrydragon dies.
[01:20:40] <wizardrydragon> Thats kinda .. bad.
[01:20:56] <Marzo> To say the least
[01:21:12] <wizardrydragon> Marzo I was thinking of an alternative route to handling weapons by class, but Im not sure if it can be done or not
[01:21:21] <Marzo> (not that occludes.dat is actually important or anything... :-))
[01:21:43] <wizardrydragon> I was considering that instead of class restricted weapons, I would have certain classes have some sort of bonus when weilding "class" weapons
[01:21:46] <Marzo> Say it and I can pronounce judgement :-)
[01:21:49] <wizardrydragon> Is that possible?
[01:21:54] <Marzo> Oh, you were faster...
[01:22:05] <wizardrydragon> Without recoding every weapon in the game? :P
[01:22:18] <Marzo> In either case, you'd have to recode every weapon
[01:22:36] <wizardrydragon> bah
[01:22:42] <Marzo> Exult uses combat for all weapons, and you'd have to change that to have an effect
[01:22:48] <wizardrydragon> i guess restrictions would be easier
[01:23:09] <wizardrydragon> if you could throw an event when an item is equipped, but idk if thats possible
[01:23:19] <wizardrydragon> then just unequip the item if its a bads one
[01:23:41] <Marzo> There might be problems with that approach
[01:24:03] * Marzo is thinking of some poorly usecoded items in the original games
[01:24:16] <wizardrydragon> Howso?
[01:24:38] <Marzo> For example: I once thought about enabling usecode events for all items when equiped
[01:24:48] <Marzo> It worked fine... except for guards
[01:25:02] <wizardrydragon> Oh? Howso?
[01:25:24] <Marzo> If you equip a guard, problems ensued :-)
[01:25:32] <Marzo> (yes, it is an obscure case, but some players might just do it)
[01:25:48] <wizardrydragon> What would happen?
[01:25:50] <Marzo> There were other problems; but it was over a year ago
[01:26:11] <Marzo> Exult crashed after the conversation ended
[01:26:30] <Marzo> (a conversation *started* when you equiped the guard)
[01:27:09] <wizardrydragon> sHmm
[01:27:20] <Marzo> There are a few other items (don't remember them offhand) which do not check the event level and would also be activated when equiped
[01:27:39] <wizardrydragon> Well I dunno how BG would handle it, but perhaps have a handle for it that can be used, and then TFL overwrites the guards anyways...
[01:28:05] <Marzo> Something to be considered
[01:28:21] * Marzo refrains for shooting wizardry dragon because it is his birthday
[01:28:25] <Marzo> :-)
[01:29:17] <wizardrydragon> Why, it's me that volunteered to be the one fixing all the things that it breaks, you should be happy :)
[01:29:33] <Marzo> I am thinking about using the full 16-bit space that is being currently allowed for shapes in many data files to extend the maximum number of shapes to 65536
[01:29:40] <Marzo> lol
[01:29:47] <wizardrydragon> Only 65536? A pittance!
[01:29:53] <Marzo> :-)
[01:30:07] <wizardrydragon> Why Im sure Crysta makes that many shapes a day
[01:30:10] * wizardrydragon ducks.
[01:30:27] <Marzo> (you could fit 64 copies of Ultima 7's shapes.vga that way)
[01:30:28] <Crysta> *a flying hammer barely misses his head*
[01:30:30] <Crysta> damn
[01:30:33] <Marzo> lol
[01:30:52] * Marzo notices that Wizardry dragon has a strange fixation with ducks :-)
[01:31:07] <wizardrydragon> At least it's not sheep.
[01:31:12] <Crysta> or cats
[01:31:37] <Marzo> Tell that to Shamino, he is the one with the sheep fixation
[01:31:57] <Marzo> (or so Alun Bestor would have us believe, anywway)
[01:31:58] <Marzo> :-)
[01:32:47] <wizardrydragon> Maybe it's Alun that has the sheep fixation!
[01:32:56] * wizardrydragon strokes his chin thoughtfully.
[01:34:23] * Marzo has realized that usecode functions are also 16-bit numbers, so there wouldn't be enough usecode functions available for all of them
[01:35:15] * wizardrydragon wonders why Jeff hasn't integrated 32 bit usecode after almost two years of being bugged about it
[01:43:36] <Marzo> There are *some* 32-bit instructions, but none of them useful
[01:45:15] <Marzo> Example: an unknown usecode instruction that happens only *once* in the BG usecode (the audition) has a 32-bit version
[01:45:31] <wizardrydragon> lol
[01:46:25] <Marzo> For-loops have 32-bit versions...
[01:47:43] <wizardrydragon> why do for loops need 32bt versions? O_o
[01:48:07] <Marzo> For the jumps
[01:48:30] <wizardrydragon> I guess
[01:48:38] <wizardrydragon> Seems overkill
[01:48:40] <Marzo> Think of a goto in VB
[01:49:27] <wizardrydragon> gotos are evil >:-O
[01:49:31] <Marzo> When compiled, the processor (in this case, the usecode machine) has to know how many bytes it needs to jump ahead
[01:49:46] <Marzo> Indeed, but are unavoidable in assembler
[01:50:17] <Marzo> They are based in machine-code constructs that move the currently executed instruction forward or backward
[01:50:51] <Marzo> Since compiled usecode is very machine-code-like, it has them intrinsically
[01:51:05] <wizardrydragon> theyre still evil :)
[01:51:12] <Marzo> They have intrinsics too, but that is a different thing (and a terrible pun, I know)
[01:51:20] <Marzo> Agreed
[01:51:55] <wizardrydragon> Gotos: I avoid them like Marzo avoids the Exult bugs I point out.
[01:52:24] <Marzo> I have fixed all I could reproduce, so the comparison is invalid :-)
[01:52:52] <Marzo> You can use 32-bit integers and strings too
[01:53:09] <wizardrydragon> Gotos: I avoid them like Crysta avoids the Mariah gump
[01:53:14] <wizardrydragon> better :)
[01:53:19] <Marzo> Much :-)
[01:53:59] <wizardrydragon> hehe
[01:54:34] <Marzo> Although you can't *add*, *subtract*, *multiply* or *divide* with 32-bit integers as there are no instructions for that...
[01:54:57] <Marzo> You can compare them, however
[01:55:45] <Marzo> There is also a 32-bit version of the conversation instruction (for the same reason as there is the loop) as well as of jumps
[01:56:13] <Marzo> And an instruction to add together two 32-bit strings
[01:56:51] <Marzo> That sums all of the 32-bit usecode support in Exult
[01:57:01] <Marzo> err. sums *up* even
[01:57:02] <wizardrydragon> need 32-bit length for instruction numbers :)
[01:57:30] <Marzo> I don't think that this is really needed
[01:57:47] <wizardrydragon> it will be by the end of TFL Im sure
[01:58:14] <Marzo> Let me count the number of instructions that exist so far
[01:59:07] <wizardrydragon> When/if the whole thing gets done, it'll be forms of UW, UW2, BG, and SI all rolled together into one yhummy package of gaming goodness :)
[02:01:13] <Marzo> brb
[02:01:46] --- Marzo is now known as Marzo_away
[02:01:52] <-- Marzo_away has left IRC ("Marzo vanishes suddenly.")
[02:02:30] <wizardrydragon> mmm
[02:02:33] <wizardrydragon> gaming goocness
[02:02:44] <wizardrydragon> *goodness
[02:03:11] --> Marzo has joined #tfl
[02:03:59] --- Marzo is now known as Marzo_away
[02:25:32] --- Marzo_away is now known as Marzo
[02:25:37] <Marzo> ?log
[02:25:37] <exultbot> Logs are available at http://www.math.leidenuniv.nl/~wpalenst/tfllog.php
[02:26:04] <wizardrydragon> lol u didnt miss much
[02:26:08] <wizardrydragon> or anythng
[02:26:12] <Crysta> at all
[02:26:12] <Crysta> lol
[02:26:20] <Marzo> But I had missed the very last thing you said
[02:26:37] <Marzo> (I saw that you said something right before I accidentally clicked disconnect)
[02:26:57] <Crysta> ahh
[02:27:22] <wizardrydragon> lol
[02:27:44] * Marzo is saddened by the addition of yet another item to his to-do list
[02:29:00] * wizardrydragon is saddened by the fact that his birthday is almost gone withouht any inhebriation
[02:32:24] <Crysta> ...
[02:32:49] <wizardrydragon> ...?!?
[02:33:12] * Crysta doesn't drink
[02:33:37] <Marzo> 'inhebriation'? Methinks you don't need to drink any more :-)
[02:34:33] <wizardrydragon> My spelling is atrocious when im perfectlhy sober
[02:35:06] <Marzo> lol
[02:36:09] <Marzo> Heh. I just found out that of all of the 32-bit usecode instructions Exult supports, *none* are used by UCC
[02:36:12] <wizardrydragon> i do have a bottle of brandy here, but itd feel kinda pathetic being here alone drinking :P
[02:36:26] * wizardrydragon isn'
[02:36:31] * wizardrydragon isn't surprised
[02:36:47] * wizardrydragon curses the proximity of enter to the [ ' ] key
[02:37:53] <Marzo> :-)
[02:37:56] <Crysta> lol
[02:53:18] <Marzo> Just a question: do you think that 1024 shapes in faces.vga is enough (given that BG has 293 and that SI has 314)?
[02:53:33] <Crysta> if it isnt
[02:53:38] <Marzo> (I ask because this is the current limit in ES; haven't checked the rest)
[02:54:35] <wizardrydragon> it may or may not be
[02:54:47] <wizardrydragon> i havent really planned out all the faces we need
[02:54:59] <wizardrydragon> ask me again when todo.list is finished :)
[02:55:40] * Marzo knows that unlike Wizardry Dragon's, *his* to-do list will never be finished...
[02:56:42] <Marzo> Just for the record, Exult saves 16-bit faces, so the limit I mentioned is an ES-only thing
[02:57:29] <Crysta> 16 bit faces?
[02:57:36] <wizardrydragon> faces.vga you mean?
[02:57:40] <Crysta> you mean.. portraits without arestricted palette?
[02:57:59] <wizardrydragon> he means faces.vga limits, I believe Crysta
[02:58:03] <Marzo> No, I mean faces.vga can have up to 65536 faces
[02:58:10] <Crysta> oh
[02:58:11] <Crysta> damn
[02:58:31] <Marzo> (actually, it possibly can have more... it is the savegame which limits it to 16-bit faces)
[02:58:45] <Crysta> lol
[02:59:11] <wizardrydragon> I think we need 1,000,000,000,000 faces!
[02:59:23] <Crysta> lol
[02:59:29] <Crysta> so long as im not drawin em
[02:59:40] <Marzo> If you can fit that many faces in your HD, and can load them all into memory, hey I will happily code it :-)
[03:01:29] * Marzo is dismayed at yet another item in his to-do list
[03:01:57] <Marzo> *added to his to-do list
[03:02:24] <wizardrydragon> [22:59] Marzo: If you can fit that many faces in your HD
[03:02:24] <wizardrydragon> pngs of that small dimension arent THAT big marzo
[03:02:47] <Marzo> [23:59] wizardrydragon: I think we need 1,000,000,000,000 faces!
[03:03:05] <wizardrydragon> :P
[03:03:32] <Marzo> Even if each of them is a 1 byte file, it will still take up ~931 GB
[03:03:34] * wizardrydragon points out that Marzo just had better be happy that Exult doesnt have *that* many bugs
[03:04:10] * Marzo wonders how wizardrydragon can be so sure of that :-)
[03:04:44] * wizardrydragon wasn't the one that programmed it :)
[03:05:11] <Marzo> Indeed, but you have to know Murphy's law of programming
[03:05:37] <wizardrydragon> :)
[03:06:46] <Marzo> Well, I am off for the night
[03:06:57] <Marzo> Good night to you all
[03:07:52] <-- Marzo has left IRC ("Marzo vanishes suddenly.")
[03:11:48] <wizardrydragon> only 50 more minutes in my brithday *sniff*
[03:15:34] <Crysta> :(
[03:18:35] <Crysta> wish i knew what to say
[03:19:23] <wizardrydragon> Cluck, I say
[03:22:48] <Crysta> if you say so
[03:34:50] <Vistaer> Gnight all
[03:34:55] <Vistaer> and happy birthday wiz
[03:34:56] <Vistaer> :P
[03:34:58] <wizardrydragon> lol
[03:34:59] <wizardrydragon> thanks
[03:35:13] <wizardrydragon> night
[03:35:29] <Vistaer> PM me if you can think of anything you want me to do tomarrow night :P
[03:35:36] --- Vistaer is now known as Vistaer-Sleep
[03:35:51] <wizardrydragon> Umm hows about the rest of the script? :)
[03:35:54] <Crysta> and things got quieter
[03:35:57] <Crysta> lol
[03:36:01] <wizardrydragon> and then there were two
[03:36:11] <wizardrydragon> well three but the exult bot is special and unique
[03:36:22] <Crysta> lol
[03:36:35] <Vistaer-Sleep> little yellow schoolbus special :x
[03:36:38] * Vistaer-Sleep is off
[03:37:32] <wizardrydragon> [23:04] servus: Were your shoes on backward?
[03:37:32] <wizardrydragon> [23:04] wizardrydragon: My shirt was, but not my shoes.
[03:37:32] <wizardrydragon> [23:05] servus: I once fell down a cliff because my boots were on backwards. Very embarassing. Don't tell anyone, especially not Exultbot.
[03:48:42] <wizardrydragon> :D
[03:48:52] <Crysta> >.>
[03:49:24] <wizardrydragon> *pokes one of the pointy eyes*
[03:50:09] <Crysta> >.x
[03:50:10] <Crysta> ow
[03:50:35] <wizardrydragon> aww
[03:50:42] <wizardrydragon> *gives eyedrops*
[03:50:44] <wizardrydragon> :)
[03:50:53] <Crysta> 9.9;
[03:50:59] <wizardrydragon> lol
[03:51:12] <wizardrydragon> well what, are you gonna try and put a bandaid on your eye? :P
[03:51:25] <Crysta> i guess not
[03:51:29] <wizardrydragon> lol
[03:51:51] <Crysta> would STING comin off
[03:54:20] <wizardrydragon> very much so! x_o
[03:54:28] <Crysta> lol
[04:26:53] <Crysta> well.. im gonna get to bed
[04:26:59] <Crysta> night wiz
[04:27:23] <-- Crysta has left #TFL ()
[09:13:12] --> Dalian has joined #tfl
[09:42:38] <Dalian> "Start it for your new game using 'exult --game mygame', where the game name matches what you put in your configuration file." <- this worked with 1.2, but not 1.4
[09:44:54] <Dalian> it won't load up a new game now, with the stick figure avatar. The new game shows up on the menu with BG and SI, but crashes. This was working earlier, but now exult just quits when I try and run a new game based on the "New Game Doc" instructions
[09:46:41] <Dalian> Before when I had the mismatched versions, I could create an empty new game, and have it load in exult with the stick figure. But couldn't place anything. Now I can place stuff in BG but the new game won't load.
[09:47:30] <-- wizardrydragon has left IRC (Read error: 110 (Connection timed out))
[10:09:49] <-- Dalian has left #tfl ()
[10:31:26] --> Dalian has joined #tfl
[11:22:56] <-- Dalian has left IRC (Read error: 104 (Connection reset by peer))
[14:36:08] --> Crysta has joined #TFL
[14:36:13] <-- Crysta has left #TFL ()
[17:01:01] --> Marzo has joined #tfl
[17:01:10] <Marzo> ?log
[17:01:10] <exultbot> Logs are available at http://www.math.leidenuniv.nl/~wpalenst/tfllog.php
[20:31:06] --> wizardrydragon has joined #tfl
[20:31:45] --- ChanServ gives channel operator status to wizardrydragon
[20:31:49] <wizardrydragon> hi everyone
[20:31:51] <wizardrydragon> ?log
[20:31:51] <exultbot> Logs are available at http://www.math.leidenuniv.nl/~wpalenst/tfllog.php
[20:31:59] <Marzo> Hi
[20:32:07] <wizardrydragon> Hows it going
[20:32:10] <Marzo> Not much to see
[20:32:18] <Marzo> How is what going?
[20:32:27] <wizardrydragon> Umm ... life?
[20:32:40] <wizardrydragon> And if theres ANYTHING to see, it's an improvement
[20:33:01] * Marzo thinks that there is *nothing* to see, but he could be mistaken
[20:33:37] <wizardrydragon> Holy crap someone other then us was in here
[20:33:40] * wizardrydragon dies of shock
[20:33:56] <Marzo> Oh, yeah, that guy
[20:34:16] <Marzo> Methinks he chose the wrong channel :-)
[20:34:30] <wizardrydragon> Lol
[20:34:41] <wizardrydragon> Still, somone other than us!
[20:35:06] * Marzo notices that wizardydragon is quite prone to dying of shock
[20:38:41] --- Marzo is now known as Marzo_away
[20:41:21] * wizardrydragon has high blood pressure already, so it's pretty easy
[20:41:44] --> servus has joined #tfl
[20:42:00] <servus> I told him to come here to ask you about getting an Exult mod to work
[20:42:12] <servus> He's gonna be checking the logs for an answer to his question :P
[20:42:19] <wizardrydragon> Ah that'd do it
[20:42:44] * wizardrydragon thinks Marzo would be a good one to get an explanation from, seeing as he made the modmanager system and all
[20:43:20] * wizardrydragon casts Invisibility to avoid the inevitable retribution for suggesting Marzo do something
[20:43:23] --- Marzo_away is now known as Marzo
[20:43:58] <Marzo> Strictly speaking, there is a difference between a mod and a game
[20:44:30] <Marzo> Mods are much easier to make, as they inherit all of the data and usecode from the game they are based on
[20:45:14] <wizardrydragon> I think the guy was tryhing to get TFL or another mod to run, so instructions on that could help :)
[20:45:31] <Marzo> And while the game/mod managers are my own creation, the system of new games isn't; and I don't even know if it works or not
[20:45:55] * wizardrydragon understands how to do this, before you give him a smart alec reply, he simply is very bad at explaning things; you should know this already
[20:47:01] <Marzo> Check the log and you will see him asking about new games
[20:47:17] <Marzo> He even mentions the 'New Game Doc'
[20:47:20] <wizardrydragon> Ah
[20:47:25] <wizardrydragon> I just skimmed over it
[20:48:03] <wizardrydragon> Ive no clue about making games from scratch with Exult, Jeff is the one to ask about that.
[20:48:57] <wizardrydragon> (And maybe Nadir if you can actually catch up with him)
[20:49:08] <Marzo> In any case, I know that when the new games are working, the game/mod manager will have no problem starting them :-)
[20:49:16] <wizardrydragon> Lol
[20:49:24] <wizardrydragon> How can you know if you havent tried it, Marzo?
[20:49:44] <Marzo> ISTR reading Jeff saying that he would take a look at new games today, but the Phorum seems to be down
[20:50:06] <Marzo> Because I tested adding new games to Exult.cfg
[20:50:40] <Marzo> I made some of them point to BG and SI data and commented out the portions of the code which explicitly checked for BG/SI
[20:51:06] <wizardrydragon> Ah. I thought you said you hadnt tried new games.
[20:51:12] <wizardrydragon> Also, the forum is working for me.
[20:51:51] <wizardrydragon> The guy seems to have posted there as well and gotten some help from Dom and Jeff so hopefully that helps him out :)
[20:52:48] <Marzo> I said I didn't try *creating* new games from scratch
[20:53:03] <wizardrydragon> Oh fine, get all semantic on me :)
[20:53:20] <Marzo> But I had to test the game/mod manager somehow :-)
[20:53:26] <wizardrydragon> hehe
[20:53:57] * wizardrydragon is perplexed that we have game-sside inheritance but not inheritance in UCC
[20:53:58] <servus> He said that he was interested in a "New Game" and was following some "New Game" instructions that I haven't seen. Check his logs in #exult
[20:54:10] <wizardrydragon> newgame.txt ?
[20:54:16] <wizardrydragon> Theyre in the distro somewheres
[20:54:25] <wizardrydragon> Or at least the Exult code
[20:54:59] * Marzo is still thinking about how to implement inheritance in UCC
[20:55:30] * wizardrydragon hasn't messed with the source end of UCC. This is probably a good thing.
[20:55:32] <Marzo> As for newgame.txt: http://exult.cvs.sourceforge.net/exult/exult/docs/newgame.txt?revision=1.2&view=markup
[20:55:58] <wizardrydragon> Yes, Ive read it, youre the one that said you hadnt
[20:56:00] <servus> Marzo: In overriding usecode, can't you make a "Call superclass method" op?
[20:56:18] <Marzo> No, I said I hadn't tried *creating* them :-)
[20:56:18] <wizardrydragon> i can see the bg
[20:56:20] <servus> In C++, when you override a class method, you can call MyParentClass::ThisMethod()
[20:56:37] * servus shrugs. Back to work.
[20:56:45] <wizardrydragon> whoops, wrong trillain window
[20:57:05] <wizardrydragon> hmm
[20:57:22] <wizardrydragon> if you could have functions have "properties" of a sort. then it could work
[20:57:30] <wizardrydragon> Object Pascal works that way
[20:57:35] <Marzo> What I have thought about so far involves building one virtual function table for each class
[20:57:42] <wizardrydragon> thisfunction.parent = parentfunction
[20:58:42] <Marzo> Inherited members which haven't been overwritten point to the function in the parent class
[20:59:34] <wizardrydragon> Why have non-overwritten child functions, though?
[20:59:56] <wizardrydragon> Aliasing maybe I suppose, but thats not really the function of inheritance..
[21:00:45] <Marzo> Best way to explain is with an example: imagine two classes, 'object' and 'npc'
[21:01:10] <Marzo> 'object' has a 'get_shape' function, which is inherited by 'npc'
[21:01:25] <Marzo> 'npc' would not want to override that function
[21:01:36] <wizardrydragon> True
[21:01:45] <wizardrydragon> I just thought of a reason anyways, lol.
[21:01:48] <Marzo> Converselly, 'npc' could have a 'get_npc_num' function
[21:01:56] * wizardrydragon often answers his own questions.
[21:02:17] <Marzo> The 'object' class never needs this, so it is a brand new function
[21:02:36] * wizardrydragon also thinks constructors and destructors could be purely inherited, too.
[21:02:57] <Marzo> The virtual table I mentioned handles both the examples I gave
[21:03:29] <wizardrydragon> Im not sure if thats the best approach though, but maybe thats because Im having a hard tme conceptualizing it
[21:03:42] <Marzo> It doesn't handle the case where the derived class wants to override a function from the base class and still call its parent's function if needed
[21:04:00] <wizardrydragon> Could you provide an example of how you plan to implement it, perhaps? The code youj'd use?
[21:04:08] <wizardrydragon> in the usecode source, I mean.
[21:04:15] <Marzo> It is still pretty conceptual
[21:04:27] <wizardrydragon> Hmm.
[21:04:28] <Marzo> In th usecode, you would call the function as normal
[21:04:49] <Marzo> It is how UCC would compile and how Exult would run which are the problem
[21:04:55] <wizardrydragon> Hmm that's another thought too, but it might be overdoing it
[21:05:04] * wizardrydragon ponders.
[21:06:00] <Marzo> Hm. The idea of the vtable can be summarized in usecode...
[21:06:39] <Marzo> Basically, the there would be an array of function pointers
[21:06:48] * wizardrydragon has an idea but is trying to think of how to explain it
[21:07:30] <Marzo> Try it anyway :-)
[21:07:46] <Marzo> As I once said, for a good reader, half a word is eno
[21:08:03] <Marzo> :-)
[21:08:13] <wizardrydragon> Lemme bounce it around in mhy head for a while :P
[21:08:21] <Marzo> k
[21:08:30] <Marzo> Time enough? :-)
[21:08:34] <wizardrydragon> Or throw it at the wall and see if it sticks:)
[21:08:43] <Marzo> lol
[21:09:06] <Marzo> Constructors and destructors are also a kind of problem
[21:09:31] <Marzo> Or, more specifically, destructors
[21:09:39] <wizardrydragon> Those will likely have to wait until we have Object UCC working ;)
[21:09:45] <Marzo> :-)
[21:10:15] <Marzo> I am thinking more about the fact that 'new' and 'delete' operators would likely have to be called directly in code
[21:10:54] <Marzo> It would probably take too much effort to make UCC auto-add the delete code when an object goes out of scope
[21:11:27] <wizardrydragon> That's the programmers worry anyways, the game shouldnt have to worry about that :)
[21:12:02] <Marzo> Since I am one of the ones programming the game *and* the compiler, it is something I have to worry about :-)
[21:12:29] <wizardrydragon> I mean, the programmer should be error-checking for scope problems, not the game
[21:13:10] <Marzo> Which is why I talked about *UCC* adding the delete code, not Exult
[21:13:55] <wizardrydragon> Hmm
[21:14:14] * Marzo wonders if anyone would like type checking in UCC
[21:14:33] * wizardrydragon has no sympathy for Marzo adding things to his todo list himself :)
[21:14:41] <Marzo> lol
[21:15:18] <Marzo> But I can afford to do it today
[21:15:32] <Marzo> I have done something in the todo list, for a change :-)
[21:15:34] <wizardrydragon> Well it would be useful, but I'd prefer inheritance :D
[21:15:55] <Marzo> I would prefer having working classes first :-)
[21:17:10] <Marzo> I think that full blown inheritance would require adding something like C++'s scope resolution operator
[21:18:15] <wizardrydragon> Well I was thinking of something like that when I commented about thinking of something but wondering if it was overkill :)
[21:18:51] <Marzo> It probably would be overkill; I don't know how much it would be needed
[21:19:31] <wizardrydragon> Well I think it wouldn't be too bad and would make sense if we had something as Pascal does
[21:19:46] <Marzo> What does Pascal have?
[21:20:15] <wizardrydragon> private: can only be modified or called by itself
[21:20:15] <wizardrydragon> protected: can be modified or called by it's children
[21:20:17] <Marzo> I mean, I had less than a semester worth of Pascal done ~10 years ago in my first semester in college
[21:20:23] <wizardrydragon> then public which is self explanatory
[21:20:39] <Marzo> Those are also C++ constructs
[21:20:57] <wizardrydragon> C++ overkills it a little more, I think, though
[21:21:16] * wizardrydragon is the inverse, he uses pascal regularly but hasnt used C++ in ages.
[21:21:26] <Marzo> public, protected, private, friend, static...
[21:21:34] <wizardrydragon> I remember static
[21:21:41] <wizardrydragon> I dont recall "friend"
[21:22:46] <Marzo> It allows a function or class to gain access to the private and protected members of a class
[21:23:26] <wizardrydragon> ah
[21:23:51] <wizardrydragon> I dont think private was as restrictive in C, correct me f I'm wrong though, wouldnt be the first time
[21:24:10] <Marzo> I wouldn't know, since I have never programmed in pure C
[21:25:04] <wizardrydragon> well I mean "C" as opposed to "pascal"
[21:25:05] <wizardrydragon> :)
[21:25:10] <Marzo> Oh
[21:27:07] <Marzo> It is just about as restrictive
[21:27:48] <Marzo> The exception being 'friend' functions and classes
[21:28:07] <wizardrydragon> yeah thatsa what I was referring to; pascal doesnt have that
[21:28:13] <Marzo> I am thinking that it would be overkill, though
[21:28:17] <wizardrydragon> yea
[21:28:30] <wizardrydragon> I think just private and public could be okay for nosw, if we have scope at all
[21:28:35] <wizardrydragon> we can add protected if we need to
[21:28:36] <Marzo> (meaning adding public, protected, private, friend)
[21:28:57] <Marzo> I was thinking more of protected and public instead
[21:29:06] <wizardrydragon> Hmm could work
[21:29:31] <servus> Is original UCC OO?
[21:29:39] <wizardrydragon> Object oriented?
[21:29:40] <wizardrydragon> No.
[21:29:48] <wizardrydragon> Although we plan to change that :)
[21:29:50] <servus> And you are making it OO?
[21:29:55] <servus> Why? What a horrible idea. :)
[21:29:55] <wizardrydragon> To a degree.
[21:29:57] <Marzo> Or maybe forcing the issue of data encapsulation and having any vars protected and functions public
[21:30:13] <Marzo> lol
[21:30:36] <wizardrydragon> Yes! We all know we should all be programming in one large proceudre with GOTOs everywhere
[21:30:42] <wizardrydragon> Also it should have endless loops
[21:30:43] <servus> You might want to look into how "OO Concepts" are typically expressed in the C language for a more lightweight solution than what it currently sounds like is on the table.
[21:30:57] <wizardrydragon> :)
[21:31:23] <wizardrydragon> Well right now we're looking at the example of pascal and c and pairing it down to just what we need.
[21:31:39] <Marzo> Can you provide a link to it? I never programmed in plain C and *lazyshiftlessbum* am too lazy to search it myself
[21:31:56] <wizardrydragon> The only sketchy part it deciding "just what we need" :)
[21:33:17] <servus> Well I don't know of any specific articles; I was speaking in general terms.
[21:33:44] <Marzo> NP, I just tried Google and the first link was good
[21:34:54] <servus> http://www.accu.org/acornsig/public/articles/oop_c.html ?
[21:35:52] <Marzo> Well, I think that I will be avoiding the public/private/friend/protected/static idea for now and concentrate in inheritance and (possibly) polymorphism
[21:36:29] <wizardrydragon> I think that's a smart idea
[21:36:50] <wizardrydragon> It's not immediately needed or even strongly needed period.
[21:36:57] <servus> I don't see why you'd ever need variable privacy levels.
[21:37:18] <Marzo> (and by the way, usecode already had some degree of OO: you had the 'item' object, which is very similar to the 'this' in C++)
[21:37:37] <wizardrydragon> True.
[21:37:42] <Marzo> I am tending towards agreeing with you
[21:38:01] <Marzo> Which is a really long and round-about way of saying 'true' :-)
[21:38:30] <wizardrydragon> Im less sure whether theyre needed or not; but I do know theyhre not needed for what were doing now; therefore, Im sure as heck not worrying abouht them :)
[21:39:08] <wizardrydragon> Inheritance and type-checking would sure be usefule though.
[21:39:11] <Marzo> I am likely going to add something like the scope resolution operator, though
[21:39:28] <Marzo> I am still unsure if I am going to add type checking or not
[21:39:41] <Marzo> Might be more trouble than it is worth
[21:40:06] <wizardrydragon> Remember: I am coding in UCC. :)
[21:40:10] <Marzo> On the other hand, it might be required to a degree to get classes working correctly...
[21:40:31] <Marzo> So am I. What is your point? :-)
[21:40:51] <wizardrydragon> We all know about my propensity for stupid mistakes already.
[21:41:05] * Marzo knows that. He was just trying to get WizardryDragon to say out loud. :-)
[21:41:11] <wizardrydragon> Lol
[21:41:12] <Marzo> *say it
[21:42:32] <wizardrydragon> Me: "Marzo, whys the karma changing code not working?"
[21:42:32] <wizardrydragon> Marzo: "Because you're passing strings to it :P"
[21:43:13] <Marzo> I didn't remember that one...
[21:43:22] <wizardrydragon> I made it up :P
[21:43:35] <Marzo> *That* is why I didn't remember it :-)
[21:44:01] <Marzo> (I *do* remember several early problems with the karma system, though)
[21:44:12] <wizardrydragon> (Actually the bit with the karma changing code was actually a valid problem since static variables didn't seem to get saved and we needed to use npc props)
[21:45:24] <Marzo> Which reminds me of yet another item to add to my todo list... *sigh*
[21:45:36] <wizardrydragon> Static vars wokring?
[21:45:38] * Marzo shoots Wizardrydragon with a bazooka
[21:45:51] <wizardrydragon> Thats on Jeffs todo list so dont worry about it :P
[21:45:59] <Marzo> If you check the 'services' code, you will see it
[21:46:51] <Marzo> More specifically, src/misc/services.uc, function 'serviceMultipleSpellHealing'
[21:46:52] <wizardrydragon> Do I really want to look? lol
[21:47:41] <Marzo> Basically, if I want to use static vars, I have to make local, non-static, copies of them to use
[21:48:04] <Marzo> I think it is an issue with statics and intrinsics
[21:48:11] <wizardrydragon> Oh i remember having problem with that as well
[21:48:19] <wizardrydragon> I jsut gave up and used npc props
[21:48:20] <wizardrydragon> lol
[21:49:17] <Marzo> (but I think that there are more problems than just that; I am unsure)
[21:49:53] <wizardrydragon> (of course there are more problems than that Marzo, you silly person, it's exult!)
[21:50:02] <Marzo> lol
[21:50:41] <Marzo> By the way: something which may interest you is that it is now rather easy to increase the limit of shapes from shapes.vga
[21:51:02] <wizardrydragon> Thought: are the number of frames limited?
[21:51:09] <Marzo> I haven't increased it yet, but if you need it, I am just letting you know it can be done
[21:51:16] <wizardrydragon> Okay.
[21:51:21] <Marzo> I think they are limited to 255
[21:51:23] * wizardrydragon points up at his question
[21:51:28] <wizardrydragon> Ah. Hmm
[21:51:29] <Marzo> Will have to check
[21:54:20] <Marzo> Actors are limited to 63 frames; the last 32 are generated from the first 32
[21:54:27] <Marzo> Er *64* frames
[21:55:52] <wizardrydragon> I was thinking, 63? lol
[21:55:52] <Marzo> As a rule of thumb, more than 32 frames *might* cause problems because they are used for rotated versions of a shape
[21:58:38] <wizardrydragon> hmm
[21:59:03] <wizardrydragon> might be handy to fx it so theyh dont have to be rotations in 32+
[21:59:23] <Marzo> Exult uses a byte to save the frame, so you can have frames up to 255
[21:59:47] <wizardrydragon> [17:55] Marzo: As a rule of thumb, more than 32 frames *might* cause problems because they are used for rotated versions of a shape
[21:59:49] <Marzo> (like I said, there *might* be problems)
[22:00:03] <Marzo> I still have to check it
[22:00:29] <wizardrydragon> Okay
[22:02:42] <Marzo> OK, it apparently does not have problems
[22:03:08] <Marzo> It rotates the shape only if its number of frames is <=32
[22:03:24] <wizardrydragon> ok
[22:12:47] --- Marzo is now known as Marzo_away
[22:35:50] --> Crysta has joined #TFL
[22:36:01] <Crysta> hi
[22:36:15] <Marzo_away> Hi
[22:36:21] --- Marzo_away is now known as Marzo
[22:36:42] <Crysta> im gonna take a random guess and say things are quiet here
[22:36:59] <Marzo> They have been for a while
[22:37:11] <Crysta> where si everybody
[22:37:12] <Crysta> ;p;
[22:37:14] <Marzo> But there was plenty of activity
[22:37:15] <Crysta> *lol
[22:37:32] <Marzo> lol
[22:37:44] <Marzo> brb
[22:37:52] <Crysta> k
[22:47:56] --- Marzo is now known as Marzo_away
[22:58:31] --- Marzo_away is now known as Marzo
[22:58:32] <Marzo> back
[22:58:36] <Crysta> wb
[22:59:16] <wizardrydragon> wb
[23:03:17] <Marzo> I take it that everything is still slow here? :-)
[23:03:28] <Crysta> yup
[23:05:05] <wizardrydragon> actually for how things go around here it's pretty steady :)
[23:05:17] <Crysta> lol
[23:07:12] <wizardrydragon> hehe
[23:08:01] --- Vistaer-Sleep is now known as Vistaer
[23:08:45] <wizardrydragon> hi vis
[23:09:01] <Marzo> Hi Vistaer
[23:10:28] <Crysta> yo
[23:40:26] <Vistaer> Sup thou
[23:40:35] <Crysta> playing random games
[23:40:36] <Crysta> :P
[23:41:21] <Vistaer> im off to play battlefield 2 :P
[23:41:30] --- Vistaer is now known as Vistaer-BF2
[23:55:45] <wizardrydragon> Im off to destroy Britannia.
[23:56:29] <Marzo> Casting armageddon again? Or is it a certain necklace this time?
[23:57:17] <wizardrydragon> No! A fork!
[23:57:29] <wizardrydragon> Why do you think LB is so touchy about his silverware? :P
[23:57:35] <Marzo> lol