#gemrb@irc.freenode.net logs for 6 Nov 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:38:01] <-- Bo_Thomsen has left IRC (Quit: Leaving.)
[00:52:27] <-- _pickle has left IRC (Remote host closed the connection)
[01:18:22] --> wct has joined #GemRb
[01:18:47] <-- wct has left IRC (Client Quit)
[01:34:18] <-- edheldil_ has left IRC (Ping timeout: 245 seconds)
[01:57:02] --> edheldil_ has joined #GemRb
[02:13:19] <-- edheldil_ has left IRC (Ping timeout: 250 seconds)
[02:13:53] --> bobvonholle has joined #GemRb
[02:19:13] <bobvonholle> So... what's the process for submitting patches?
[02:34:08] <Lightkey> the sourceforge patch tracker maybe http://sourceforge.net/tracker/?func=add&group_id=10122&atid=310122
[02:34:16] <Lightkey> you are not using github or similar?
[02:34:37] <Lightkey> tomprince? *nudge* *nudge*
[02:36:09] <Lightkey> everybody else is on europe time, better ask at least four hours earlier ;-)
[02:39:37] <Lightkey> I see you found OpenHatch..
[02:56:53] --> pupnik has joined #GemRb
[03:01:05] <-- pupnik_ has left IRC (Ping timeout: 276 seconds)
[03:02:25] <bobvonholle> Right, thanks
[03:12:34] <pupnik> gemrb is really amazing
[03:14:16] <bobvonholle> No arguments here.
[03:15:22] <pupnik> i think you understand what i mean
[03:15:45] <pupnik> these people are just doing amazing work... i try to follow them, and I can't
[03:15:52] <pupnik> those are great people
[03:16:21] <bobvonholle> the code.. has some cruft, but it's not that bad.
[03:16:33] <bobvonholle> so far.. I've just encountered edge case bugs
[03:17:22] <bobvonholle> works quite well under FreeBSD AMD64, which is more than I'll say for Wine
[03:19:24] <bobvonholle> but I like being able to play Baldur's Gate / Shadows of Amn again.
[03:19:38] <bobvonholle> and PS:T (w/o digging up a pentium 2)
[03:19:51] <pupnik> if you can do anything, please do it
[03:22:44] <bobvonholle> not sure how much I'll do - just the things that bug me.
[03:32:54] <-- Maighstir has left IRC (Quit: ~ Trillian Astra - www.trillian.im ~)
[04:36:31] <tomprince> bobvonholle: There isn't a process. The tracker works, as does a post on the gibberlings forum. Or just put it somewhere on line (like github) and mention it here.
[04:36:44] --> _pickle has joined #GemRb
[04:37:36] <tomprince> Most discussion to gemrb happens here.
[05:47:30] <-- _pickle has left IRC (Remote host closed the connection)
[08:35:55] --> Bo_Thomsen has joined #GemRb
[08:45:59] --> lynxlynxlynx has joined #GemRb
[08:45:59] --- ChanServ gives channel operator status to lynxlynxlynx
[08:52:29] <lynxlynxlynx> pastebin works too
[08:52:49] <lynxlynxlynx> nice to hear it still works on bsd
[09:04:05] --> Avenger has joined #GemRb
[09:04:09] --- ChanServ gives channel operator status to Avenger
[09:06:23] <Avenger> hi
[09:06:54] <-- pupnik has left IRC (Remote host closed the connection)
[09:07:56] <Avenger> fuzzie are you here?
[09:11:55] <fuzzie> hi
[09:12:09] <fuzzie> haven't had coffee yet
[09:17:32] <fuzzie> in fact there *is* no coffee yet, disaster. have turned on the machine.
[09:21:34] <Avenger> the problem with loadscreen is that EndLoadScreen isn't called
[09:22:10] <fuzzie> well, there are more problems than that :P
[09:23:21] <fuzzie> but i didn't look beyond the theory
[09:25:01] <fuzzie> well, also iwd's version doesn't work at all
[09:25:56] <Avenger> hmm i tested with HoW
[09:26:03] <fuzzie> but that's because it is doing HideGUI/ShowGUI for some reason, and incorrectly at that
[09:26:14] <fuzzie> and i'm not sure why it's doing HideGUI/ShowGUI so i didn't bother fixing it
[09:27:16] <Avenger> hah, and now i added prints everywhere, and it unloads....
[09:27:17] <Avenger> grrr
[09:27:56] <fuzzie> how are the foot sounds? :)
[09:28:32] <Avenger> i noticed this loadscreen mess when tried to test stuff, so i got distracted
[09:29:01] <Avenger> at least the casting sounds are working perfectly :)
[09:29:22] <fuzzie> are you trying it in something non-HoW?
[09:29:29] <Avenger> tob
[09:32:29] <fuzzie> strange then
[09:32:39] <fuzzie> but i still think it's underlying issues with the window management
[09:33:01] <Avenger> we need a handle for loadscreen, i guess
[09:33:12] <Avenger> just like the other gui components
[09:33:21] <Avenger> so the core could turn it off
[09:33:45] <fuzzie> well, as i was saying the other day, tomprince suggested a long time ago a reorganisation of all that code, and we should do that
[09:33:57] <fuzzie> i think it will fix most of the weird disappearing/reappearing gui bugs
[09:34:47] <fuzzie> but we also need to not call loadscreen in the middle of other things
[09:35:02] <fuzzie> and that is the "how does the original engine move actors between areas?" issue
[09:43:32] <-- Avenger has left IRC (Ping timeout: 265 seconds)
[09:43:50] --> SiENcE has joined #GemRb
[09:58:54] --> Avenger has joined #GemRb
[09:58:54] --- ChanServ gives channel operator status to Avenger
[10:13:33] <Avenger> what happened to CloseContainerWindow?
[10:13:57] <Avenger> i get these: [GUIScript]: Missing function:CloseContainerWindow
[10:14:18] <fuzzie> does it break anything?
[10:14:36] <Avenger> i have no idea
[10:14:39] <fuzzie> it got moved
[10:14:44] <Avenger> i just see the core tries to call it in two places
[10:14:47] <fuzzie> but i think the only use in the core should be replaced with a different call anyway
[10:14:54] <Avenger> one of them is probably wrong
[10:15:22] <fuzzie> right, the EF_CLOSECONTAINER one should go away
[10:15:29] <Avenger> totally?
[10:15:53] <fuzzie> but you can make it use CommonWindow instead of GUIWORLD for now, if you want
[10:15:56] <fuzzie> well, it is useless
[10:15:59] <Avenger> that's fine
[10:16:06] <fuzzie> it is there as a "we need to close the container window *right now*" thing
[10:16:08] <Avenger> i mean, if it is useless, then lets cut it out :)
[10:16:18] <fuzzie> but then, if it is an eventflag, it doesn't happen until the end of the frame :)
[10:17:01] <fuzzie> oh right, this is there because of our silly message window hack, and i never managed to make the buffer work
[10:17:12] <Avenger> that was the point, i don't want long chains of python calls going in and out the engine
[10:17:19] <Avenger> that can easily cause infinite loops
[10:17:29] <fuzzie> yeah, i know, recursive python calls would be disaster for modders
[10:18:04] <Avenger> i broke those chains as many places as i could
[10:18:21] <Avenger> but not systematically :)
[10:19:37] <Avenger> ok, so the ef_closecontainer feature should completely go away
[10:20:02] <fuzzie> lynx added the calls just before message output, so the messages wouldn't get lost
[10:20:12] <fuzzie> just as a temporary hack
[10:20:39] <Avenger> hah, so that wasn't even added by me
[10:20:44] <fuzzie> but then once it got changed to EF_CLOSECONTAINER, it doesn't work any more, the messages are lost because the python isn't called until later in the frame
[10:20:58] <Avenger> i was curious why it is after the ef_expansion
[10:21:08] <Avenger> i remebered adding that last
[10:21:09] <fuzzie> but we should really just fix it properly
[10:21:41] <fuzzie> i was trying to do something complicated, but it can be done far more simply by just making something like TextArea::CopyTo
[10:21:43] --> barraAway has joined #GemRb
[10:21:57] <fuzzie> but i have no time for code now, maybe this evening if no-one else does it first
[10:22:29] <fuzzie> -#define EF_MASTERSCRIPT 512 //change masterscript request
[10:22:29] <fuzzie> +#define EF_EXPANSION 512 //upgrade game request
[10:22:33] <fuzzie> ^- Avenger
[10:23:16] <Avenger> yep that was me
[10:24:40] <fuzzie> sure, i just explain :)
[10:25:08] <fuzzie> (that is why ef_expansion is before closecontainer)
[10:28:19] <Avenger> well, this message would close the container if the actor got hit
[10:28:33] <fuzzie> yes
[10:28:42] <fuzzie> which is not so good if you are trying to pull a weapon or something out :)
[10:28:49] <fuzzie> i'm pretty sure it was just a hack for the messages
[10:29:16] <fuzzie> yes
[10:29:22] <fuzzie> commit f02f8596b0a8cda2213410aa4fa720c3a81e8934
[10:29:22] <fuzzie> Author: Jaka Kranjc <lynxlupodian@users.sourceforge.net>
[10:29:26] <fuzzie> close the container window if a party member is getting hurt
[10:29:26] <fuzzie> (hack to not discard the incoming messages)
[10:29:31] <Avenger> so it should go?
[10:30:03] <Avenger> as it is useless now, or i just reroute it to the correct closecontainerwindow
[10:30:41] <fuzzie> we don't seem to use it anywhere else, so i gues it should go
[10:34:06] <CIA-28> GemRB: 03avenger_teambg * rce2a64cafac7 10gemrb/gemrb/GUIScripts/iwd/LoadScreen.py: removed hidegui stuff from HoW loadscreen
[10:34:07] <CIA-28> GemRB: 03avenger_teambg * rcd352ab95168 10gemrb/gemrb/core/ (Interface.cpp Interface.h Scriptable/Actor.cpp): removed a dead end code for closing container window on damage (f02f8596b0a8cda2213410aa4fa720c3a81e8934)
[10:34:41] <Avenger> the HoW loadscreen just needs more love. the .chu needs a new button control to hold the picture
[10:34:44] <Avenger> like in bg2/bg1
[10:36:13] --- barraAway is now known as barra_home
[10:38:22] <fuzzie> ok. both commits look sensible :)
[10:41:05] <CIA-28> GemRB: 03lynxlupodian * r725b46320bf6 10gemrb/gemrb/core/Spell.cpp: effects should be able to affect non living targets: reverted r7193
[10:41:07] <CIA-28> GemRB: 03lynxlupodian * rbc8fe6a68261 10gemrb/gemrb/GUIScripts/bg1/GUIINV.py: bg1: unpause the game when entering the inventory
[10:51:24] <CIA-28> GemRB: 03avenger_teambg * ra6cb742a010d 10gemrb/gemrb/plugins/GUIScript/GUIScript.cpp: more verbose error reporting in SetMOS
[10:51:27] <CIA-28> GemRB: 03avenger_teambg * r570430d35a8f 10gemrb/gemrb/ (GUIScripts/bg1/GUIINV.py core/Spell.cpp): Merge branch 'master' of ssh://gemrb.git.sourceforge.net/gitroot/gemrb/gemrb
[10:54:21] <CIA-28> GemRB: 03avenger_teambg * rb0a8e19d1284 10gemrb/gemrb/ (3 files in 3 dirs): fixed iwd/how loadscreen
[10:54:30] <Avenger> ok, the loadscreen now should look nicer
[10:55:15] <Avenger> i wish someone else learns how to edit .chu files :)
[11:05:33] <fuzzie> well, i fiddled with the bg1 one, once
[11:05:41] <fuzzie> i think the label there is *still* in the wrong place
[11:10:47] <Avenger> which label?
[11:12:18] <Avenger> the text saying loading game ?
[11:12:41] <Avenger> i could move it up by 5 pixels, if that helps
[11:13:11] <Avenger> or move the loadpic down
[11:13:31] <fuzzie> well, i forget which of them is wrong :) i did "move/resize the label on the bg1 load screen a bit" a while ago
[11:13:50] <fuzzie> i should just find the time to do a pixel-by-pixel comparison of the original
[11:13:53] <fuzzie> not important
[11:14:09] <Avenger> yeah, this can wait after v1.0 :)
[11:14:41] <lynxlynxlynx> or for a new volunteer
[11:14:49] <lynxlynxlynx> it's an easy starting task
[11:16:39] --> Maighstir has joined #GemRb
[12:21:17] <Avenger> lynx: there is a file named BGCommon.py, it is empty.
[12:21:26] <Avenger> do you think it will hold something later?
[12:22:33] <lynxlynxlynx> maybe; it did in the past
[12:24:23] --- barra_home is now known as barraAway
[12:28:06] <-- Bo_Thomsen has left IRC (Quit: Leaving.)
[12:37:59] <Avenger> ok fuzzie, you might like this, no more loadscreen drawing in the irenicus cutscene
[12:38:10] <CIA-28> GemRB: 03avenger_teambg * r2a7dad7bb1be 10gemrb/gemrb/ (5 files in 4 dirs):
[12:38:10] <CIA-28> GemRB: don't draw the loadscreen if there is no area change
[12:38:10] <CIA-28> GemRB: fixed loadscreen ranges in HoW
[12:38:13] <fuzzie> ^.^
[12:38:27] <fuzzie> that fixes more than just the irenicus one
[12:38:47] <fuzzie> i assume
[12:39:16] <Avenger> i hope it is now better, if there are still messed up guis then we really need a major rewrite
[12:39:36] <fuzzie> we can delay that until after release
[12:39:43] <fuzzie> or, some time much later
[12:42:50] <Avenger> someone reported that two handed weapon attack anims are ugly
[12:43:46] <fuzzie> ugly in what way?
[12:43:49] <Avenger> actually, it seems not all
[12:43:56] <Avenger> only the stab is missing
[12:44:06] <Avenger> some overhand swing was correctly drawn
[12:44:50] <fuzzie> CharAnimations is just scary
[12:45:13] <Avenger> it is pretty neat, i think, except colors :)
[12:45:17] <lynxlynxlynx> staff stabbing looks fine
[12:45:39] <Avenger> i gave minsc a twohander and let him poke on my tob fighter :) over 100 hp
[12:46:09] <Avenger> hmm, i think i see only 2 weapon moves
[12:46:14] <Avenger> but it might be correct
[12:48:17] <Avenger> ok, the weapon has only two. but according to dltcep it should be overhand and backhand, not thrust
[12:48:31] <Avenger> two handed swords may miss the thrust animation
[12:48:48] <Avenger> so i guess that's the reason
[12:49:14] <Avenger> there is a mismatch of anims
[12:49:30] <fuzzie> how does that work?
[12:50:02] <lynxlynxlynx> found one item undroppability problem - in bg1 edwin's necklace can be removed
[12:50:03] <fuzzie> AddVHR2Suffix just always uses IE_ANI_ATTACK_BACKSLASH for IE_ANI_ATTACK, i see, and so do most other things
[12:50:40] <fuzzie> oh, right, SetStance fiddles with it
[12:50:55] <fuzzie> horrible
[12:51:44] <fuzzie> well, i mean, confusing. i will leave to Avenger.
[12:55:08] <Avenger> lynx i think you can fix that yourself :)
[12:55:47] <Avenger> it involves 2da editing only
[12:56:03] <lynxlynxlynx> oh good
[12:56:25] <Avenger> see if you can remove boo in bg1
[12:56:30] <lynxlynxlynx> nope
[12:56:39] <Avenger> if not, then just change edwin's line to * and 3 (as the first line)
[12:56:54] <Avenger> the first line refers to boo :)
[12:58:44] <Avenger> fuzzie, i think the problem is the Jab/Slash/Back prefixes in CharAnimations
[12:59:15] <Avenger> it looks like the a1/a2/a3 values are permuted compared to ours
[13:00:02] <Avenger> this will require someone with lots of time :(
[13:00:38] <fuzzie> there's really no way to do this from the disasm?
[13:01:05] <fuzzie> i only looked at it for a few minutes in IDA, but all this stuff seemed to be in only 2 different functions
[13:05:09] <Avenger> ok, i did a random guess, and it is much better looking now
[13:05:23] <CIA-28> GemRB: 03avenger_teambg * r5c18d914abc1 10gemrb/gemrb/core/ (CharAnimations.cpp CharAnimations.h):
[13:05:23] <CIA-28> GemRB: permuted weapon animations (now two handed swords look better)
[13:05:23] <CIA-28> GemRB: loading walksnd.2da
[13:05:38] <Avenger> historically, two weapon fights came much later, so this new order makes sense
[13:05:44] <lynxlynxlynx> remember git commit --interactive
[13:05:49] <Avenger> oh
[13:05:54] <Avenger> you are right lynx
[13:06:05] <Avenger> anyway, the walksound shouldn't break anything
[13:06:43] <Avenger> at least you see what i'm up to
[13:07:39] <lynxlynxlynx> famous last words? ;P
[13:08:48] <Avenger> well, it is just the loading part, if this commit causes leaks or crashes, then it is not the prefix change :) if it causes animation mismatches, it is not the walksound loader :)
[13:09:07] <lynxlynxlynx> i'm looking at the casting sounds
[13:09:37] <Avenger> and now i'm going back to windows/IDA and fill in the walksounds
[13:09:41] <-- Avenger has left IRC (Quit: bye!)
[13:09:51] --- barraAway is now known as barra_home
[13:12:46] --> barra_ has joined #GemRb
[13:15:58] <-- barra_home has left IRC (Ping timeout: 245 seconds)
[13:16:37] --> Avenger has joined #GemRb
[13:16:38] --- ChanServ gives channel operator status to Avenger
[13:20:24] <Avenger> fuzzie, i think this is the same travel region bug we talked about: http://forums.gibberlings3.net/index.php?s=&showtopic=21239&view=findpost&p=176600
[13:21:02] <lynxlynxlynx> sure sounds like it
[13:22:44] <lynxlynxlynx> re sounds: it's easy to pass the duration, but i don't see any simple way to tell the driver to just play for that long
[13:23:11] <fuzzie> i have new travel region code in my local tree
[13:23:16] <fuzzie> just not quite working yet
[13:23:20] <Avenger> does the original cut the chant half if the duration is gone?
[13:23:39] <Avenger> i thought it always plays the whole sample
[13:24:00] <lynxlynxlynx> no
[13:24:07] <fuzzie> and yes, there is no way to control sounds once started, that is 'sound handles' on the todo
[13:24:29] <Avenger> yep, i just wanted to say that: if we need to stop sounds, we need the sound handles
[13:25:00] <fuzzie> i think they are easy to do, if you have a case which really needs them
[13:25:04] <fuzzie> but bbl
[13:25:22] <Avenger> not yet, this is just cosmetic
[13:25:36] <lynxlynxlynx> we can already stop them by passing a null resref and marking it as speech
[13:26:06] <lynxlynxlynx> but for that hack we'd need to call it when the effect expires, which we don't detect either
[13:28:50] <CIA-28> GemRB: 03lynxlupodian * rf5b4c55c5a3d 10gemrb/gemrb/override/ (bg1/item_use.2da bg2/item_use.2da): edwin's necklace is not removable
[13:28:51] <Avenger> but there is only one speech 'channel'
[13:28:52] <CIA-28> GemRB: 03lynxlupodian * r0307db752a45 10gemrb/gemrb/ (core/Spell.cpp plugins/FXOpcodes/FXOpcodes.cpp): the casting sound is also duration dependant, so pass it on
[13:29:18] <Avenger> so if two guys cast, they will cut into each other
[13:29:24] <lynxlynxlynx> yeah
[13:29:47] <Avenger> in the original, each effect has its own sound channel, did you know :)
[13:30:12] <Avenger> most of the occupied memory of the effect is the sound object :)
[13:30:49] <Avenger> each effect has a 0x1b4 size, and the sound object is about 100 bytes of that
[13:31:32] <Avenger> it is a total waste of memory, but that's how they did it
[13:33:26] <lynxlynxlynx> heh
[13:35:02] <Avenger> oh, this walksound is more complicated
[13:35:59] <Avenger> there is a random factor to some of them
[13:36:21] --> Bo_Thomsen has joined #GemRb
[14:46:12] <Avenger> hmm, if i'm right, the small spider (0x7f2f) has a weird walk sound
[14:46:47] <Avenger> not spidery at all, it has the same sound as the slayer/ravager types :)
[15:02:22] <CIA-28> GemRB: 03lynxlupodian * rc38c4ca29e0a 10gemrb/gemrb/GUIScripts/bg1/GUICommonWindows.py:
[15:02:22] <CIA-28> GemRB: bg1: synced much of GUICommonWindows with bg2
[15:02:22] <CIA-28> GemRB: globalid update, comments and item abilities
[15:02:23] <CIA-28> GemRB: 03lynxlupodian * r09cea6b23e86 10gemrb/gemrb/GUIScripts/iwd/GUICommonWindows.py:
[15:02:23] <CIA-28> GemRB: iwd: synced much of GUICommonWindows with bg2
[15:02:23] <CIA-28> GemRB: globalid update, comments and item abilities
[15:02:24] <CIA-28> GemRB: 03lynxlupodian * rbfc6f042ee99 10gemrb/gemrb/GUIScripts/pst/GUICommonWindows.py: pst: synced a few irrelevant bits of GUICommonWindows with bg2
[15:02:27] <Avenger> the water weird seems to have no splashy footsteps but like a cyclops
[15:02:27] <CIA-28> GemRB: 03lynxlupodian * r648eafead313 10gemrb/gemrb/GUIScripts/iwd2/GUICommonWindows.py:
[15:02:27] <CIA-28> GemRB: iwd2: synced much of GUICommonWindows with bg2
[15:02:27] <CIA-28> GemRB: globalid update and comments
[15:27:04] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630])
[16:07:45] --> barra__ has joined #GemRb
[16:10:58] <-- barra_ has left IRC (Ping timeout: 245 seconds)
[16:23:14] --> Avenger has joined #GemRb
[16:23:14] --- ChanServ gives channel operator status to Avenger
[16:23:59] <Avenger> fuzzie: terrible news, we convert the searchmap to some internal format, losing information which needs for the walksounds
[16:24:42] <fuzzie> yes
[16:24:58] <fuzzie> some of the entries are wrong anyway
[16:25:31] <fuzzie> but it shouldn't be too hard to adapt it
[16:26:32] <fuzzie> if you get fed up with it, then i can try something
[16:27:00] <fuzzie> but, be careful if you change it, because we had some huge bugs for a while because the internal format was wonky, and this code is performance-sensitive, so it can't be slow
[16:27:07] <Avenger> i will try something, but it can break a lot :)
[16:28:33] <fuzzie> well, most sensible is probably, just some more flags?
[16:28:57] <lynxlynxlynx> release sensitivity
[16:30:02] <Avenger> most likely the searchmap outgrew the one byte per tile size
[16:30:16] <fuzzie> so, how big is a typical searchmap?
[16:31:06] <Avenger> area in pixels (width/16) * (height/12)
[16:32:04] <fuzzie> ok, so that is not small
[16:33:02] <Avenger> i think 5120 is the maximum limit in pixels
[16:33:04] <fuzzie> but making it a 'short' seems fine
[16:33:54] <Avenger> at least for the width
[16:34:03] <Avenger> most likely size is 100k
[16:34:17] <Avenger> if it is a short, then it will be 200k
[16:34:26] <Avenger> not much actually
[16:34:54] <fuzzie> well, it is fastest as an int
[16:35:03] <Avenger> i would create a copy of it in memory
[16:36:08] <fuzzie> *nod*
[16:36:34] <fuzzie> well, i would just make Bitmap a template and then it is trivial to do
[16:37:08] <fuzzie> but that is equivalent to just manually messing with a 'unsigned short *' pointer, which i guess is your plan
[16:37:19] <fuzzie> either way it seems most sensible. dinner cooking time.
[16:39:20] <fuzzie> lynxlynxlynx: i think it might be best to branch at some point, if we're going to release so soon
[16:39:52] <lynxlynxlynx> can be done
[17:03:47] <Avenger> ok, how will i know if an actor's terrain sound is still playing...
[17:04:28] <fuzzie> you can't
[17:04:54] <fuzzie> original engine uses sound handles? or just time?
[17:18:51] --> Taimon has joined #GemRb
[17:26:27] <Avenger> i don't know
[17:26:34] <Avenger> hi taimon
[17:27:40] <Taimon> hi Avenger
[17:27:44] <Lightkey> I for one, welcome our new German overlord
[17:28:28] <Taimon> nah
[17:29:09] <Taimon> i just like puzzles :)
[17:29:15] <Avenger> did fuzzie summon you?
[17:29:20] <Taimon> nope
[17:29:25] <Avenger> i just ran into some question
[17:29:30] <Taimon> shoot
[17:29:40] <Avenger> i just work on walking sounds
[17:29:43] <Taimon> uhh
[17:29:48] <Taimon> saved in anim
[17:29:54] <Taimon> if i remember correctly
[17:30:24] <Avenger> and i need to know when a sound is ended, but that is completely different than our implementation so, well, i guess, i gotta wait till fuzzie fixes ours
[17:30:49] <Taimon> do you work with directsound like the original engine?
[17:30:59] <lynxlynxlynx> no
[17:30:59] <Avenger> no, we use OpenAL
[17:31:14] <Taimon> stupid quest
[17:31:16] <Taimon> ion
[17:31:28] <Taimon> you can't use directsound on *nix :)
[17:31:37] <Avenger> so, i already mapped all the walksounds
[17:31:53] <Avenger> i was even modder friendly, by letting them set up different terrain based soundsets :)
[17:32:21] <Avenger> as far as i see the original is an animation based soundset, with some exceptions where it is terrain based
[17:32:32] <Taimon> the original engine also has multiple terrain_tables, btw
[17:33:01] <Avenger> really? tell me one that is different from * WAL_04 WAL_MT WAL_02 WAL_05 WAL_06 WAL_01 WAL_03 * WAL_02 * WAL_01 * * *
[17:33:09] <Avenger> :)
[17:33:47] <Avenger> i glanced over some of them but didn't find any difference
[17:34:08] <Avenger> hmm, a WAL_04 was missing from the end
[17:36:28] <Taimon> i guess our terminology differs here
[17:37:14] <Avenger> i talk about terrain based soundsets. the above vector is indexed by the seachmap type
[17:37:22] <Taimon> terrain tables are at 0xb54da0
[17:37:24] <Taimon> okay
[17:38:01] <Avenger> this is just walking sounds, not the terraintable thingie
[17:38:30] <Taimon> but back to your problem
[17:38:38] <Taimon> you want to stop the sounds?
[17:38:50] <Avenger> no, i just want to avoid bursts
[17:39:22] <Taimon> from different chars or a single one?
[17:39:36] <Avenger> from a single one, so i should flag it with global id, for example
[17:39:51] <Avenger> or, hmm, dunno how the original works?
[17:40:03] <fuzzie> implementation-wise we have multiple audio backends, but sticking a sound handle into an actor would be trivial, if the engine does it with sound handles
[17:40:03] <Avenger> does it have multiple walk sound channels?
[17:40:13] <Taimon> i guess this is done in the soundmixer
[17:40:40] <Taimon> there is an array at 0x74 with 21 "channels"
[17:40:51] <Taimon> i'm not really sure about that
[17:40:55] <Avenger> 21... hmm
[17:40:57] <Taimon> still researching
[17:41:10] <Avenger> i somehow doubt they would waste more than one for walksounds
[17:41:20] <Avenger> even from multiple actors
[17:41:22] <Taimon> i agree
[17:41:41] <Taimon> i'll try decoding more of the sound stuff later
[17:41:41] <Avenger> fuzzie, so, maybe we just need another flag like the speech flag
[17:41:52] <Avenger> but in this case, the old sound shouldn't go away
[17:41:56] <Avenger> that is easy, hmm?
[17:42:24] <fuzzie> i'm not sure it's correct
[17:42:37] <Avenger> well, it would be better than the current sound bursts :)
[17:42:38] <fuzzie> i'm pretty sure if you take a party walking over some of the more obvious bits (say, metal) then you get multiple footsteps at once
[17:42:51] <Taimon> in the original engine, they can check if the sounds is already playing by checking the directsound buffer status
[17:42:59] <fuzzie> we should just do sound handles
[17:43:12] <Avenger> yep taimon, we don't have such luxuries yet :)
[17:43:21] <Taimon> :/
[17:43:38] <Avenger> our sound driver didn't expose such info yet
[17:44:07] <Avenger> hmm, ok, wanna me commit this?
[17:44:25] <Avenger> it sounds a bit ugly, but not terribly
[17:44:40] <fuzzie> maybe put it on pastebin or something first?
[17:45:02] <Avenger> *cough*
[17:45:09] <Avenger> modified more than one file
[17:45:26] <Avenger> it is like horse galloping
[17:45:31] <fuzzie> i mean, 'git diff > somefile'; i'm not too concerned, but you might incur lynx's wrath when it breaks everything :)
[17:45:53] <Taimon> then git revert quick :)
[17:46:42] <Taimon> don't you have a "experimental" branch? quite useful :)
[17:46:57] <fuzzie> well, trunk is pretty much that
[17:47:18] <Avenger> eep, debug error on quit
[17:47:29] <Avenger> i much have walked out of memory limits :)
[17:47:37] <Taimon> IDA?
[17:47:41] <fuzzie> but i think git mostly confuses Avenger
[17:48:11] <Avenger> no, just msvc6 told me
[17:48:13] <lynxlynxlynx> there, a safe branch for the release
[17:48:32] <fuzzie> i have reached the point where i no longer panic when it gets spectacularly confused and spouts confusing merge errors and explodes, which i am happy with
[17:48:49] <Avenger> :)
[17:48:56] <lynxlynxlynx> nothing git-reflog can't fix :)
[17:49:13] <fuzzie> yes, but it would be nice if i didn't have to resort to git-reflog :P
[17:49:16] <Avenger> it confuses me, but well, most stuff does
[17:49:29] <Avenger> though... i got used to IDA. it is really useful
[17:49:34] <fuzzie> :-)
[17:49:40] <Taimon> save often
[17:49:42] <fuzzie> see, we weren't all crazy!
[17:49:56] <Avenger> i have daily ida db saves :)
[17:50:07] <Avenger> its debugger is crashy
[17:50:14] <Taimon> once it nearly destroyed my idb
[17:50:21] <Taimon> i had to disassemble ida
[17:50:25] <Avenger> lol
[17:50:26] <Taimon> to save the database
[17:51:01] <Taimon> do you have the "graph mode" version?
[17:51:08] <Avenger> sometimes i had to reload the work version too, but it never got broken
[17:51:20] <Avenger> it can draw some charts
[17:51:32] <fuzzie> just the freeware one, though, using wingraph?
[17:51:39] <Avenger> v4.9
[17:51:56] <Taimon> i think starting with 5.2 you can view the function as graph
[17:52:05] <Taimon> quite helpful
[17:52:13] <Avenger> v4.9 can show it too
[17:52:16] <fuzzie> i think the graphing thing was a 5.0 feature
[17:52:22] <Avenger> f12
[17:52:26] <fuzzie> where you can actually modify the disassembly inside the graph
[17:52:27] <Avenger> display flow chart of current function
[17:52:40] <fuzzie> so it can be used as a complete replacement for the normal view
[17:52:44] <Taimon> yes
[17:52:49] <Taimon> that's what i meant
[17:52:50] <Avenger> that is pretty neat
[17:52:58] <Avenger> mine cannot do that, just draws the chart
[17:53:23] <fuzzie> http://www.hex-rays.com/idapro/60/win.gif shows it off quite nicely
[17:53:32] <Taimon> you start recognizing functions just by the layout of the nodes
[17:53:45] <Taimon> pattern matching, ftw :)
[17:53:49] <Avenger> could be useful
[17:54:21] <Avenger> i already recognise action/trigger construction or even icons :)
[17:54:41] <Taimon> ;)
[17:55:17] <Avenger> lynx, is it safe for me to commit as usual?
[17:55:27] <lynxlynxlynx> yes
[17:55:37] <Avenger> ok, brb
[17:55:38] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630])
[17:55:49] <lynxlynxlynx> i'll just cherrypick the safe stuff
[17:55:56] <Taimon> hehe
[17:55:57] <fuzzie> someday, i really must scrape up the money for a license. but i am happy with 4.9 otherwise. it is a pity their decompiler is so expensive, i guess that doesn't help their fight against pirates
[17:56:12] <Taimon> the UI of IDA is horrible
[17:56:39] <Taimon> i learned so much things only by guessing
[17:56:41] <fuzzie> well, i guess that is part of why they rewrote it :)
[17:57:22] <fuzzie> i found in 4.9 that poking around the help was very useful for finding all the stuff which isn't mentioned anywhere else
[17:57:29] <Taimon> yes :)
[17:59:38] <fuzzie> but i don't use it enough to have bothered working out some things
[17:59:47] <fuzzie> like how to modify a structure which is already in use, which 4.9 just seems to refuse to do
[18:00:01] <lynxlynxlynx> bobvonholle: in which game did you have the problem?
[18:00:49] <bobvonholle> with pickpocketing undroppables?
[18:00:51] <bobvonholle> BG1.
[18:01:18] --> Avenger has joined #GemRb
[18:01:18] --- ChanServ gives channel operator status to Avenger
[18:01:18] <bobvonholle> didn't try it in BG2 or PS:T - and I don't have Icewind Dale 1/2 here right now
[18:01:29] <lynxlynxlynx> ok, will check there
[18:01:34] <lynxlynxlynx> i can't still fists in bg2
[18:01:34] <Lightkey> 18 users, weee~
[18:02:19] <lynxlynxlynx> and we treat those flags as opposite and unify them when calculating the weight, so it is odd that it would be needed to check both
[18:02:20] <bobvonholle> was pickpocketing Drizzt, ended up with three fists, a skull, a pair of boots and a helmet I couldn't get rid of.
[18:03:03] <Avenger> meep
[18:03:22] <Avenger> no drop items shouldn't be stealable, i guess
[18:04:04] <Avenger> bobvonholle you talk about bg1 or bg2?
[18:04:09] <Avenger> and which version of gemrb
[18:04:28] <Taimon> bg1
[18:04:47] <Avenger> ah bg1, well, bg1 allows moving of unmovable items, so yeah, this is a recent regression
[18:05:01] <Avenger> steal should check for it
[18:05:02] <fuzzie> i did say :P
[18:05:14] <fuzzie> the code just masks the flag on in all cases now
[18:05:27] <lynxlynxlynx> ok, he provided a patch for that :)
[18:05:55] <Avenger> great ;)
[18:06:00] <bobvonholle> eh - just going through a playthrough of BG1 and enjoying it :P
[18:06:43] <Taimon> i'm tempted to look at gemrb source
[18:06:45] <fuzzie> bg1 is always too frustrating for me to play through in gemrb much :)
[18:07:00] <Taimon> but somehow i fear i won't have much time left for reversing
[18:07:06] <lynxlynxlynx> hehe
[18:07:07] <Taimon> once i start doing that :)
[18:07:15] <fuzzie> yes, it consumes all time available :)
[18:07:42] <Avenger> taimon: i do both
[18:07:46] <Taimon> i know
[18:08:03] <Avenger> we still need a 2da for the fall sounds :)
[18:08:28] <Lightkey> that's autumn to you!
[18:08:53] <CIA-28> GemRB: 03avenger_teambg * r09d471f7502e 10gemrb/gemrb/override/bg2/walksnd.2da: initial bg2 walk sound table
[18:08:54] <CIA-28> GemRB: 03avenger_teambg * r5a6ba85a922b 10gemrb/gemrb/ (8 files in 8 dirs): Merge branch 'master' of ssh://gemrb.git.sourceforge.net/gitroot/gemrb/gemrb
[18:09:04] <Taimon> grep TODO -r gemrb/ | wc -l says 261, that quite good :)
[18:09:11] <Avenger> meh, i always get this...
[18:09:16] <fuzzie> that just means, we don't have any TODOs in the source :)
[18:09:34] <lynxlynxlynx> well, there's 166 FIXMEs over that
[18:09:41] <Avenger> 261 is not much?
[18:09:48] <Taimon> 172 FIXMEs :)
[18:10:08] <Lightkey> "make PST work"
[18:10:29] <bobvonholle> heh
[18:10:30] <Lightkey> one is enough todo for some time
[18:10:31] <Taimon> well for this codesize it's okay
[18:10:44] <fuzzie> but i mean, none of the big architectural issues are marked with TODO
[18:11:47] <lynxlynxlynx> woah, we definitely don't downscale the spawn difficulty enough
[18:11:59] <fuzzie> lynxlynxlynx: in bg2, or bg1?
[18:12:08] <lynxlynxlynx> bg1
[18:12:09] <fuzzie> we don't do the bg1 spawn difficulty right at all
[18:12:15] <fuzzie> i don't think we even try?
[18:12:22] <bobvonholle> just floods the area with enemies
[18:12:23] <lynxlynxlynx> we do, i added some code for it
[18:12:35] <bobvonholle> sorry - for the ambushes
[18:12:46] <lynxlynxlynx> but there's not much lore available about it, so it's a bunch of guesses
[18:12:47] <fuzzie> i thought the code was based on Taimon's bg2 notes
[18:13:18] <Taimon> mhm, i remember some info in the random notes thread
[18:13:49] <fuzzie> but the code in Map::Rest and SpawnCreature is more complicated than i remembered
[18:15:01] <lynxlynxlynx> from what i gather, at least the type of enemies is ok
[18:15:10] <lynxlynxlynx> no more dread wolves in the first outside area :)
[18:15:26] <fuzzie> ok, and that is levelling
[18:15:57] <lynxlynxlynx> yeah, but that's also fishy, because there's too many of the critters spawned
[18:16:24] <lynxlynxlynx> could be data problems, the creature level is not always sane
[18:16:59] <fuzzie> TriggerSpawn seems like it would activate a whole bunch of spawn points at once, though
[18:17:31] <fuzzie> i thought there was some kind of global limit on top, but maybe that's only for rest spawns.
[18:17:36] <fuzzie> too tired to think about this, maybe.
[18:20:18] <lynxlynxlynx> we're definitely missing something, because an original save of a cleared area reenables the spawns
[18:21:11] <fuzzie> well, that is something else
[18:21:23] <fuzzie> we don't do any of the CompressTime or bg1 save/load stuff
[18:22:14] <fuzzie> but this happens on first spawn, i thought
[18:22:39] <Avenger> we need to implement that yeah
[18:22:55] <lynxlynxlynx> bobvonholle: i can't reproduce your problem
[18:23:23] <fuzzie> i thought the problem with the ambush areas was just the appearance schedule, which i thought we fixed
[18:23:29] <lynxlynxlynx> both drizzt and random other npcs don't allow me to steal the fists (or other gear in the case of drizzt)
[18:23:35] <fuzzie> so meh
[18:24:09] <lynxlynxlynx> sure, there's lots to do, but let's keep focused
[18:24:44] <lynxlynxlynx> otherwise you just end up with tens of unfinished branches
[18:24:57] <fuzzie> yes, well :P
[18:25:08] <fuzzie> oh, there's something very broken with pst's portraits
[18:25:08] <Avenger> haha, when i use variable names like 'ppxpi' then you know i'm gone nuts
[18:25:20] <fuzzie> don't know if anyone changed those recently
[18:25:57] <lynxlynxlynx> what is it?
[18:26:22] <fuzzie> if you click on the last one, sometimes it does nothing except click, and the loadscreen shows through, and then the GUI disappears
[18:27:01] <lynxlynxlynx> can't reproduce, but i do have a different gui
[18:27:15] <fuzzie> oh, also the SPLImporter is whining about cgtable.2da
[18:27:19] <fuzzie> but i assume that is irrelevant
[18:27:20] <lynxlynxlynx> i did just get the loadscreen outline in bg1 though
[18:30:26] <Avenger> what? i thought, i fixed the loadscreen in bg1
[18:31:04] <lynxlynxlynx> it popped out during gameplay, but just the outline, not in the usual wholeness with an offset
[18:31:20] <Avenger> that's still bad :(
[18:31:36] <Avenger> i wonder why it wouldn't close the loadscreen window
[18:31:58] <fuzzie> why do you LoadScreen.SetVisible(WINDOW_VISIBLE) before unloading it, by the way?
[18:32:01] <lynxlynxlynx> it was wierd and the first time, so don't worry about it yet
[18:33:01] <Avenger> i'm not sure :)
[18:33:14] <fuzzie> oh, it's not unloaded in pst at all
[18:33:19] <fuzzie> so that explains why i saw it hanging around
[18:33:29] <Avenger> do you have EndLoadScreen?
[18:33:42] <fuzzie> yes, it just doesn't call Unload(), just the same SetVisible(WINDOW_VISIBLE) :)
[18:33:50] <fuzzie> i guess that is trying to draw the end-load skull
[18:34:09] <fuzzie> someone want to add that line?
[18:34:15] <Avenger> ahh endloadscreen wouldn't close it
[18:34:43] <fuzzie> or i could
[18:34:51] <Avenger> i do
[18:34:57] <fuzzie> all fixed with it added, anyway
[18:34:57] <Avenger> but there is a question
[18:35:10] <Avenger> do you see the glowing skull?
[18:35:11] <fuzzie> no more mysterious portrait button problems at all
[18:35:13] <Avenger> 'gskulon'
[18:35:42] <Avenger> i think, i set it to visible to refresh it, to make it visible at least for a moment
[18:35:42] <fuzzie> no, but it is maybe too quick
[18:35:54] <fuzzie> it gets to the end and then i am immediately in the game, no pause
[18:36:19] <Avenger> maybe it should be set when the progress is at 95% or dunno
[18:36:20] <fuzzie> this cgtable error is annoying already :)
[18:36:44] <fuzzie> is it meant to be there for all games?
[18:36:46] <Avenger> ok, you commit the pst loadscreen script
[18:36:58] <Avenger> yes
[18:37:05] <Avenger> casting glows are there for all games
[18:37:28] <Avenger> at least, opcode 0x8d is defined in every one of them
[18:38:05] <CIA-28> GemRB: 03fuzzie * rd82e65492b47 10gemrb/gemrb/GUIScripts/pst/LoadScreen.py: unload the loading window in EndLoadScreen
[18:38:07] <Avenger> though, the bg2 casting glow code is not like ours. They can create a spark effect too
[18:38:22] <Avenger> it is really ugly
[18:41:11] <Avenger> ok, enjoy the walksounds. If they are too annoying, comment out the line PlayWalkSound() in Actor
[18:41:41] <Avenger> meh, i always forget this
[18:41:50] <Taimon> hm
[18:42:02] <Taimon> i'm currently looking at Map::AddTileMap
[18:42:03] <CIA-28> GemRB: 03avenger_teambg * rc6d2f4525af7 10gemrb/gemrb/ (7 files in 3 dirs): walksounds initial implementation
[18:42:11] <Taimon> how do you do walksounds
[18:42:13] <CIA-28> GemRB: 03avenger_teambg * ra50e1b7a464a 10gemrb/gemrb/GUIScripts/pst/LoadScreen.py: Merge branch 'master' of ssh://gemrb.git.sourceforge.net/gitroot/gemrb/gemrb
[18:42:18] <fuzzie> well
[18:42:19] <Taimon> when you are overwriting the searchmap
[18:42:23] <fuzzie> see avenger's commit ;p
[18:42:42] <Taimon> with the passable array contents
[18:42:48] <Taimon> okay :)
[18:42:55] <fuzzie> (now we have a short array which stores the walksounds too)
[18:43:32] <Avenger> the multiple terrain based soundset implementation is fishy (slow)
[18:43:46] <Avenger> it should resolve the index on construction time
[18:44:08] <fuzzie> yes, we'll fix it up
[18:44:13] <Avenger> but atm, it is a single line, so only one memcmp :)
[18:44:15] <fuzzie> just best to commit the thing for now
[18:46:16] <fuzzie> oh, by the way, if you're both here
[18:46:22] <lynxlynxlynx> Avenger: why don't we iterate over all of the slots, but pick a random subset in Inventory::FindStealableItem?
[18:46:26] <fuzzie> does the original engine really just store a list of trigger objects, and walk through them all manually?
[18:46:41] <Taimon> not sure what you mean
[18:47:01] <fuzzie> i'm storing them like multimap<TriggerType, GlobalID>
[18:47:08] <Taimon> there are two different types of triggers
[18:47:10] <fuzzie> because i didn't yet find anything which requires anything more complicated than that
[18:47:42] <Taimon> it's just a list
[18:47:43] <Avenger> lynxlynxlynx: it iterates over the slots
[18:48:12] <fuzzie> ok, thanks
[18:48:14] <Avenger> it picks a random point, and tries to find the first stealable item from that point on
[18:48:24] <Taimon> so they are processed from head to tail
[18:48:32] <Avenger> (btw, this is almost byte by byte the original implementation), you can ask Taimon :)
[18:48:40] <Taimon> hehe
[18:48:52] <fuzzie> lynxlynxlynx: it shouldn't be random, right?
[18:49:17] <Avenger> shouldn't be random?
[18:49:36] <fuzzie> i found some pretty predictable stealing behaviour in the original engine
[18:49:47] <Taimon> fuzzie: the trigger list only stores non 0x4000 triggers, btw
[18:49:55] <Avenger> well, it picks a slot, and picks a direction
[18:50:11] <Avenger> yep, 0x4000 triggers are evaluated on the spot
[18:50:11] <fuzzie> Taimon: yes, i would be pretty impressed if it managed any of the 0x4000 ones :-)
[18:50:34] <Taimon> not sure how you are doing it in gemrb, so please forgive me :)
[18:50:36] <fuzzie> we actually implement AttackedBy properly too
[18:50:41] <fuzzie> which is terrible, we need to disable that
[18:51:05] <fuzzie> but it seems such a waste to sabotage it :(
[18:51:06] <Avenger> properly terrible?
[18:51:20] <fuzzie> Avenger: we obey the Style parameter, but it is trigger 0x0002
[18:51:49] <Avenger> before you sabotage stuff, check if iwd2 honours it :)
[18:51:52] <fuzzie> and scripts expect the Style to be ignored
[18:52:09] <fuzzie> well, i thought a GF_ would be fine
[18:52:15] <Avenger> yep
[18:53:12] <fuzzie> Taimon: we just have functions for every action and trigger (in core/GameScript/) which do most of the work themselves
[18:53:27] <lynxlynxlynx> Avenger: no, we ignore some slots, because the starting point is random
[18:53:31] <fuzzie> so any object decoding which is necessary is done inside actions for example, no need for nodecode.ids
[18:53:51] <Taimon> okay
[18:54:16] <fuzzie> so there's no actual difference between 0x4000 and non-0x4000 triggers at all as far as gemrb's core is concerned :)
[18:54:32] <fuzzie> not sure if there's any pitfalls with these approaches
[18:54:41] <fuzzie> but we'll find out, i expect
[18:55:01] <Avenger> fuzzie: there is some
[18:55:05] <Taimon> 0x4000 in original engine just means: "evaluate on actor"
[18:55:35] <Avenger> we evaluate all on the fly, but non-0x4000 triggers do some cleanup if their block evaluated true
[18:55:59] <fuzzie> ok. we can handle that too, if you can give me any details.
[18:56:10] <Avenger> we just don't have a trigger queue, instead, we have slots
[18:56:19] <fuzzie> well, i have a trigger queue now :)
[18:56:39] <fuzzie> so, i rewrote the trigger functions to use that
[18:57:09] <fuzzie> and it is simple to keep a list of "things to cleanup if this block evaluates to true", in the Sender
[18:57:11] <Avenger> i don't recall atm, how non 0x4000 triggers are evaluated, probably there is a check if they are on the queue?
[18:57:24] <fuzzie> yes, you just see if they match an objecton the queue
[18:58:13] <Taimon> yep
[18:58:21] <Avenger> i hope you meant, the queue elements are not single 'objects'. they are triggers
[18:58:23] <Taimon> with some special object matching
[18:58:40] <fuzzie> but if the non-0x4000 triggers are removing themselves from the queue, then we have to add triggers only by messages, because surely 0xe8 must see them first
[18:58:53] <Avenger> 0xe8?
[18:59:05] <fuzzie> the effect that does things when a trigger is true
[18:59:36] <Avenger> hmm, yes, there are some fishy checks for that
[18:59:40] <Avenger> in the IE
[19:00:18] <Avenger> and iirc, there is a separate list for contingencies
[19:00:39] <fuzzie> see, this is why trying to write this is a nightmare :P
[19:00:41] <Avenger> taimon surely knows better, i just glanced over this
[19:01:50] <Avenger> consider 0xe8 opcodes as a separate script level
[19:02:02] <Avenger> with a separate trigger queue :)
[19:02:48] <Avenger> but, we can skip that for now, as we don't use triggers in the opcodes yet
[19:03:57] <Avenger> probably fireshield will be a bit odd till we fix this :) i remember some reports calling them dangerous
[19:04:25] <Taimon> fuzzie: before the list is cleared, the engine updates all those script objects (last hitter, ...)
[19:05:30] <Taimon> and there are two instance of those script objects
[19:06:37] <lynxlynxlynx> oh, drizzt is a bad example - before the patch, one of his scimitars was pickpocketable
[19:08:17] <Avenger> hehe
[19:09:16] <-- SiENcE has left IRC (Quit: cya @all)
[19:10:17] <Avenger> taimon: about those two instances, if i understood correctly, it recreates the trigger queue from them?
[19:26:17] <fuzzie> on the basis of the counters
[19:32:52] <-- bobvonholle has left IRC (Quit: bobvonholle)
[19:33:03] <Taimon> hm, i just rechecked
[19:33:11] <Taimon> triggers are never recreated
[19:33:19] <Taimon> just "consumed"
[19:37:16] <Taimon> well, i guess i'll prepare a more precise explanation for you
[19:37:32] <Taimon> and post it on g3 or somewhere else
[19:41:28] --- barra__ is now known as barra_home
[19:42:27] <fuzzie> would be appreciated, but i'm sure we'd work it out eventually :)
[19:42:42] <Taimon> hm, this will take a while ...
[19:42:58] <Taimon> don't wait for it :)
[19:43:17] <Taimon> btw. i was wrong, the 0x4000 triggers are also stored in the list
[19:43:31] <fuzzie> that seems .. strange :)
[19:43:37] <Taimon> yeah
[19:43:53] <Taimon> it's for multiplayer i guess
[19:44:04] <Taimon> triggers are sent via messages
[19:44:11] <fuzzie> :nod:
[19:44:12] <Taimon> and added to the trigger list
[19:44:39] <fuzzie> we don't do messages at all right now, but they appear to be important in some cases for syncing things in the right order in singleplayer mode, so i have something hacked up locally
[19:44:56] <fuzzie> but not committed yet because i only gave globalids to non-actors a few days ago and i haven't fixed up the merge..
[19:46:57] <Taimon> globalids to non-actors? (like doors, etc.?)
[19:47:01] <fuzzie> yes
[19:47:03] <Taimon> ah
[19:47:39] <fuzzie> we call the base class 'scriptable', for what i guess is probably an obvious reason :)
[19:47:55] <Taimon> i've called it CGameAIBase :)
[19:48:10] <Taimon> cre is CGameSprite
[19:48:32] <fuzzie> we are hoping to get away without effect queues on non-actors, i think..
[19:49:09] <fuzzie> not sure what else there might be lurking in base classes
[19:49:47] <Taimon> so Actor == CRE (CGameSprite) in gemrb?
[19:49:56] <fuzzie> an Actor is a CRE, yes
[19:50:19] <Taimon> and a door is?
[19:50:27] <lynxlynxlynx> Door :)
[19:50:32] <Taimon> yeah :)
[19:50:40] <Taimon> does it inherit from scriptable?
[19:50:45] <lynxlynxlynx> yes
[19:50:48] <Taimon> okay good
[19:50:55] <lynxlynxlynx> Container too
[19:50:59] <fuzzie> Scriptable -> some base classes -> Door, Container, Area, Game, Actor, InfoPoint
[19:51:08] <lynxlynxlynx> there's also Movable and Selectable
[19:51:17] <lynxlynxlynx> those base classes
[19:52:38] <Taimon> i see
[19:52:49] <Taimon> it'll take some time to get familiar :)
[19:52:51] <fuzzie> which are internal helper classes
[19:52:54] <fuzzie> Movable does pathfinding
[19:53:12] <fuzzie> and we have Highlightable, which handles hover effects i think
[19:53:28] <fuzzie> basically just convenient code-sharing
[19:53:56] <Taimon> i remember looking at pathfinding in the original engine not long ago
[19:54:08] <Taimon> how are you doing it?
[19:54:19] <fuzzie> our pathfinding sucks :) we need to use A* and do nudging somehow
[19:54:40] <lynxlynxlynx> yeah, we don't do bumping at all
[19:55:04] <Avenger> how is this A* differ from the current pathfinder?
[19:55:10] <Lightkey> <Taimon> it'll take some time to get familiar :) <-- another victim \o/
[19:55:34] <Taimon> btw is gemrb multithread? (pathfinding is done in an extra thread in IE)
[19:55:46] <Avenger> not in gemrb
[19:55:56] <Avenger> we got a separate thread for the music stuff only
[19:56:04] <Taimon> okay
[19:56:20] <Avenger> btw, i think bg1 had no multithreaded pathfinding
[19:56:34] <Avenger> at least, it is less threaded :)
[19:56:53] <Taimon> bg2tob mainly uses just one thread too
[19:57:32] <Taimon> but there seem to be 3 threads
[19:57:54] <Avenger> our pathfinding is fast enough, but the path is much more angular than the original. we don't even use all orientations, i think
[19:58:17] <fuzzie> performance isn't really an issue on desktop PCs at this point
[19:58:30] <fuzzie> and there's no multiple cores on the handhelds and phones
[19:58:45] <fuzzie> so i imagine threading wouldn't help
[19:58:52] <Taimon> nope
[19:58:56] <fuzzie> and it'd be easy enough to fix the pathfinder's appearance i think
[19:59:10] <fuzzie> but, it doesn't really get the paths quite right
[19:59:35] <Avenger> taimon, on what platform you work with gemrb?
[20:00:59] <lynxlynxlynx> he's just reading to code
[20:01:14] <Avenger> but sure he plans something :)
[20:01:21] <lynxlynxlynx> let's hope so
[20:01:23] <Avenger> i just wanted to know if it is windows or linux
[20:01:40] <Avenger> and if it is windows, which compiler
[20:01:48] <Taimon> linux
[20:01:53] <fuzzie> i'm not sure attracting people away from RE is a positive thing :P
[20:01:55] <Avenger> well, then it is easy :)
[20:02:14] <Avenger> we got plenty of stuff that needs extensive RE
[20:02:43] <Avenger> so instead of me trying to explain you something i barely understand, he can type it in :P
[20:03:58] <Avenger> btw, it is interesting that so many people showed up this and the last month
[20:04:13] <lynxlynxlynx> gog helped, i bet
[20:04:22] <lynxlynxlynx> maybe also the ia drama
[20:04:28] <Avenger> ia?
[20:04:38] <Avenger> i don't even know what's that
[20:04:41] <Taimon> and winter is approaching
[20:04:42] <lynxlynxlynx> improved alacrity
[20:04:56] <lynxlynxlynx> you're not missing much not knowing
[20:05:10] <Taimon> it's a sikret :)
[20:05:14] <Avenger> ah
[20:05:21] <Avenger> the blackwyrm lair?
[20:05:30] <Avenger> i heard something about a paywall or whatever
[20:05:51] <Avenger> i doubt he has any effect on us :)
[20:06:13] <Avenger> g3 or shs are the only real modding sites anyway :D
[20:08:33] <Lightkey> winter is coming *snickers*
[20:08:51] <lynxlynxlynx> meh, yet another check_level wall
[20:09:03] <lynxlynxlynx> bane of effects everywhere
[20:09:38] <Avenger> ?
[20:10:12] <Avenger> oh, btw, now i can reliably tell which effects got dice values and which ones got level limits :)
[20:10:44] <lynxlynxlynx> it's blocking the execution of something i don't want it to, but doesn't belong to diced effects
[20:10:53] <Avenger> one of the parameters in the constructor is a flag about that
[20:11:05] <lynxlynxlynx> could be the original had the same problem, but it is pretty lame for monks then
[20:11:33] <Avenger> if you call something a diced effect, it should pass check level without problem
[20:11:55] <lynxlynxlynx> i know
[20:12:08] <Avenger> would it mess any fields?
[20:12:13] <Avenger> i don't think so
[20:12:17] <lynxlynxlynx> hmm?
[20:12:27] <Avenger> well, which effect we talk about
[20:12:39] <lynxlynxlynx> can you check if set_stunned_state (0x2d) should be part of them?
[20:12:46] <lynxlynxlynx> :)
[20:12:55] <Avenger> i'm 100% sure it has level limits
[20:13:06] <Avenger> without looking :)
[20:13:21] <lynxlynxlynx> sucks
[20:13:31] <Avenger> why
[20:13:36] <lynxlynxlynx> stunning blow works only on level 6 enemies or lower
[20:13:51] <Avenger> i'm pretty sure it is intentional?
[20:14:03] <lynxlynxlynx> could be, there's not much info
[20:15:41] <lynxlynxlynx> the description says there's only a save, no mention of hd
[20:16:12] <Taimon> did find any level limitation in the effect itself
[20:16:15] <Taimon> did not
[20:17:00] <Avenger> it is the dicesides/count fields, Taimon
[20:17:15] <Avenger> the stunning blow innate has it set
[20:17:16] <lynxlynxlynx> these checks are done higher
[20:17:36] <Taimon> in the routine that checks the resistance etc. ?
[20:17:51] <lynxlynxlynx> yes, at least in gemrb
[20:17:55] <Avenger> yes, 95% of the effects have it so
[20:18:11] <Avenger> i think the IE has it in a similar place :)
[20:18:20] <Avenger> there are not many places where you can do that, LOL
[20:19:25] <Avenger> lynx: you asked the other day if spcl spells are disabled by disable mage/priest/innate stuff. Dunno if you read my answer
[20:19:32] <lynxlynxlynx> i did
[20:19:35] <Avenger> k
[20:19:52] <lynxlynxlynx> ugly :(
[20:22:02] <lynxlynxlynx> quivering palm has the same dice value
[20:22:05] <Avenger> i don't understand something
[20:22:08] <lynxlynxlynx> sucky sucky
[20:22:17] <Avenger> spcl811 has values 6/14 ?
[20:22:29] <lynxlynxlynx> yes
[20:22:54] <Avenger> i don't understand this
[20:23:01] <Avenger> what about <6 ?
[20:23:35] <lynxlynxlynx> now i don't understand you
[20:24:20] <Avenger> the values are 6 and 14, assuming the order is good, this means 6<level<14
[20:24:43] <Avenger> so it wouldn't affect targets with level less than 6
[20:24:56] <lynxlynxlynx> no, it's 14d6
[20:25:26] <Avenger> slay and stun surely has min/max level and not dice values
[20:25:51] <lynxlynxlynx> i agree, they have no use for them otherwise
[20:26:24] <Avenger> the only thing is: maybe applied effects ignore these fields
[20:26:36] <Avenger> that's the only sane explanation from me, atm
[20:27:08] <lynxlynxlynx> it is easy to test this ingame
[20:29:55] <Avenger> see sw1h32.itm, it has sw1h32a dragon slay effect with 1/8 :)
[20:30:17] <Avenger> you cannot insist it kills only level 8 dragons :)
[20:30:42] <lynxlynxlynx> deathblow is interesing, because it claims to be hd limited, yet it has both dice values at 0
[20:31:56] <Avenger> yes, this is officially freaky
[20:33:03] --> tomprinc1 has joined #GemRb
[20:33:13] <Avenger> and you know where i see 9 and 12 ?
[20:33:23] <-- tomprince has left IRC (Ping timeout: 265 seconds)
[20:33:31] <Avenger> (greater deathblow has 12 as level limit by text)
[20:33:42] <Avenger> the duration field has them :P
[20:33:51] <Avenger> now that's just crap
[20:35:16] <Avenger> i have no idea how could this possibly work
[20:35:35] <lynxlynxlynx> doesn't (lower) deathblow say 10?
[20:36:01] <lynxlynxlynx> the damage vs specific is probably a diced effect
[20:36:25] <lynxlynxlynx> the description of the sword claims it does double damage, but 1d8 matches the base of the sword
[20:37:02] <Avenger> but it is a slay effect?
[20:37:09] <Avenger> why would it have damage dice
[20:37:20] <lynxlynxlynx> it isn't a slay effect
[20:37:35] <lynxlynxlynx> just the sword has a braggy name
[20:37:46] <Avenger> ah you are right
[20:38:06] <Avenger> ok, this is simple dice effect
[20:38:07] <lynxlynxlynx> and here both deathblows have 12 duration, so yay :)
[20:38:24] <Avenger> the lightning effects got 9
[20:38:46] <lynxlynxlynx> yes, but the limit is 10 or 12
[20:38:47] <Avenger> i mis-clicked on the line and thought one is 9 the other is 12
[20:39:10] <Avenger> well, too many fields are filled with random values
[20:39:17] <Avenger> i cannot guess correctly
[20:39:23] <lynxlynxlynx> neither is not quite two rounds
[20:40:11] <Avenger> i look at this in a debugger
[20:40:12] <-- Avenger has left IRC (Quit: bye!)
[20:45:15] <Taimon> deathblow uses an eff_v2, no?
[20:46:11] <Taimon> no need to specify the limit in dices then
[20:48:37] <lynxlynxlynx> we don't do any discrimination with the effect versions there at all; probably only in the importer/exporter
[20:49:51] <Taimon> sorry, thought you were talking about the IE
[20:50:14] <lynxlynxlynx> in a way we did
[20:50:48] <Taimon> then i don't understand the problem with deathblow
[20:50:52] <lynxlynxlynx> maybe we should discriminate, but i know the effect code only superficially
[20:51:35] <lynxlynxlynx> so, how do effv2 effects specify the hd/level limits?
[20:51:56] <Taimon> in 0x54/0x58
[20:53:26] <fuzzie> hum.
[20:53:35] <fuzzie> str->Seek( 12, GEM_CURRENT_POS );
[20:53:38] <fuzzie> str->ReadDword( &fx->Resistance );
[20:54:13] <lynxlynxlynx> yep, i just found it too
[20:54:21] <lynxlynxlynx> iesdp also has it documented
[20:55:13] <fuzzie> 'caster level' also skipped?
[20:56:00] <fuzzie> and iesdp has Resource2/Resource3 in different places to us
[20:59:53] <lynxlynxlynx> caster level's position also doesn't match
[21:00:46] <lynxlynxlynx> Effect.h says it should be at 0xc4
[21:01:21] <fuzzie> that might be in-memory, so IESDP might be off-by-8
[21:01:42] <lynxlynxlynx> in this case it'd have to be off by 4
[21:02:07] <fuzzie> whee :p but variables are in the right place
[21:02:49] <fuzzie> since we load them correctly
[21:04:31] <lynxlynxlynx> FirstApply is also iwd2-mehy
[21:04:53] <lynxlynxlynx> too bad avenger left and is now probably wasting his time
[21:13:12] <CIA-28> GemRB: 03lynxlupodian * re6832c07b19c 10gemrb/gemrb/ (core/Scriptable/Actor.h plugins/FXOpcodes/FXOpcodes.cpp): implemented a brittle fx_melee_effect/fx_ranged_effect
[21:13:22] <CIA-28> GemRB: 03lynxlupodian * rced4b8016eb5 10gemrb/gemrb/ (core/Effect.h plugins/EFFImporter/EFFImporter.cpp): read more effv2 fields
[21:34:02] --> Avenger has joined #GemRb
[21:34:10] --- ChanServ gives channel operator status to Avenger
[21:34:36] <Avenger> huh, hi
[21:34:53] <Avenger> i'm pretty sure this melee/ranged effect stuff is brittle :)
[21:35:06] <fuzzie> could you look at the EFFImporter for v2?
[21:35:14] <fuzzie> we are still skipping fields, even after lynx patched stuff up just now
[21:35:33] <Avenger> you better add the melee/ranged effects to the projectile in the code that handles melee/ranged attack
[21:36:02] <Avenger> i hope you didn't add new fields :)
[21:36:14] <lynxlynxlynx> i did
[21:36:24] <lynxlynxlynx> read above for the simple revelation
[21:36:31] <fuzzie> or just look at the commit
[21:36:35] <Avenger> i do
[21:37:00] <Avenger> i hoped i can do this without the extra fields
[21:37:32] <fuzzie> your step sounds use more RAM than extra effect fields ever could, i would think :)
[21:37:54] <Avenger> the min/max level fields are overlapping with the dice sides/count
[21:37:59] <Avenger> at least in v1
[21:38:09] <lynxlynxlynx> only there
[21:38:18] <Avenger> you never use both, though
[21:38:27] <Avenger> and the opcode decides which to use
[21:38:55] <fuzzie> is it worth the complication for a tiny amount of memory though?
[21:39:35] <fuzzie> anyway, i was more wondering about the fields we're still skipping..
[21:39:48] <Avenger> i don't know
[21:40:10] <Avenger> the 60 bytes after secondary type are unknown
[21:40:36] <Avenger> the one after caster level is 'first cast'
[21:40:42] <Avenger> i think
[21:40:49] <Avenger> we already got FirstCast in memory
[21:41:18] <Avenger> in my logic, it is always 0 on disc :)
[21:41:23] <Avenger> so it is a redundant field
[21:41:41] <Avenger> it is always 0 in embedded effects, and always assumed 1 in eff files
[21:41:49] <Avenger> so it is not needed
[21:42:53] <Avenger> tobex has more fields
[21:43:03] <Avenger> DWORD u4c; //4ch
[21:43:05] <Avenger> DWORD parentMinLevel; //50h
[21:43:07] <Avenger> DWORD parentMaxLevel; //54h
[21:43:08] <Avenger> DWORD DispelResistFlags; //58h, bit 0 = bDispellable, bit 1 = bIgnoreResistance, bit 2 = added for al
[21:43:22] <Avenger> parentminlevel/maxlevel are probably useful
[21:43:44] <fuzzie> well, this is what lynx added, right?
[21:43:46] <lynxlynxlynx> that's what was just added
[21:44:23] <Avenger> ah wait
[21:44:23] <lynxlynxlynx> also checked ingame, it has the right value for greater deathblow
[21:45:07] <Avenger> right
[21:45:35] <Avenger> oh but it says 'parent'
[21:45:47] <Avenger> so, an applied effect inherits it from the caller
[21:45:49] <Avenger> no?
[21:46:14] <fuzzie> doesn't it only matter at application time?
[21:46:20] <Avenger> yes
[21:46:38] <fuzzie> so no inheritance needed?
[21:46:42] <Avenger> it is used only for resistance
[21:46:51] <Avenger> so no loading is needed :P
[21:46:56] <fuzzie> no
[21:47:06] <lynxlynxlynx> http://pastebin.ca/1983919 <-- and this for the usage
[21:47:20] <Avenger> the parent is a v1 effect
[21:47:32] <Avenger> which has its min/max level in the dice sides/counts fields
[21:47:34] <fuzzie> for what?
[21:47:40] <fuzzie> oh, you look at some specific thing
[21:48:06] <Avenger> yes, but that field is never coming from an .eff
[21:48:10] <Avenger> that's what i'm saying
[21:48:17] <fuzzie> it is set in no .eff files?
[21:48:25] <Avenger> it is ignored
[21:48:33] <Avenger> if it is coming from the parent
[21:48:35] <fuzzie> so what does the parent effect do?
[21:48:48] <Avenger> applies the .eff file in some way
[21:49:05] <Avenger> and i guess, sets the min/max levels
[21:49:07] <fuzzie> so, .spl files make a parent effect which then applies the .eff file?
[21:49:34] <Taimon> Avenger: look at 0x4F3bEC
[21:49:39] --> SiENcE has joined #GemRb
[21:49:39] <Avenger> well, if they got effects like apply effect/apply effect on condition/melee effect/ranged effect etc
[21:49:53] <Taimon> it copies data from an .eff resource to a game_eff
[21:50:35] <Avenger> can you paste it to pastebin?
[21:50:37] <Avenger> i'm on linux
[21:50:49] <Taimon> dito
[21:51:05] <Taimon> wait a sec
[21:51:08] <Avenger> hmm is it opcode code?
[21:52:10] <Taimon> nope, just stupid copy code
[21:53:03] <Avenger> and you say it copies the min/max levels from file
[21:54:06] <fuzzie> it is in your pre-IDA notes, but no code, just the address as 'copy_eff_members'
[21:55:21] <Avenger> yes i found that
[21:56:42] <Taimon> it copies nearly everything from the eff resource, yes
[21:57:49] <CIA-28> GemRB: 03avenger_teambg * r2afe46a351a0 10gemrb/gemrb/core/EffectQueue.cpp: disable multiple instances of same sequencer
[21:58:01] <Avenger> so why is it called 'parent' in the tobex source
[21:58:21] <Taimon> no idea
[21:59:00] <fuzzie> you don't think they just mean the effect source?
[21:59:04] <Avenger> i see that the coordinates and caster/target id are overwritten by the applying effect. That is normal, those are always variable
[21:59:20] <Avenger> i don't see other fields set, though
[22:02:23] <CIA-28> GemRB: 03avenger_teambg * r3479b1695e4c 10gemrb/gemrb/plugins/FXOpcodes/FXOpcodes.cpp: fixed unpause target to correctly remove ALL pause target effects
[22:03:02] <Taimon> http://paste.pocoo.org/show/287040/ (it's boring)
[22:04:28] <Avenger> i see, 004F3CFE is where it copies them
[22:05:26] <Avenger> even the first cast field. Though i feel that would be a disaster :)
[22:05:52] <Avenger> ah wait, that is the secondary type
[22:06:23] <Avenger> hehe, there it is in the end, so what
[22:07:20] <Avenger> all .eff files have this field set to 1?
[22:08:34] <Avenger> i'm pretty sure the polymorph opcode is used from .eff files, and it depends on the 0xc8 field a lot
[22:09:20] <Taimon> here is where this function is usually called from:
[22:09:25] <Taimon> http://paste.pocoo.org/show/287049/
[22:09:52] <Avenger> ---> mov [edx+game_eff.field_C8], 1
[22:09:56] <Avenger> phew ;)
[22:10:06] <Taimon> =)
[22:10:19] <Avenger> so yeah, at least, i was right about the first cast field is ignored
[22:10:26] <Taimon> yep
[22:11:47] <Avenger> i still don't find any overwrites of the min/max level, so i guess they are not ignored, and we need those fields
[22:12:24] <Avenger> i'm not sure how that will help the spell effect, though :)
[22:12:47] <Avenger> lynxlynxlynx: what changes if you use these fields?
[22:12:53] <lynxlynxlynx> we also need the version stored
[22:13:01] <Avenger> the version? what for
[22:13:14] <Avenger> all .eff files are eff v2
[22:13:14] <lynxlynxlynx> to decide whether to use the new fields or the old ones
[22:13:34] <lynxlynxlynx> check_level is deals with all effects
[22:13:38] <lynxlynxlynx> -is
[22:13:58] <Avenger> but all effects are converted to eff v2 internally
[22:14:09] <fuzzie> in gemrb?
[22:14:13] <Avenger> at the point where check level sees them, they should be eff v2
[22:14:17] <Avenger> yes, even in gemrb
[22:14:21] <fuzzie> that doesn't cause problems when saving as v1?
[22:14:27] <Avenger> no
[22:14:27] <fuzzie> just curious
[22:14:54] <Avenger> that's one reason why i wanted a single field, though
[22:15:03] <Avenger> now you gotta see if they are diced effects
[22:15:04] <lynxlynxlynx> the version could still be saved and would survive
[22:15:14] <Avenger> and select which field to save in eff v1 dice/level
[22:15:34] <lynxlynxlynx> i don't know how else to differentiate them at that point otherwise
[22:15:37] <Avenger> but you don't need the version
[22:15:51] <Avenger> you could use the diced/level boolean, though
[22:16:36] <Avenger> when you save (in bg1), you convert the eff v2 back to eff v1
[22:16:40] <lynxlynxlynx> yes, it'd be the same and could be changed later if somone adds v3
[22:17:33] <Avenger> i just don't know where you want to write that, it wasn't written by the original engine
[22:17:57] <fuzzie> i'm confused
[22:17:57] <lynxlynxlynx> the original had both the version and the signature it could check against
[22:18:00] <Avenger> so you will need lots of loops to salvage that info, and i don't quite see how you would use it later
[22:18:07] <fuzzie> lynxlynxlynx: it didn't, it had what gemrb has
[22:18:23] <fuzzie> i think
[22:18:29] <fuzzie> can't you just check if the fieds are valid, and if so, use them?
[22:18:44] <lynxlynxlynx> what is valid?
[22:19:03] <fuzzie> well, i guess for this case, these minlevel/maxlevel fields being non-zero
[22:19:16] <lynxlynxlynx> yes, this is simple, but the opposite case
[22:19:33] <lynxlynxlynx> when to fallback or just check the dices
[22:19:39] <Avenger> all .eff files are eff v2. All embedded effects are eff v1 or eff v2 depending on the creature's 'totsceff' field. all itm/spl effects are eff v1
[22:20:01] <Avenger> so where would you need any extra info and how would you deduct it from original engine saves
[22:20:12] <fuzzie> Avenger: well, maybe you can explain how it works
[22:20:26] <fuzzie> in the original engine, how does it decide what to check, from the effect structure?
[22:20:41] <lynxlynxlynx> we have the info or we wouldn't be able to load v1 and v2 differently
[22:20:55] <Taimon> fuzzie: passed in create_eff constructor
[22:21:01] <Avenger> ok, the engine, when converts from effv1 to effv2, simply has a constructor for EVERY opcode. it is a hardcoded parameter for each opcode
[22:21:16] <Avenger> a simple boolean
[22:21:33] <Avenger> it determines which field to set from the v1 dice/level fields
[22:21:55] <Avenger> when you go backwards from v2 to v1, it is all the same
[22:21:56] <fuzzie> ok. so we need a 2da for that?
[22:22:09] <Avenger> we got a list in the code
[22:22:22] <Avenger> there are very few diced effects
[22:22:27] <Avenger> most are level limit effects
[22:22:31] <fuzzie> oh, right, diced_effects[]
[22:22:40] <lynxlynxlynx> and 2
[22:22:56] <Avenger> to be honest, i don't know why are there two lists
[22:23:03] <Avenger> but the second list contains only iwd effects
[22:23:08] <lynxlynxlynx> one has the save for half check
[22:23:15] <Avenger> and ididn't see iwd yet
[22:23:32] <Avenger> bg2 has a single boolean here
[22:24:59] <Avenger> fuzzie: a 2da is not really important, as the effect names are 'hardcoded'. And you should always know which types they are
[22:25:10] <Avenger> so it is not limiting the modder more than already :)
[22:25:20] <fuzzie> well, i thought there would be more than just a tiny number :P
[22:25:37] <fuzzie> but honestly this is all going over my head again, i hate the effect stuff
[22:25:54] <fuzzie> so i will go hide in this corner and play Gobliiins
[22:26:06] <Taimon> :)
[22:26:10] <lynxlynxlynx> so deathblow is diced?
[22:26:13] <fuzzie> it is Lightkey's fault.
[22:26:16] <Avenger> i like effects more than scripting, always did. This goes back to the time of real modders vs. npc romancers :)
[22:26:16] <DrMcCoy> fuzzie: Good doggy
[22:26:29] <Taimon> i'm back to reversing, see you guys
[22:26:35] <Avenger> see you taimon :)
[22:26:55] <-- Taimon has left IRC (Quit: leaving)
[22:27:28] <lynxlynxlynx> oh and the damage vs. creature type that we discovered before
[22:27:37] <Avenger> deathblow?
[22:27:44] <Avenger> isn't it a slay effect?
[22:27:51] <Avenger> that shouldn't be diced
[22:28:02] <lynxlynxlynx> Death: Kill Creature Type [55]
[22:28:12] <lynxlynxlynx> 0d0 in the fields
[22:28:23] <lynxlynxlynx> oh, that is fine
[22:28:26] <Avenger> 0 means level limit ignored
[22:28:53] <Avenger> damage vs creature is probably diced
[22:29:13] <Avenger> with param3 holding the + value
[22:29:15] <Avenger> i think
[22:29:30] <Avenger> so it is xdy+param3
[22:31:08] <lynxlynxlynx> so deathblow applies this slaying, that ignores level
[22:31:24] <lynxlynxlynx> yet the spell says it works only up to 10 hd
[22:32:02] <lynxlynxlynx> how does it do it?
[22:32:27] <fuzzie> doesn't it have these min/max level fields set?
[22:33:18] <lynxlynxlynx> oh, right :)
[22:34:28] <lynxlynxlynx> i'll let Avenger deal with these
[22:34:32] <Avenger> i think i got to do something in dltcep
[22:34:35] <-- Avenger has left IRC (Quit: bye!)
[22:36:22] <Lightkey> :'-(
[22:36:28] <lynxlynxlynx> for the melee/ranged effect to be applied directly when attacking i'll need another two fxqueues in the actor
[22:36:45] <lynxlynxlynx> nothing wrong with that, right?
[22:37:41] <lynxlynxlynx> i could get away with one if i abuse an effect parameter, but that is both ugly and there may not be an appropriate one
[22:38:21] <Lightkey> but if anyone is interested, there are RPGs which I never heard about on sale at GOG.com, Ishar series and Robinson's Requiem/Deus
[22:42:40] --> Avenger has joined #GemRb
[22:42:40] --- ChanServ gives channel operator status to Avenger
[22:50:09] <Avenger> lynx: do you know any .eff file where the level limit counts?
[22:51:42] <Avenger> oh nice
[22:51:57] <lynxlynxlynx> from which field? :P
[22:52:27] <Avenger> spcl902 has the real eff v2 level limits set up
[22:52:34] <lynxlynxlynx> yes
[22:52:41] <Avenger> just added this little info to dltcep ;)
[22:52:47] <lynxlynxlynx> also 903 (greater)
[22:52:56] <Avenger> yes
[22:53:21] <Avenger> i guess you are happy, you just fixed the monks
[22:53:51] <Avenger> the 14d6 is safely ignored
[22:54:03] <Avenger> and deathblow has the fields correctly set
[22:54:48] <Avenger> i'm just looking for more .effs where this makes a difference
[22:55:43] <lynxlynxlynx> nothing is fixed yet, we still do the same level check
[22:56:16] <lynxlynxlynx> you can check chromatic orb and death spell, maybe they're both effv2 too
[22:56:18] <fuzzie> well, you did all the meaningful working out
[22:56:46] <lynxlynxlynx> yes, but it hasn't materialised fully yet
[22:57:26] <Avenger> chromatic orb has effv1 in the spl file
[22:57:34] <Avenger> also cloudkill
[22:58:04] <Avenger> since they are eff v1, their level limit is in the same place as a dice count/side :)
[22:58:28] <Avenger> this makes a difference only in external .eff files
[23:00:34] <lynxlynxlynx> oh
[23:01:44] <Avenger> ok i gave up looking, the only external effs that got a meaningful level limit are the deathblows
[23:02:37] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630])
[23:16:50] <CIA-28> GemRB: 03avenger_teambg * r506ceffb57be 10dltcep/ (EffEdit.cpp Structs.h resource.h): dltcep update (level limit fields in external .eff files)
[23:20:42] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[23:22:59] <CIA-28> GemRB: 03avenger_teambg * r80d819e44c28 10ielister/ielister.cpp: ielister update (level limits)
[23:35:10] <-- SiENcE has left IRC (Quit: cya @all)
[23:46:20] --- barra_home is now known as barra_fife
[23:46:48] --- barra_fife is now known as barra_home
[23:46:57] --- barra_home is now known as barra_library
[23:47:31] --- barra_library is now known as barra_home