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

Archive Today Yesterday Tomorrow
Nuvie homepage

[00:05:10] --> wizardrydragon has joined #nuvie
[00:05:15] <wizardrydragon> hi
[00:33:43] <SB-X> hey wb
[00:34:06] <SB-X> i was going to tell you how to write a usecode function but you werent in the channel :p
[00:39:06] <SB-X> Basically it follows the prototype "bool object_type(Obj *obj, UseCodeEvent ev);" you put that in the class header U6UseCode.h and the function definition in U6UseCode.cpp. In the definition you test for the event that you want to write code for such as USE (called when an object of that type is used) with an "if(ev == USECODE_EVENT_USE)) { }" and put the code in the 'if' block. Somewhere you need to return true or false.
[00:40:13] <SB-X> The returned value depends on the event, and the allowed returns are listed with the events at the top of usecode/UseCode.h.
[00:41:49] <wizardrydragon> Thank you
[00:41:57] <SB-X> Finally, you must register the function in U6ObjectTypes.h. See the list there for the format.
[00:42:06] <SB-X> You're welcome.
[00:42:19] <wizardrydragon> Sorry for the absence there earlier today, my client's been acting up today.
[00:42:30] <SB-X> No problem.
[00:43:10] <wizardrydragon> Is the usecode list on the Nuvie site complete, or are there other functions not yet implemented?
[00:43:17] <SB-X> i havnt looked at it
[00:43:25] <SB-X> so I wouldnt know
[00:43:42] <SB-X> it's certainly possibly there's usecode we missed, but it's probably not important then
[00:44:04] <SB-X> you can play U6 and if you see anything missing (objects not working) then you know what to add
[00:44:11] <wizardrydragon> http://nuvie.sourceforge.net/index.php?progress=u6spells Seems I could probably try to put a sizable dent in that list :)
[00:45:42] <SB-X> we are changing that over to the new script format first, and still deciding on the calling conventions, so you'd be better off waiting for the magic engine to stabilize before trying to add new scripts
[00:46:12] <wizardrydragon> Ah, haven't even got the foundation in yet? :)
[00:46:14] <SB-X> we will change usecode over eventually, but we'll be using the functions in U6UseCode for a while
[00:46:18] <SB-X> just barely
[00:46:23] <wizardrydragon> Hehe
[00:46:42] <wizardrydragon> I just figured I'm reworking the spell system for TFL, why not work on the one for Nuvie too :)
[00:47:27] <SB-X> they're going to be vastly different, with the possible exception that we both want magic and usecode to use the same scripting engine
[00:47:54] <SB-X> if I understood correctly that you're moving magic to usecode
[00:49:18] <wizardrydragon> Magic has always been in usecode for Ultima VII; however it was never docompiled and Exult's interpretation of it's flawed because it doesn't understand some of the intrinsics the spell uses, so our first effort was to rewrite all the spells in UCC, overriding the original functions to get rid of the bad calls and also fixing a few bugs from the original.
[00:49:42] <SB-X> really? i always thought U7 magic was hardcoded, which was a pain for modders that wanted to add new spells
[00:49:56] <wizardrydragon> Ah, the limits for spells were hardcoded
[00:50:11] <wizardrydragon> And the limits were the number of spells in the game, so ... ;)
[00:50:24] <SB-X> then that similiarity between U7/Exult and Nuvie already exists :)
[00:50:29] <wizardrydragon> That was one of the first things we did away with, for no particular reason.
[00:50:39] <SB-X> just change UCC to Lua
[00:50:49] <wizardrydragon> hehe
[00:50:59] <SB-X> sounds like you had good reason to get rid of the limits
[00:51:10] <wizardrydragon> Im considering redoing the magic system so monsters can use it as well
[00:51:23] <wizardrydragon> Instead of those radiculous "magic weapons" :P
[00:51:24] <SB-X> ...if people wanted to add new spells
[00:51:31] <SB-X> whats the difference?
[00:51:56] <SB-X> oh, because its harder to add magic weapons?
[00:52:01] <wizardrydragon> No;
[00:52:09] <wizardrydragon> Then theyre bound by mana just like the player is :P
[00:52:27] <SB-X> ah k
[00:52:34] <SB-X> you mentioned that yesterday
[00:52:36] <wizardrydragon> In Exult right now a mad wizard can hurl deathbolts till the cows come home
[00:52:43] <SB-X> the monsters were sometimes limited by their MP in U6
[00:53:12] <SB-X> I remember seeing spurious "Not enough MP!" messages printed in combat, when my party wasnt doing anything
[00:53:12] <wizardrydragon> then the monsters that have innate abilities will simply have a "spell" with 0 mana cost :P
[00:53:19] <wizardrydragon> Hehe
[00:53:23] <wizardrydragon> I recall that
[00:54:05] <SB-X> do you need to remove the current monster magic system completely? you can just add the ability for them to use spells
[00:54:16] <wizardrydragon> They dont have a masgic system
[00:54:24] <wizardrydragon> they just have "weapons" that duplicate spell effects
[00:54:49] <SB-X> thats what I meant
[00:54:54] <SB-X> they can have both
[00:54:57] <wizardrydragon> In an interesting bug, you could get such items if you used Vibrate in Serpent Isle :)
[00:56:13] <SB-X> I recall that
[00:56:24] <wizardrydragon> :)
[00:56:32] <wizardrydragon> As fun as that bug is, Id rather avoid it
[00:56:50] <SB-X> ah k
[00:56:53] <wizardrydragon> Also, it would let the NPCs use the new spells in any event :)
[00:56:54] <servus> I always thought it was such a blunder to put the vibrate spell in SI... it felt like a debug tool.
[00:57:02] <SB-X> for TFL
[00:57:04] <wizardrydragon> It probably was.
[00:57:08] <wizardrydragon> And yes.
[00:57:29] <wizardrydragon> It probably wasnt intended to be left in the form it was; you can probably blame SI being rushed for that.
[00:57:30] <SB-X> you can vibrate pieces of meat from animals
[00:57:50] <SB-X> which is odd
[00:57:56] <SB-X> they dont complain
[00:58:27] <wizardrydragon> And don't worry, Hacki's pointed out all the radiculous items you can vibrate from thingss ;)
[00:58:31] <SB-X> you can use vibrate to get the philanderer's friend from torrissio if you accidentally gave it to him
[00:58:53] <wizardrydragon> I should brush up on SI
[00:59:01] <SB-X> you can also just kill him and take it back
[00:59:13] <SB-X> he's got a spell weapon too
[00:59:28] <wizardrydragon> one of the many goals of TFL is to make BG - TFL - and SI into one single unit that you can play through straight without leaving the game, save for cutscenes
[00:59:57] <SB-X> what about your stats? after BG they'd be inflated for SI
[01:01:32] <SB-X> you might as well just start a game of SI right after playing BG :)
[01:01:45] <SB-X> i'd rather see SI's plot restored
[01:01:48] <wizardrydragon> In the Ultima canon, you are supposed to get weaker everytime hyou travel between worlds, you ghet weaker, I'm gonna model it
[01:01:55] <servus> You can vibrate your own Usecode Box out of your backpack, IIRC, SB-X
[01:02:04] <wizardrydragon> servus: that is correct.
[01:02:13] <SB-X> That's awesome, servus.
[01:02:19] <SB-X> That would also break things.
[01:02:19] <servus> It's shiny!
[01:02:23] <SB-X> hehe
[01:02:59] <SB-X> can you edit the usecode box in the game?
[01:03:08] <servus> I don't recall if you can open it
[01:03:18] <wizardrydragon> You can't in Exult I dont believe
[01:03:20] <servus> You should just scrap Nuvie and made a script to convert all of the U6 conversations to the U7 engine : o)
[01:03:44] <SB-X> ok
[01:04:03] <SB-X> ...wait a minute!
[01:04:08] <SB-X> no
[01:04:10] <SB-X> :p
[01:04:25] <wizardrydragon> :D
[01:04:29] <SB-X> there is that guy making a U6 mod for U7 though
[01:04:34] <wizardrydragon> Yeah.
[01:04:37] <SB-X> im interesting in seeing that completed
[01:04:39] <wizardrydragon> It looks good so far
[01:04:44] <servus> Has he completed the map?
[01:05:11] <servus> Caves are gonna require changes in the engine
[01:05:23] <wizardrydragon> How so?
[01:05:37] <wizardrydragon> Seems to me all they need are seperate maps :P
[01:06:04] <servus> Because when you're inside an Ultima VII cave, you can see outside. You could just make a "Black spot on a mountain wall" shape and put a teleporter egg there.
[01:06:21] <servus> Bbl.
[01:09:27] <wizardrydragon> lol
[01:09:28] <wizardrydragon> 10[21:08] Marzo: 01From now one, no more than 1000 items in my todo list; that is enough :-)
[01:11:03] <wizardrydragon> :)
[01:11:23] <SB-X> heh, at first I read that as 100 and thought that was a lot
[01:11:49] <wizardrydragon> lol
[01:11:58] <wizardrydragon> 04[21:11] wizardrydragon: 01Im writing up a list of things todo before an actual relase of TFL, and its depressing me
[01:11:58] <wizardrydragon> 10[21:11] Crysta: 01lol
[01:35:00] <-- SB-X has left IRC ("BRB")
[01:38:06] <luteijn> when we migrate usecode from hardcoded to lua, probably we can start with just calling the existing hardcoded functions..
[01:39:28] --> SB-X has joined #nuvie
[01:40:04] <luteijn> wizardrydragon: the 'TODO' list is out of date, but if you grep the source for 'TODO' and 'FIXME' you will find plenty of things that need doing/fixing.
[01:40:11] <luteijn> SB-X: wb
[01:40:22] <wizardrydragon> lol
[01:40:37] <wizardrydragon> hellow luteijn
[01:40:40] <wizardrydragon> *hello
[01:44:48] <luteijn> SB-X: did you commit the clean-up to the recent changes that we went over yesterday?
[01:46:22] <SB-X> ty
[01:46:40] <SB-X> no I had to sleep, i cant do it now but will later today
[01:47:15] <wizardrydragon> Sleep?
[01:47:17] <SB-X> there was very little cleanup, most of what i'll be committing is tangle vine code
[01:47:24] <wizardrydragon> What is this "sleep" you speak of?
[01:47:31] <SB-X> worktype 0x91
[01:47:40] <wizardrydragon> Ah
[01:47:42] <luteijn> in zu
[01:47:51] <SB-X> zu ylem
[01:48:42] <wizardrydragon> hehe
[02:39:52] <wizardrydragon> regarding bool Actor::is_passable() -- when are actors passable?
[02:40:45] <SB-X> you can walk over mice
[02:41:11] <wizardrydragon> Ah - are monsters counted as actors, then?
[02:41:34] <SB-X> yes, monsters are temporary actors
[02:41:48] <SB-X> there is one mouse who isn't a temp. actor
[02:42:14] <wizardrydragon> Ah
[02:42:16] <wizardrydragon> that makes sense
[02:42:27] <wizardrydragon> Sherry :)
[02:44:43] <wizardrydragon> Thought: perhaps combat code would be best seperated from Actor.cpp?
[02:45:38] <wizardrydragon> also:
[02:45:38] <wizardrydragon> bool Actor::can_carry_object(uint16 obj_n, uint32 qty)
[02:45:38] <wizardrydragon> {
[02:45:38] <wizardrydragon> float obj_weight = obj_manager->get_obj_weight(obj_n);
[02:45:38] <wizardrydragon> if(qty) obj_weight *= qty;
[02:45:39] <wizardrydragon> return(can_carry_weight(obj_weight));
[02:45:41] <wizardrydragon> }
[02:45:45] <wizardrydragon> shouldnt you check available inv spaces as well?
[02:47:16] <wizardrydragon> or is that done elsewhere
[02:51:41] <SB-X> there is no inventory item limit
[02:51:48] <luteijn> the inv is not limited in space
[02:51:54] <luteijn> just in weight.
[02:52:04] <wizardrydragon> ah
[02:52:09] <wizardrydragon> I thought it was in U6?
[02:52:09] <SB-X> about combat, I already have a prototype combat class that will do most of the work
[02:52:11] <wizardrydragon> Limited that is
[02:52:20] <wizardrydragon> Perhaps I remember incorrectly
[02:52:37] <luteijn> one think that we probably need to check is if things 'fit' in a container, when moving/getting them into one.
[02:52:42] <SB-X> in U6 you can put anything in a bag
[02:52:48] <wizardrydragon> indeed
[02:52:57] <wizardrydragon> In u7, they had "volume"
[02:53:10] <wizardrydragon> so yhou couldn't put, sayh, a bed in a pouch :)
[02:53:15] <luteijn> I have a vague memroy that not everyhting fits in though, and ther is a gamestring that says something alon those lines. maybe it's just the balloon
[02:53:23] <wizardrydragon> lol
[02:53:30] <wizardrydragon> possiblhy
[02:53:53] <SB-X> there is a string about something not going into a container
[02:54:02] <luteijn> luteijn@dollar:~/devel/nuvie/live/docs/ultima6$ grep fit gamestrings.txt
[02:54:04] <SB-X> and "How can a bag go into itself?!"
[02:54:05] <luteijn> It's too big to fit inside a container.
[02:54:14] <wizardrydragon> lol
[02:54:23] <SB-X> yep
[02:54:27] <SB-X> you think it's for the balloon?
[02:54:44] <luteijn> when you try to link a bag to itself; but 'move' isn't working on equipment yet anyway.
[02:55:06] <SB-X> i mean the one you just found
[02:55:51] <luteijn> it could also be for things with unit weight over x where x is somewhere around 200 deciStones?
[02:56:14] <luteijn> org the famous 255 deciStones objects that you can move, but not get.
[02:56:32] <luteijn> i.e. move-harpsichord into bag It's too big to fit inside a container.
[02:56:33] <SB-X> i dont think so, because you cant get them anyway
[02:57:14] <luteijn> you could move it from the map into an open box on the map? Experiment time... (can't try myself at the moment)
[02:57:27] <SB-X> ok I'll try it
[02:57:57] <SB-X> dont forget "Only spells can go into the spellbook!" and "Moonstones cannot be removed from the Vortex Cube."
[02:58:20] <wizardrydragon> does the vortex cube work right now?
[02:58:32] <SB-X> it does nothing
[02:58:35] <luteijn> and "Spells are not suppose to be taken out from the Spellbook."
[02:58:45] <SB-X> oh wait, it prints a funny message
[02:58:51] <SB-X> luteijn: yeah i think i got those reversed :p
[02:58:55] <luteijn> isn't ther something like 'you would have gotten the outtro now, if we'd implemented it"?
[02:59:02] <SB-X> yes
[02:59:23] <wizardrydragon> lol
[02:59:29] <luteijn> the spell can't go out message is a 'shouldn't happen as you can't look insde the spellbook anyway. but I guess they were paranoid.
[02:59:49] <SB-X> you can look into the cube though
[02:59:56] <wizardrydragon> hehe
[03:00:11] <SB-X> and remove the moonstones
[03:00:31] <SB-X> you can use the cube as a container for them even when you're using them
[03:00:42] <wizardrydragon> hehehehe
[03:00:57] <wizardrydragon> So is it just a normal container right nosw, or ... ?
[03:01:21] <luteijn> well the orignal allowed you to look in the cube too..
[03:01:23] <SB-X> yeah, its pretty much a normal container in u6 too... with usecode for using it
[03:01:38] <luteijn> and a only moonstones can go in message.
[03:01:57] <wizardrydragon> I wouldnt know, I onlhy ever played U6 up to the Codex
[03:03:27] <luteijn> you got stuck at that point?
[03:03:31] <wizardrydragon> yeah
[03:03:34] <SB-X> thats the end of the game
[03:03:43] <luteijn> almost
[03:03:54] <SB-X> well, not the first time you reach there :)
[03:04:05] <wizardrydragon> Well I only was there once
[03:04:11] <luteijn> the codex explains how to return it to the vortex, but it's still possible to get stuck then becuase of inventory bugs.
[03:04:21] <wizardrydragon> and got told off since i wasnt on a sacred quest
[03:04:27] <wizardrydragon> and couldnt figure out how to trigger one
[03:04:32] <wizardrydragon> and gave up :P
[03:04:42] <luteijn> then you didn't really get to the codex..
[03:04:45] <SB-X> luteijn: Move-clock To North. Blocked
[03:04:53] <SB-X> (north of the clock is an open crate)
[03:04:54] <luteijn> anyway, there's at least two ways past the barrier.
[03:05:02] <wizardrydragon> well the Ilse of the Avatar, more specifically
[03:05:13] <wizardrydragon> I jsut dall it the codexs since thats the only thing of interest there
[03:05:16] <wizardrydragon> *call
[03:05:24] <wizardrydragon> to me, anyways :P
[03:05:33] <luteijn> and a shrine, and the entrance to Hythloth
[03:05:51] <wizardrydragon> Hythloth was so confusing in @_@
[03:05:55] <wizardrydragon> *nix the in
[03:06:19] <luteijn> but what triggered you to go to the isle of the avatar in the first place?
[03:07:03] <wizardrydragon> Well the codex has always been important in ultima so I figured it was a good place to go since things had hit the fan :P
[03:07:17] <wizardrydragon> if you mean what got me there, that was a boat
[03:08:06] <luteijn> ok but since you couldn't get to the codex, you just gave up on the game? why not see if you can solve the 'issues' without it?
[03:09:03] <luteijn> (always interesting to see how people go through a game like this where you have a lot of options)
[03:09:24] <wizardrydragon> Well I tried for a good week to trigger a sacred quest, which if I remember right means going to the shrine nd meditating, and tried some other things, and when I coulsdnt think of things to try anymore, I went on a gargoyle killing spree until the homicidal rage wore off :)
[03:09:47] <SB-X> luteijn: I spammed a clock and open crate in the avatar's inventory and was able to move the clock into the crate.
[03:11:00] <luteijn> SB-X: so that's not what triggers that message. tried with a balloon?
[03:11:12] <SB-X> nope
[03:11:51] <SB-X> wizardrydragon: had you freed all the shrines?
[03:11:52] <luteijn> wizardrydragon: so you didn't follow up on Geoffrey and Nystul's hints at all?
[03:12:34] <wizardrydragon> SB-X: I couldn't seem to get the Honesty shrine "free"
[03:13:00] <wizardrydragon> no matter what I did the gargoyles would respawn.
[03:13:09] <SB-X> but you got the others freed?
[03:13:12] <wizardrydragon> yes.
[03:13:27] <luteijn> they're all freed the same way aren't they? so you didn't find the rune of honesty?
[03:13:29] <SB-X> could you talk to the shrine?
[03:13:44] <wizardrydragon> I found it, that's what confused me.
[03:15:11] <luteijn> so you used the rune, spoke the mantra, and the purple forcefield disappeared, so you could retrieve the moonstone?
[03:15:43] <luteijn> (side note, did Use-Rune break the egg at the shrine too?)
[03:16:04] <wizardrydragon> yes yes yes ansd yes, but i couldnt talk to the shrine and the gargoyles respawned
[03:16:23] <wizardrydragon> something probably didnt get triggered somewhere
[03:16:44] <SB-X> hmm, i wonder if something needs to be triggered to allow talking to shrines
[03:17:03] <SB-X> in nuvie we allow it at any time, but the moonstone is on top of the shrine so you normally cant target the shrine to talk to it
[03:17:09] <luteijn> well, if you got the moonstone you wouldn't really need to talk to the shrine anyway..
[03:17:10] <SB-X> allow talking to the shrines*
[03:17:36] <SB-X> but if he talked to the shrine that tells me he definately freed it :)
[03:17:45] <SB-X> getting the moonstone works too though
[03:18:04] <SB-X> and that's all you have to do to continue the quest
[03:18:06] <luteijn> try editing a savegame to remove the stone and field, and see if that makes it possible to talk to the shrine in original?
[03:18:09] <wizardrydragon> why would the gargs still be spawning then tho
[03:18:30] <luteijn> well it sucks if you can't level at honesty...
[03:18:53] <SB-X> im not experienced in editing objblks... maybe with pu6e
[03:19:06] <luteijn> well probably their egg was still active. that's what triggered my side note. because are we doing that properly with nuvie's runes?
[03:19:19] <SB-X> yes
[03:19:23] <wizardrydragon> I wouldnt know ... heh
[03:20:00] <SB-X> I'm pretty sure it doesn't matter if the gargoyles are still there or not, as long as you got the moonstone you can complete the game.
[03:20:09] <SB-X> usually in an RPG when you don't know where to go, you talk to everyone again :)
[03:20:19] <wizardrydragon> lol
[03:20:34] <wizardrydragon> well im lazy :P
[03:20:53] <luteijn> did you follow up on Nystul's hint to talk to mariah and show here the book of prophesy?
[03:20:57] <SB-X> maybe you forgot to show nystul the tome iolo stole, and never went to the lycaeum
[03:21:19] <wizardrydragon> no i did
[03:21:34] <wizardrydragon> I remember wondering why mariah was so different :P
[03:22:17] <luteijn> ok, mariah will ahve asked you to find the larger, missing piece of the silver tablet. Did you find that?
[03:23:02] <wizardrydragon> no.
[03:23:21] <SB-X> i forgot some of the U6 quest too :)
[03:25:21] <luteijn> well, it's nt possible to solve the conflict just with fighting gargoyles, so you have to pursue the 'diplomatic' way too. You need to find the rest of the silver tablet.
[03:25:36] <wizardrydragon> aww but I hate diplomacy
[03:25:43] <wizardrydragon> unless its diplomacy at swordpoint!
[03:25:58] <luteijn> well it sort of is, but you're not the one holding the sword.
[03:26:07] <luteijn> or boomerang
[03:26:23] <SB-X> or explosion spell
[03:26:49] <wizardrydragon> But Im the one with the Armageddon spell from the wisps!
[03:27:48] <luteijn> in U6 combat is a means, not an end...
[03:28:04] <servus> Vas Kal Corp.
[03:28:25] <luteijn> you wont finsih the game without a fight, but fighting is not sufficient..
[03:28:41] <wizardrydragon> Im a very simple man: do what I want or the world goes poof :)
[03:33:52] * wizardrydragon gesticulates feverently to illustrate his point.
[03:35:10] <SB-X> hmm
[03:35:27] <SB-X> one could also just wait out the gargoyles until their world collapses into the void
[03:35:42] * wizardrydragon was hoping that would have happened.
[03:37:38] <wizardrydragon> SB-X, maybe when Nuvie works fully, you/they/we/I could consider adding such altenate endings :)
[03:39:38] <SB-X> wizardrydragon, i'll assign that to you
[03:40:24] <wizardrydragon> sweet
[03:40:40] <wizardrydragon> I happen to have an extensive knowledge of bloodbath situations :D
[03:40:51] <SB-X> I saw the screenshots.
[03:40:54] <wizardrydragon> lol
[03:41:02] <wizardrydragon> What, the guards one?
[03:41:09] <SB-X> yes
[03:41:34] <wizardrydragon> That was when i was fixing a bug in the karma system when yhou wouldnt lose karma properly for killing friendly NPCs
[03:41:44] <wizardrydragon> I enjoy my playtesting :)
[03:42:42] <SB-X> wasnt there one with gargoyles too?
[03:43:07] <wizardrydragon> no
[03:43:12] <wizardrydragon> there was one swith demons though
[03:43:32] <wizardrydragon> tsk tsk, being an ultima 6 player hyou should know better ;)
[03:44:55] <SB-X> ?
[03:45:04] <SB-X> oh
[03:45:04] <SB-X> hehe
[03:45:25] <SB-X> in u6 there are demons AND gargoyles
[03:45:28] <wizardrydragon> hehe
[03:45:57] <wizardrydragon> TFL has gargoyles, demons, greater demons, and balrons
[03:46:42] <wizardrydragon> "greater demon" being the purview of certain named demon characters but otherwise unused :P
[03:46:49] <SB-X> what would make me think the screenshot I saw was demons and not gargoyles?
[03:48:02] <wizardrydragon> Well at the time the demon sprite was just the grgoyle sprite with a differrent head, so I dont blame the confusion, but ill still tease you for it :P
[03:48:27] <SB-X> :p
[03:48:33] <SB-X> in u5 they really were all the same enemy
[03:48:46] <wizardrydragon> hehe
[03:48:57] <SB-X> would the demon in the mirror on the isle of fire and the black sword be a "greater demon"?
[03:49:08] <SB-X> i think his name is arcadion
[03:49:18] <wizardrydragon> the mass sleep of balrons is going to make TFL adventurers very frustrated and very dead when they face balrons methinks
[03:49:22] <SB-X> or something similiar
[03:49:35] <wizardrydragon> Naa.
[03:49:59] <wizardrydragon> Though Im sure in his narccasim he'd think he was ;)
[03:50:33] <SB-X> what's a balron?
[03:50:54] <wizardrydragon> big blue demon from U4 that put the whole party to sleep quite frequently
[03:51:03] <SB-X> oh
[03:51:15] <SB-X> i didnt really play u4
[03:51:16] <wizardrydragon> and had an attack value only beat by mystic weapons :P
[03:51:24] <SB-X> ive played less u4 than u8
[03:51:37] <wizardrydragon> lol
[03:51:37] <SB-X> and in u8 i only reached tenebrae and quit playing the game
[03:51:50] <wizardrydragon> you and crysta had similar u8 experiences then :P
[05:28:24] <-- wizardrydragon has left IRC (Read error: 110 (Connection timed out))
[08:37:39] --> exultbot has joined #nuvie
[08:37:39] --- Topic for #nuvie is: Nuvie - New Ultima VI Engine (http://nuvie.sf.net)
[08:37:39] --- Topic for #nuvie set by ChanServ at Sun Jun 25 04:12:02 2006
[08:55:14] --> Yuv422 has joined #nuvie
[08:55:19] <SB-X> hey yuv
[08:55:25] <SB-X> how's it going?
[08:55:38] <Yuv422> hey, that was quick
[08:55:40] <Yuv422> I'm good
[08:55:45] <SB-X> cool
[08:55:46] <Yuv422> how about yourself?
[08:55:52] <SB-X> i just happened to look at the irc window just now :)
[08:55:56] <Yuv422> hehe
[08:55:56] <SB-X> im fine, but tired
[08:56:06] <SB-X> im just now cleaning up tangle vine code so i can commit it
[08:56:07] <Yuv422> I'm going out soon
[08:56:08] <SB-X> then i'll work on event
[08:56:12] <SB-X> ah k
[08:56:25] <Yuv422> but I'll try to make my scripting branch later tonight
[08:56:37] <Yuv422> sounds good
[08:56:53] <SB-X> what about this for a directory structure
[08:56:55] <Yuv422> I've got a get_target function in my script system
[08:57:06] <Yuv422> but it's just a stub until we fix the event system
[08:57:10] <SB-X> heh
[08:57:22] <SB-X> that will happen very soon
[08:57:28] <Yuv422> cool
[08:57:41] <SB-X> under data, "scripts" directory for all usecode
[08:58:03] <wjp> hi
[08:58:11] <Yuv422> hey wjp
[08:58:15] <SB-X> common scripts go in scripts/, gametype-specific go in scripts/<gametype>
[08:58:17] <SB-X> hi wjp
[08:58:28] <SB-X> and magic goes in scripts/<gametype>/magic
[08:58:38] <Yuv422> hehe you read my mind
[08:58:46] <Yuv422> that's exactly how I;ve got it setup
[08:58:59] <Yuv422> I also have 100 spell stub files
[08:59:00] <SB-X> haha, great then
[08:59:15] <SB-X> wow i didnt even know there were 100 spells
[08:59:24] <Yuv422> data/scripts/u6/magic/1st_circle/help.lua
[08:59:33] <Yuv422> hehe whoops
[08:59:36] <Yuv422> I mean 80
[08:59:45] <SB-X> ah
[08:59:57] * servus might have to swoop in and make some spells, if a slow moment comes along : o)
[08:59:59] <wjp> maybe making the circle names more systematic would be good
[09:00:19] <Yuv422> wjp: how so?
[09:00:45] <wjp> instead of 1st_circle, 2nd_circle (I assume) something more regular like maybe circle1, circle2, or c1, c2
[09:00:50] <SB-X> you mean "01"? i figured he was going for readability, but i probably wouldnt have used circle subsections at all :)
[09:00:54] <SB-X> ah k
[09:00:57] <SB-X> subdirectories*
[09:01:12] <Yuv422> I have a magic init script
[09:01:18] <Yuv422> which loads all the sub scripts
[09:01:26] <Yuv422> an example entry looks like this
[09:01:33] <Yuv422> init = nuvie_load("u6/magic/1st_circle/create_food.lua"); init()
[09:01:39] <SB-X> is it better to preload them instead of when they're cast?
[09:01:53] <Yuv422> I was wondering about that myself
[09:02:19] <Yuv422> I'm still not convinced either way
[09:02:29] <SB-X> if there is no benefit, then it would save memory and allow runtime editing if you didn't preload the scripts
[09:02:31] <Yuv422> at the moment they are loaded at startup
[09:02:39] <Yuv422> yeah
[09:02:44] <servus> Are you going to share the VM for all the scripts (or at least all the same spells) or have a VM instance for each/
[09:02:55] <SB-X> at least for usecode and magic I'd like to
[09:03:10] <Yuv422> I thought we'd share
[09:03:11] <SB-X> and want them to follow the same style
[09:03:22] <Yuv422> well at least preload the VM with all the usecode and magic
[09:03:32] <Yuv422> again I'm open to suggestions
[09:03:47] <Yuv422> want me to upload a tar of my current work to the website
[09:03:56] <Yuv422> so you can look it over before I commit it to cvs?
[09:03:57] <SB-X> servus: oh forget what I said I didn't know what you meant at first :p
[09:04:33] <SB-X> whats the script branch for?
[09:05:13] <Yuv422> SB-X: so we can brainstorm ideas before committing them into the main cvs trunk
[09:05:23] <SB-X> why not put it there?
[09:05:28] <Yuv422> I will
[09:05:34] <Yuv422> but i'm going soon
[09:05:48] <SB-X> ok then I can wait till then
[09:05:57] <Yuv422> righto
[09:05:59] <SB-X> until you commit it to cvs
[09:06:08] <Yuv422> ok
[09:11:53] <Yuv422> here's the spell template
[09:11:57] <Yuv422> magic_load({name="", invocation="", reagents=0x0, circle=1, number=1,
[09:11:58] <Yuv422> script= function ()
[09:11:58] <Yuv422> end
[09:11:58] <Yuv422> })
[09:12:40] <Yuv422> here's the locate spell
[09:12:45] <Yuv422> magic_load({name="Locate", invocation="iw", reagents=0x2, circle=4, number=6,
[09:12:45] <Yuv422> script= function ()
[09:12:46] <Yuv422> x,y,z = player_get_location();
[09:12:46] <Yuv422> x,y = math.floor(x / 8), math.floor(y / 8)
[09:12:46] <Yuv422> if x > 38 then x, lon = x - 38, "E" else x, lon = 38 - x, "W" end
[09:12:46] <Yuv422> if y > 45 then y, lat = y - 45, "S" else y, lat = 45 - y, "N" end
[09:12:47] <Yuv422> display("\n"..y.."{"..lat..", "..x.."{"..lon.."\n");
[09:12:49] <Yuv422> end
[09:12:51] <Yuv422> })
[09:13:03] <Yuv422> at the moment I run a script based on its invocation
[09:13:17] <Yuv422> which is a key in a a global spell hashtable
[09:14:27] <SB-X> "print" is shorter than "display" and faster to type :)
[09:15:01] <Yuv422> that wouldn't be a problem to change
[09:15:52] <Yuv422> magic_load() is defined in the magic.lua init script
[09:16:01] <SB-X> i wish if we're using multiple scripts that the main function could be top-level code
[09:16:03] <Yuv422> it loads the spell into the hash table
[09:16:31] <Yuv422> sorry what do you mean by that?
[09:16:48] <SB-X> that certainly makes it easier to call by invocation
[09:16:53] <SB-X> what you have
[09:17:10] <SB-X> i meant at the start of locate.lua is x,y,z = player_get_location
[09:17:29] <Yuv422> ah k
[09:17:38] <SB-X> except for any helper functions
[09:17:58] <SB-X> or at least it has function locate() at the start
[09:18:10] <SB-X> i dont really wish for that im just saying that's what i was thinking you'd use
[09:18:14] <Yuv422> you don't like the anonymous function
[09:18:31] <SB-X> it doesnt matter though
[09:18:35] <SB-X> not really
[09:18:42] <Yuv422> I'm just playing around with ideas at the moment
[09:18:47] <SB-X> i know :)
[09:18:53] <Yuv422> hehe
[09:18:57] <SB-X> maybe you could have a list of those magic_load's and point to function names
[09:19:20] <Yuv422> then they all become global variables
[09:19:22] <SB-X> but then you'd have to import them somehow
[09:19:24] <SB-X> yeah
[09:19:34] <Yuv422> this way it's all in a mini table
[09:19:34] <SB-X> maybe that should be a filename then
[09:19:46] <SB-X> like i suggested script_file be used for in spells.nsl
[09:20:04] <SB-X> convert it to a function at runtime
[09:20:07] <Yuv422> so you'd call magic_load(script, name, invocation, etc)
[09:20:36] <SB-X> im not sure, i need to read more of the lua manual ;)
[09:20:45] <Yuv422> i was thinking of the current template to allow the collection of invocation data along with the script
[09:21:18] <Yuv422> it makes it easier for the loader function to get name, invocation etc from the spell
[09:21:48] <SB-X> i dont see how that changes if you change script from a function to a string
[09:21:52] <Yuv422> I see your point though, it does look a bit messy at the moment
[09:22:18] <SB-X> you're not always using the invocation, sometimes you might want to call a magic script from another script, or in combat so a monster can use a spell as an ability
[09:22:54] <Yuv422> having the spell as a string in a lua file would be a bit inefficient.
[09:23:10] <SB-X> i dont mean the script inline
[09:23:12] <Yuv422> at the moment you can call the spell like this
[09:23:26] <Yuv422> magic_invocations["IW"].script()
[09:23:41] <Yuv422> or if you prefer
[09:23:57] <Yuv422> locate = magic_invocations["IW"].script
[09:24:00] <Yuv422> locate()
[09:24:12] <SB-X> is that from nuvie or from the scripts?
[09:24:18] <Yuv422> scripts
[09:24:52] <Yuv422> the Magic class handles spell invocation in nuvie
[09:26:30] <SB-X> isn't there a way to call another script directly?
[09:26:42] <Yuv422> yeah
[09:26:56] <SB-X> as if you'd ran lua scriptname
[09:26:58] <Yuv422> this system assumes all the scripts are preloaded
[09:27:04] <SB-X> oh
[09:27:19] <Yuv422> I've gotta go
[09:27:28] <Yuv422> cya
[09:27:30] <SB-X> if you're going to preload anyway (havn't seen why yet) you could convert script from scriptfile to script at load
[09:27:31] <SB-X> cya
[09:27:47] <SB-X> load time*
[09:28:07] <Yuv422> yeah
[09:28:14] <Yuv422> cya
[09:28:18] <-- Yuv422 has left IRC ()
[10:20:22] --> Yuv422 has joined #nuvie
[10:20:45] <Yuv422> hehe looks like I'm not going anywhere tonight
[10:22:19] <Yuv422> I left my car boot open.
[10:22:34] <Yuv422> the little light drained my battery
[10:22:42] <Yuv422> stupid car
[10:25:26] <SB-X> ...
[10:25:31] <SB-X> wb
[10:25:35] <SB-X> good move
[10:26:00] <SB-X> heh sorry to hear that though :)
[10:26:43] <SB-X> i havnt seen a car with a light under the hood
[10:27:02] <Yuv422> nah the light was in the boot
[10:27:04] <Yuv422> back
[10:27:08] <SB-X> oh you mean the back
[10:27:23] <Yuv422> trunk
[10:27:26] <Yuv422> ;-)
[10:27:38] <SB-X> yeah slight language difference
[10:27:54] <Yuv422> I must have forgot to shut it when I took my shopping out
[10:28:03] <SB-X> still didnt think that would drain the battery
[10:28:09] <Yuv422> and it sat in my garage chewing my battery
[10:28:18] <Yuv422> it's been on for days
[10:28:19] <SB-X> what are you going to do?
[10:28:21] <SB-X> lol
[10:28:31] <Yuv422> buy a battery trickle charger
[10:28:48] <SB-X> you should check your car a little more often than that ;)
[10:29:06] <Yuv422> hehe yeah it sits there alot
[10:29:07] <Yuv422> :-(
[10:29:10] <SB-X> ok so you dont need a new battery yet
[10:29:14] <Yuv422> I catch the bus to work now
[10:29:26] <SB-X> ah
[10:30:45] <Yuv422> you'd think they would cut the light if they detected that it was left on for an extended period of time
[10:33:20] <Yuv422> well on the up side I can work on nuvie now
[10:33:59] <SB-X> that's the first thing I thought of
[10:34:20] <Yuv422> :-)
[10:37:01] <Yuv422> How does ERIC_SCRIPTING_BRANCH sound?
[10:39:19] <SB-X> that or just SCRIPTING_BRANCH is fine
[10:39:53] <SB-X> im trying to figure out why tangle vines are disappearing (turning into obtype 0)
[10:41:13] <Yuv422> twitching?
[10:41:18] <Yuv422> or set_direction?
[10:41:28] <Yuv422> I think it's good to have a name
[10:41:48] <Yuv422> then we can have different branches for each developer
[10:41:52] <Yuv422> if needed
[10:42:01] <Yuv422> that's probably overkill at the moment though
[10:43:16] <SB-X> (tangle vines) it's not twitching because I removed it's entry from actortypes (and it didnt twitch anyway)
[10:44:17] <SB-X> i never call set_direction for it either
[10:46:06] <Yuv422> it might be called somewhere in Actor
[10:53:38] <SB-X> if i set chuckles to tangle_vine activity he disappears too
[10:54:02] <SB-X> wt_tangle_vine
[11:06:37] <SB-X> Argh, I need some sleep. I'll finish this code and commit to cvs when I get up later.
[11:06:41] <SB-X> cya
[11:11:52] <-- Yuv422 has left IRC (Read error: 110 (Connection timed out))
[11:12:53] --> Yuv422 has joined #nuvie
[11:13:07] <Yuv422> cya
[12:19:24] <-- Kirben has left IRC (Read error: 110 (Connection timed out))
[12:35:32] <-- Yuv422 has left IRC (Read error: 110 (Connection timed out))
[12:37:24] --> Yuv422 has joined #nuvie
[12:46:46] <Yuv422> ok that's all in CVS now
[12:46:55] <Yuv422> in the ERIC_SCRIPTING_BRANCH
[13:58:04] <Yuv422> bed time
[13:58:05] <Yuv422> cya
[13:58:11] <-- Yuv422 has left IRC ()
[16:47:46] --> wizardrydragon has joined #nuvie
[17:38:03] <-- wizardrydragon has left IRC (Read error: 110 (Connection timed out))
[19:00:42] --> wizardrydragon has joined #nuvie
[20:16:28] <-- wizardrydragon has left #nuvie ()
[21:09:24] --> wizardrydragon has joined #nuvie
[21:56:39] --> Zerothis has joined #nuvie
[22:07:08] --> Kirben has joined #nuvie
[22:48:41] <-- ChanServ has left IRC (leguin.freenode.net irc.freenode.net)
[22:52:04] --> ChanServ has joined #nuvie