#gemrb@irc.freenode.net logs for 8 Aug 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:52:47] <-- Maighstir_laptop has left #GemRb
[00:57:32] <-- budlust has left IRC (Quit: Lost terminal)
[01:10:50] --> budlust has joined #GemRb
[01:56:04] <-- budlust has left IRC (Quit: Lost terminal)
[04:12:29] --> budlust_ has joined #GemRb
[04:26:54] <-- budlust_ has left IRC (Ping timeout: 258 seconds)
[04:46:51] <-- nickdaly` has left IRC (Ping timeout: 264 seconds)
[07:00:17] --> lynxlynxlynx has joined #GemRb
[07:00:18] --- ChanServ gives channel operator status to lynxlynxlynx
[07:18:53] --> Avenger has joined #GemRb
[07:18:54] --- ChanServ gives channel operator status to Avenger
[07:18:59] <Avenger> hi
[07:23:32] <lynxlynxlynx> gmornin
[07:24:34] <Avenger> fuzzie: 0xaf and 0xb9 are exactly the same, on constructor level
[07:25:49] <Avenger> the only difference is the opcode, which makes possible selective resistance/removal
[07:27:14] <lynxlynxlynx> devsin agrees
[07:27:27] <lynxlynxlynx> at least if the numbers match
[07:48:03] --> Maighstir_laptop has joined #GemRb
[08:01:08] <Avenger> woo, i hit a vein. I found the list of all messages :)
[08:18:44] <fuzzie> Avenger: constructor level?
[08:18:58] <Avenger> they share the same
[08:19:05] <Avenger> they are totally equal
[08:19:41] <fuzzie> i diffed these opcode files, and there are chunks of code in the 185 one which aren't in the 109, but i guess this is the 'corresponding visuals' which devSin talks about
[08:19:54] <Avenger> ?
[08:20:02] <Avenger> hmm b9 is 175 ;)
[08:20:16] <fuzzie> oh, well, i can't add up :P but still
[08:20:17] <Avenger> ah no
[08:20:22] <Avenger> no, i can't
[08:20:43] <fuzzie> i diffed 0af_holdcreaturespell vs 06d_holdcreature
[08:20:51] <Avenger> af and b9 are the same
[08:21:04] <Avenger> i didn't even give b9 because it is the same
[08:21:41] <fuzzie> and there are another 110 lines in the 6d one
[08:21:53] <Avenger> portrait icon :)
[08:22:03] <fuzzie> that is the one without portrait icon
[08:22:12] <Avenger> hmm
[08:22:25] <fuzzie> so you see why i am wondering :)
[08:23:04] <fuzzie> but your 6d disasm has 15 junk lines at the end
[08:23:09] <fuzzie> and maybe the rest is just inlining or something
[08:26:10] <Avenger> the junk in the end is probably an undecoded jumptable
[08:26:30] <Avenger> in the beginning, i had no process for that :)
[08:28:00] <Avenger> stat b9a is set by the 0x6d opcode
[08:28:41] <Avenger> hmm af sets it too (that's the held stat)
[08:28:52] <fuzzie> http://fuzzie.org/nfs/gemrb/6d_vs_af.txt is my very clumsy diff
[08:29:09] <fuzzie> it doesn't work too well because all the addresses change :)
[08:31:40] <Avenger> well... that you cannot use for much
[08:32:16] <Avenger> both opcodes got ids targeting, right?
[08:32:26] <fuzzie> sure, it just shows how many more lines 6d has, i was surprised at how well i could hack it to work :p
[08:32:30] <fuzzie> yes
[08:33:34] <fuzzie> i'll just have to do more in-game research, i guess
[08:37:46] <Avenger> 0x6d is totally simple, the complexity is in ids targeting
[08:37:58] <Avenger> it just sets state helpess for matching ids
[08:38:07] <Avenger> helpless
[08:38:40] <Avenger> ahh and of course the held stat
[08:40:41] <fuzzie> i just look for *some* state difference :p
[08:41:03] <fuzzie> devSin implies that all the circle colour and other visual effects are done by the effect
[08:41:20] <fuzzie> but i am hoping that it really just does something different state-wise
[08:41:36] <Avenger> circle color in held?
[08:41:44] <fuzzie> yes
[08:41:47] <Avenger> what color
[08:41:55] <fuzzie> purple for 6d, yellow for af, i think
[08:42:03] <Avenger> purple?
[08:42:07] <fuzzie> yes :)
[08:42:13] <Avenger> how can you achieve purple, that is for unselectable
[08:42:24] <fuzzie> oh hey
[08:42:25] <Avenger> are you using some modded exe?
[08:42:28] <fuzzie> no
[08:42:40] <fuzzie> you're right, i guess purple is overriding the yellow
[08:42:41] <fuzzie> hmph
[08:42:42] <Avenger> purple circle is done by Unselectable
[08:42:57] <fuzzie> i have a script which makes a few changes, it does unselectable earlier on
[08:43:02] <Avenger> haha
[08:43:04] <fuzzie> i'll have to experiment some more
[08:43:18] <Avenger> you could have mentioned that purple earlier
[08:43:23] <fuzzie> well, either there are behaviour differences between the effects, or all this stuff about hold on the forums is nonsense
[08:43:37] <Avenger> gimme a link?
[08:43:45] <fuzzie> it is all over the place :)
[08:43:49] <Avenger> i could send you the 0x6d annotated list
[08:43:53] <fuzzie> i can't find *any* single post discussing it
[08:44:08] <fuzzie> which is why i wondered if anyone had bothered looking at all
[08:44:27] <Avenger> it is totally understandable
[08:45:21] <Avenger> meh, i just have to reboot to linux
[08:45:26] <fuzzie> and i find various scripts using 0x6d and then running scripts/etc, without any StateOverrideFlag
[08:45:45] <fuzzie> but i think the most obvious solution is maybe that everyone is wrong and they run the action queue even when held.. i'll have to check
[08:46:49] <Avenger> ok, maybe i send it later if that solved now
[08:47:03] <fuzzie> sure :)
[08:47:13] <fuzzie> i have exams anyway, so i won't be fixing many bugs until Thursday
[08:49:22] <fuzzie> but i'll ask you later, because i would like to know about HELPLESS at least
[08:51:24] <Avenger> hmm, do you know how to define a local struct in ida?
[08:52:05] <Avenger> or what's better, a global struct type, that you can assign to local variable area :)
[08:52:22] <fuzzie> i think edit->structures or something will let you make structure types
[08:52:43] <fuzzie> then somewhere similar will let you open a window for editing the local stack frame for a function, where you can then give it types including structures
[08:53:22] <Avenger> ok, i will see that
[08:53:52] <Avenger> the targeting ids are copied into a struct in the local heap
[08:54:03] <Avenger> and finding the right field is always difficult
[08:55:27] <fuzzie> maybe you need the 'Structures' window, from Windows, to make a new one
[08:56:35] <fuzzie> but i don't have it here, so can't check, but you get the idea :)
[09:00:05] --> budlust_ has joined #GemRb
[09:03:19] <Avenger> huh, this structure editor is quite a crap in ida
[09:03:43] <fuzzie> you have to add *all* fields, which is annoying
[09:03:48] <Avenger> i couldn't find how to remove one
[09:03:50] <fuzzie> and you have to learn all the keystrokes
[09:04:03] <Avenger> the remove bytes button is always inactive
[09:04:20] <fuzzie> i think there's a little keybinding hint at the bottom of most of the windows
[09:04:58] <Avenger> that works
[09:05:16] <Avenger> ok, i got a nice object struct :)
[09:05:21] <fuzzie> :)
[09:06:44] <Avenger> now how do i assign it to the local vars...
[09:07:32] <fuzzie> edit->functions->something
[09:07:46] <fuzzie> then you get an editor for the local vars of the function
[09:08:39] <fuzzie> edit->functions->define stack variables, i guess
[09:08:59] <fuzzie> then you get a structure editor representing the local stack, and you just change some variable's type to your struct :)
[09:12:33] <Avenger> there is no field type struct, only offset to struct :(
[09:14:00] <fuzzie> use alt-q
[09:14:03] <fuzzie> i think that is 'stack var'
[09:14:14] <fuzzie> erm, "Struct var"
[09:14:18] <fuzzie> which is "a struct in a struct" :)
[09:14:50] <fuzzie> i'll go and find the machine with ida pro if you have problems, but i think it's not so hard
[09:15:44] <Avenger> yes that seems to work
[09:18:05] <Avenger> wow, it is matching
[09:18:47] <fuzzie> :)
[09:18:57] <Avenger> seeing this: mov cl, [ebp+sTarget.EA]
[09:19:02] <fuzzie> isn't it cool?
[09:19:12] <Avenger> that's so much better than ebp-13
[09:19:51] <Avenger> this part is not too simple, but the result is good
[09:20:23] <Avenger> the object struct (target ids) are used in all parts of the engine
[09:20:33] <fuzzie> once you get used to it, made some structs and named the common functions, you can decode stuff really quickly
[09:20:46] <Avenger> yep
[09:21:09] <Avenger> already added lots of messages and such to the database
[09:21:21] <Avenger> even an enum for the states
[09:21:50] <Avenger> it is a bit silly, though, when i see or ah,0x8, it is actually or ax, 0x800
[09:22:03] <Avenger> so i cannot mark all states
[09:24:16] <fuzzie> maybe there's some clever way to do that, but i don't know it :)
[09:31:27] <-- budlust_ has left IRC (Ping timeout: 246 seconds)
[10:10:41] --> budlust has joined #GemRb
[10:14:40] <Avenger> fuzzie: the difference seems to be how the opcodes match classes
[10:14:56] <Avenger> luckily class based hold is not used anywhere
[10:15:12] <fuzzie> ok
[10:15:31] <fuzzie> that makes things easier :)
[10:16:02] <Avenger> oh, hmm, actually not true, both has thjis function
[10:16:07] <Avenger> i keep looking for diffs
[10:16:08] <fuzzie> both set HELPLESS?
[10:16:23] <fuzzie> yes, this is why i tried making that diff, but it is not so helpful :(
[10:17:00] <Avenger> yes
[10:17:04] <fuzzie> you can make IDA generate graphs of a function's flow
[10:17:15] <fuzzie> which is helpful for seeing different branches etc
[10:17:24] <Avenger> af seems to be optimised
[10:17:30] <Avenger> it seems to set the state only once
[10:17:33] <Avenger> at a single point
[10:18:15] <Avenger> the main reason is the portrait icon
[10:18:36] <Avenger> they didn't dare to write the portrait icon setting in each branch
[10:18:57] <Avenger> setting a state (probably one line) was ok, but the second line was too much
[10:23:04] <fuzzie> ok. unexciting.
[10:23:14] <fuzzie> my other thing i want to know about is Interact and banters
[10:23:24] <fuzzie> but honestly i think that is easier researched by experimenting in the original engine
[10:23:58] <fuzzie> and we want to know how the summoning opcode delays the actual summon until the animation is done, but maybe it's not worth disasm for that
[10:26:38] <fuzzie> and the Hold VVC is weird, i don't see any hints in the notes on the forum either :(
[10:35:07] <Avenger> whoa the unsummon opcode has some extra code
[10:35:17] <Avenger> i guess summon may have too
[10:35:30] <Avenger> part of the code is in a separated function
[10:39:33] <Avenger> in case of param2 ==3,4 the summoned coordinates are of the target actor, is that in our engine?
[10:49:32] <-- budlust has left IRC (Quit: Lost terminal)
[10:55:44] <-- Maighstir_laptop has left IRC (Quit: Maighstir_laptop)
[10:55:56] --> edheldil_ has joined #GemRb
[10:57:11] <fuzzie> Avenger: doesn't look like it
[10:57:53] <Avenger> well, easy to add, and probably helps a bit
[10:58:21] <Avenger> summon uses a lot of this object struct
[10:58:32] <Avenger> and there seems to be some field overlap
[10:58:38] <Avenger> i don't quite understand
[11:09:37] <Avenger> ahh i see, i mistaken a pointer to a struct address
[11:42:17] --> SiENcE has joined #GemRb
[11:43:57] <-- edheldil_ has left IRC (Ping timeout: 240 seconds)
[12:36:42] <Avenger> oh, hmm, surprise in randomsummon, illegal params don't cause a break, but summon friendly critters from anisum03
[12:36:53] <Avenger> lemme see how it is done in gemrb
[12:38:07] <Avenger> not really good
[12:38:15] <fuzzie> no other surprises?
[12:39:14] <Avenger> not in this function, but this one is good enough for me to reboot into linux ;)
[12:39:19] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[12:42:14] --> ubik has joined #GemRb
[12:42:41] --- ubik is now known as Guest68555
[12:42:43] --- Guest68555 is now known as micru
[12:43:02] <micru> hi
[12:44:52] <fuzzie> hi
[13:09:50] <CIA-26> GemRB: 03avenger_teambg * r20932ea4c811 10gemrb/gemrb/plugins/FXOpcodes/FXOpcodes.cpp: added anisum03 to random summon effect
[13:11:54] <micru> hey fuzzie, thanks for the link, i didn't know that there was somebody working on it
[13:12:42] <micru> i have been googling and the furthest i could go, was the MOTU group and a redirect to the debian games packaging group
[13:15:15] <fuzzie> well, they are the ones "in charge" :) but their wiki doesn't link to the ubuntu bugs, not so helpful
[13:15:33] <fuzzie> we are mostly not very interested in the desktop packages, since you can always run the original games under wine
[13:16:43] <micru> i tried that (to run the game with wine) but it dind't work for me, so i had to set up a vm
[13:17:17] <fuzzie> maybe we should make a page with advice about running under wine :)
[13:17:17] <micru> are bug reports appreciated or do you have too much to do at the moment?
[13:17:37] <fuzzie> for bg2 under wine i think you have to be sure to disable '3d acceleration' in settings
[13:18:09] <fuzzie> and bug reports are appreciated for the latest version, but the releases are usually too old (we fixed too much since)
[13:18:30] <fuzzie> http://gemrb.sourceforge.net/wiki/doku.php?id=todo is where we keep an up-to-date list of problems
[13:18:35] <micru> there is this thing, playonlinux that configures everything automatically for each game with a script. the best would be to change that script if it is not working fine
[13:21:06] <micru> http://www.playonlinux.com/repository/?script=299
[13:21:37] <micru> in my case it was a problem with the image, after converting from nrg to iso
[13:22:10] <micru> but next week i'm geting the original cd's, so i'll check again
[13:31:54] <lynxlynxlynx> there'll be a new release in two weeks
[13:32:58] <micru> wooahh! that would be a great milestone, you have been working hard guys
[13:33:24] <fuzzie> lynxlynxlynx: monster summons aren't delayed, btw
[13:33:51] <lynxlynxlynx> try summoning a skeleton warior
[13:33:52] <fuzzie> i guess they get some delayed invisible+immobile effect on creation
[13:33:58] <lynxlynxlynx> oh
[13:34:13] <fuzzie> but they're there from the start, it turns out
[13:34:29] <lynxlynxlynx> as long as nobody cares, that's fine
[13:34:45] <lynxlynxlynx> invisible+immobile would kill a lot of that
[13:34:46] <fuzzie> well, it makes it easier to do, i hop
[13:34:52] <lynxlynxlynx> yeah
[13:34:58] <fuzzie> we don't have to worry about trying to delay the summon :)
[13:35:32] <micru> what happens when you try to walk over an invisible creature?
[13:36:00] <fuzzie> you can't, it just means that your characters can't see them :)
[13:36:08] --> Avenger has joined #GemRb
[13:36:08] --- ChanServ gives channel operator status to Avenger
[13:36:11] <micru> ahm
[13:36:18] <Avenger> hi
[13:36:22] <micru> hi there
[13:36:28] <fuzzie> Avenger: so ok, summons aren't delayed, summons are invisible for a short while, any idea :p
[13:36:40] <Avenger> not yet
[13:36:42] <fuzzie> maybe some effect is applied to them at creation?
[13:36:50] <fuzzie> but original game won't let me save there
[13:37:12] <Avenger> well, there is no room for an effect :)
[13:37:28] <Avenger> in the IE any additional effect is 1-2 screens of code :)
[13:37:47] <fuzzie> there's no special 'load creature for summoning' function or something? :P
[13:38:22] <Avenger> there may be a field
[13:38:27] <Avenger> but i didn't find it yet
[13:40:11] <Avenger> we don't implement the summoning limit for solars
[13:41:31] <lynxlynxlynx> which is?
[13:41:43] <Avenger> 1
[13:41:55] <lynxlynxlynx> i saw some games with multiple, but it may have been due to mods
[13:41:56] <Avenger> you can have 5 normal critters
[13:42:19] <lynxlynxlynx> or multiple spellcasters
[13:42:33] <lynxlynxlynx> - does the limit apply to the party or the caster?
[13:42:34] <Avenger> and only 1 of these: animID: 7F3Ch
[13:42:48] <Avenger> 7f3b, 7f3c
[13:42:53] <lynxlynxlynx> one is the deva and the other planetar
[13:43:01] <lynxlynxlynx> they both come in good and bad variants
[13:43:04] <lynxlynxlynx> (but not ugly)
[13:43:08] <Avenger> yes, the code checks those too
[13:43:55] <fuzzie> lynxlynxlynx: yes, bgtweaks removes the limit
[13:44:18] <Avenger> if you have a summoned critter of those animids, you cannot summon any more of the following creresrefs: devaevil, plangood, planevil, devagood
[13:44:28] <Avenger> it is totally lame arbitrary shit, hardcoded
[13:44:56] <lynxlynxlynx> they just stuck that in later to balance them out
[13:45:50] <lynxlynxlynx> fuzzie: must be some hack to do it without exe patching
[13:45:52] <Avenger> instead of setting up a new general id
[13:46:01] <Avenger> they hardcoded 4 resrefs and 2 animation ids
[13:46:04] <fuzzie> lynxlynxlynx: change the resrefs, i assume
[13:46:04] <Avenger> totally lame
[13:46:44] <lynxlynxlynx> btw, the 7f3b one is unused i think
[13:46:51] <lynxlynxlynx> saw a note in the ia thread
[13:47:01] <Avenger> all 4 use the same animid?
[13:47:02] <lynxlynxlynx> i don't remember redlegs either
[13:47:13] <Avenger> the evil versions are red
[13:47:49] <lynxlynxlynx> yeah, but masg is similar
[13:47:56] <lynxlynxlynx> maybe i mixed them up though
[13:49:01] <Avenger> 0x7f3c is named antisolar, so hmm... the normal solar is 7f3b?
[13:49:10] <Avenger> yep
[13:49:16] <Avenger> the good versions use 7f3b
[13:49:40] <lynxlynxlynx> solars are only npcs though, so i wonder what they're doing on that list
[13:49:53] <Avenger> that is the animation id name
[13:50:03] <Avenger> they mixed them a bit :)
[13:50:27] <Avenger> all those guys got the same animation id (one of 2)
[13:50:53] <lynxlynxlynx> odd, but ok
[13:51:01] <Avenger> but you can summon another if its resref is not of the 4 hardcoded one
[13:51:38] <Avenger> i just wonder if i want to bother with this at all
[13:52:07] <lynxlynxlynx> another thing to externalise, but there's no rush
[13:52:27] <fuzzie> or one of us can externalise it, some other time
[13:52:46] <Avenger> yep, some other time, definitely not until this release ;)
[13:52:54] <fuzzie> i mean, no need to implement it nwo at all :)
[13:55:16] <fuzzie> our spawning stuff for bg2 is still really broken, i noticed :(
[13:58:01] <Avenger> what do you mean? too little or too many spawns
[13:58:08] <fuzzie> they happen when they shouldn't
[13:59:01] <fuzzie> i load an original save, and things suddenly spawn
[13:59:07] <fuzzie> that is as far as my diagnosis went :)
[13:59:13] --> Avenger_ has joined #GemRb
[13:59:45] <Avenger_> hmm, there is some spawn timer
[13:59:51] <Avenger_> maybe we don't honor that?
[14:00:01] <fuzzie> yes
[14:00:07] <fuzzie> i guess we didn't implement all of Taimon's findings
[14:00:13] <Avenger_> and i read that the spawn id itself has some effect
[14:00:41] <Avenger_> well, i would first read those things in the code myself
[14:00:55] <fuzzie> but i really want SoA to be properly completable for this upcoming release
[14:01:19] <fuzzie> so anything non-game-breaking is not so interesting
[14:01:33] <Avenger_> you fixed dialog range
[14:01:35] <Avenger_> hah
[14:01:41] <Avenger_> minsc talks easier now
[14:01:56] <Avenger_> earlier i had to walk right to the bars
[14:02:25] <fuzzie> could be pathfinder or object matching or some other thing :)
[14:02:35] <Avenger_> range+1, i think
[14:02:40] <-- Avenger has left IRC (Ping timeout: 258 seconds)
[14:02:41] <fuzzie> ah!
[14:02:54] --- Avenger_ is now known as Avenger
[14:03:13] <fuzzie> cool
[14:03:18] --- ChanServ gives channel operator status to Avenger
[14:04:27] <lynxlynxlynx> so that spellhold hold thing was a dud?
[14:04:30] <fuzzie> i should fix the actual dialog range
[14:04:33] <fuzzie> lynxlynxlynx: no, it is still broken
[14:04:47] <fuzzie> i assume all cases of hold are broken
[14:05:12] <fuzzie> but it is something i can easily test in the original engine, when i have time
[14:05:42] <lynxlynxlynx> code freeze will be on the 20th, so the full release with win32 binaries can happen the next day
[14:06:08] <fuzzie> ok. i have another exam on the 23rd so i probably don't want to be coding that weekend anyway.
[14:06:32] <fuzzie> but everyone is on holiday 13th-20th so i have little else to do
[14:06:38] <fuzzie> university buildings are closed, even
[14:06:57] <Avenger> kensai cannot wear a regular helmet???
[14:06:59] <lynxlynxlynx> you can build the win package ;)
[14:07:13] <lynxlynxlynx> kensai can't wear any armor (except maybe bracers?)
[14:07:16] <fuzzie> well, i have visual studio 2010 setup for work, so i probably ould :)
[14:07:21] <Avenger> oh meh
[14:07:44] <Avenger> good i made him dex 18 ;0
[14:07:46] <lynxlynxlynx> - May not wear armor
[14:07:48] <lynxlynxlynx> - May not wear gauntlets or bracers
[14:07:57] <fuzzie> does Use any Item override
[14:07:59] <fuzzie> ?
[14:08:12] <Avenger> use any item is some thief hla
[14:08:38] <fuzzie> oh, right
[14:09:09] <Avenger> :(
[14:09:21] <Avenger> jaheira started with 0 quick weapon slots
[14:09:46] <Avenger> so this thing is still not fixed
[14:09:47] <fuzzie> ReinitQuickSlots never gets called
[14:10:02] <fuzzie> i think
[14:10:09] <Avenger> it needs called on JoinParty maybe
[14:10:12] <fuzzie> no
[14:10:16] <Avenger> why not
[14:10:20] <fuzzie> the data is still bad there
[14:10:30] <fuzzie> oh, wait, this is NPCs, so i guess their effects already got run
[14:10:38] <fuzzie> so i guess JoinParty is fine
[14:10:50] <Avenger> yes, joinparty is already well in the game, when they get their pcstats
[14:11:01] <fuzzie> if they already have PCStats etc before they join
[14:11:08] <Avenger> then their quickslots are good
[14:11:45] <Avenger> actually, i wonder why jaheira's quickslots are not good in the loaded game
[14:11:59] <fuzzie> doesn't look like they do, though
[14:12:00] <Avenger> i thought it is in the saved game (or initial saved game)
[14:12:14] <fuzzie> i mean, why would JoinParty call CreateStats if it already worked?
[14:12:48] <Avenger> paranoia, ctrl-<whatever>, makeglobal
[14:13:02] <Avenger> ctrl-whatever - that makes them partymember
[14:13:20] <fuzzie> ok
[14:13:27] <fuzzie> well, that would be great to have fixed, and there seems ok
[14:14:06] <Avenger> i will look at the saved game first, to see if the slots are really wasted originally
[14:14:53] <Avenger> yeah, they are
[14:16:42] <Avenger> hmm, do you remember if you can swap items by trying to auto equip them?
[14:16:58] <Avenger> like you wear an armor, and drop another armor on the paperdoll
[14:17:05] <fuzzie> i'll try it
[14:17:16] <Avenger> gemrb cannot
[14:17:55] <fuzzie> if i drop on paperdoll, then it swaps, and i get the previously-equipped item in hand
[14:18:04] <fuzzie> but gemrb's inventory is broken in loads of ways :)
[14:18:19] <Avenger> this is not a serious bug, so it can wait until the release
[14:20:08] <Avenger> i get the stop sign when in group mode and targeting a hostile critter
[14:20:20] <fuzzie> the gamecontrol probably has the wrong mode set
[14:20:32] <fuzzie> there's some weird GameControlSetTargetMode stuff in the guiscript now
[14:21:12] <Avenger> ah ok, this is not group mode specific
[14:21:29] <Avenger> this is the same old stuff, which fixes itself when a spell is cast
[14:21:33] <fuzzie> yes
[14:21:54] <fuzzie> or you can just toggle pickpocket, or click on a weapon to attack and click again to go back to normal mode, etc
[14:22:07] <fuzzie> if you have a list of things you want fixed for the release, you should say
[14:22:46] <fuzzie> i intend to fix the message window, map visibility and dialog/action/trigger stuff, i guess?
[14:23:36] <SiENcE> hey fuzzie, i finally found out, when the cursor doesn't change
[14:24:25] <Avenger> haha, probably this is sience's problem too
[14:24:29] <SiENcE> if you turn fogofwar=0 and than, if you move somewhere in an area where normally is fog...the cursor doesn't change (it's always a circle with a crossedline)
[14:24:31] <fuzzie> yes
[14:24:39] <fuzzie> the FogOfWar setting is under 'Debug' in config :p
[14:24:54] <fuzzie> i'll look at that too, if it's important for performance
[14:25:05] <SiENcE> but fogofwar need a lot cpu power
[14:25:15] <SiENcE> ok thanks fuzzie
[14:25:36] <fuzzie> but i mostly intend just to keep fixing my bugs, if no-one has any specific requests
[14:26:22] <Avenger> haha, i see goblin: critical hit, then no actual damage
[14:26:26] <SiENcE> sdlaudio plugin :)
[14:26:29] <Avenger> probably because too far
[14:26:37] <SiENcE> and less ram
[14:26:46] <fuzzie> well, if you use 0.6.1, you can't complain about ram usage :)
[14:26:59] <fuzzie> oh, right, i have to fix the combat stuff before the release
[14:27:15] <SiENcE> fuzzie, yes i switch to git
[14:27:50] <fuzzie> but really no code today, i sit here with study books and irc
[14:29:22] <fuzzie> lynxlynxlynx: is "hold, silence on a party disables everyone's casting buttons" in badspells not fixed?
[14:30:54] <Avenger> will see that now
[14:31:05] <lynxlynxlynx> removed
[14:31:09] <fuzzie> thanks
[14:31:10] <Avenger> lol resisted the hold
[14:31:26] <fuzzie> oh, that is one problem with the hold stuff that i'm not sure about
[14:31:27] <lynxlynxlynx> it was just a duplicate note
[14:31:43] <fuzzie> ForceSpell(Myself,PARTY_HOLD) can be resisted if a char is immune to it
[14:31:58] <lynxlynxlynx> fuzzie: your plans are excellent
[14:32:00] <fuzzie> the game scripts don't expect this, and it doesn't happen with an identical save in the original engine
[14:32:11] <Avenger> actually, now i can move while stunned
[14:32:13] <Avenger> LOL
[14:32:23] <fuzzie> if anyone knows where the bug is (self-casting shouldn't be resisted? ForceSpell should avoid immunity?) then do tell
[14:33:03] <Avenger> there is a lot of code in the original to override self inflicted spell resistance
[14:33:16] <Avenger> basically you can do anything to yourself:)
[14:33:42] <fuzzie> Avenger: you were moving before, or you can select the held character?
[14:33:52] <Avenger> both
[14:33:55] <fuzzie> hmm
[14:34:00] <Avenger> i could move, change selection etc
[14:34:00] <fuzzie> state not set, then?
[14:34:09] <Avenger> most likely, but i seen the portrait icon
[14:34:13] <Avenger> steam mephit
[14:34:39] <fuzzie> we check IE_HELD and STATE_STUNNED | STATE_FROZEN | STATE_PETRIFIED
[14:35:57] <fuzzie> not STATE_HELPLESS but our hold effect doesn't set that anyway..
[14:35:58] <lynxlynxlynx> Avenger: for you I currently have only the clab bugs in mind: 1. we apply the class clab also for kits, 2. we don't handle dualclassed actors (only apply the fx for the new class), (the pcf one is not important). And whatever else you'll do :)
[14:36:29] <Avenger> hmm
[14:36:43] <Avenger> class clab for kits?
[14:36:44] <lynxlynxlynx> for the release i mean
[14:36:57] <Avenger> how that happens
[14:37:38] <lynxlynxlynx> JoinParty
[14:37:59] <Avenger> you mean, we apply some unneeded clab for baseclasses?
[14:38:00] <fuzzie> oh, we have to work out why polymorph anim is broken for Avenger, too
[14:38:14] <fuzzie> that should go on todo, if it's still broken
[14:38:16] <lynxlynxlynx> if the actor is kitted, it shouldn't get the baseclass clab
[14:38:26] <Avenger> hmm really?
[14:38:34] <lynxlynxlynx> yes
[14:38:37] <lynxlynxlynx> remember the names
[14:38:54] <lynxlynxlynx> clabxxx1 is for the base, the clabxxxn for the kits
[14:39:03] <Avenger> yes, i know the names
[14:39:09] <lynxlynxlynx> the paladin kits are a good example
[14:39:33] <lynxlynxlynx> one kit has no lay-on-hands as a disadvantage, so it is missing from the clab
[14:39:51] <lynxlynxlynx> now it is still granted due to two clab tables being applies
[14:39:53] <lynxlynxlynx> d
[14:40:12] <Avenger> and those that need layonhands get it from their kit clab?
[14:41:17] <fuzzie> i am glad lynx knows this stuff
[14:41:35] <lynxlynxlynx> they do, yes
[14:42:28] <lynxlynxlynx> i'll go look up the spell
[14:43:11] <lynxlynxlynx> spcl211 which is missing from clabpa03.2da
[14:43:57] <Avenger> yeah it is in clabpa02
[14:44:36] <lynxlynxlynx> 5 paladin clabs - looks like they had more kits in mind
[14:45:03] <Avenger> probably one is for fallen paladin?
[14:46:26] <Avenger> ok, i will fix this one, i think the fallen thing won't work for non-kitted guys either
[14:46:37] <Avenger> because applykit will handle only kit clabs :)
[14:46:42] <-- Avenger has left IRC (Quit: bye!)
[14:48:30] <fuzzie> the how world map thing might also be an idea
[14:48:49] <lynxlynxlynx> yeah, must be the fallen, the ranger has an extra too
[14:48:58] <lynxlynxlynx> indeed
[14:55:42] --> Avenger has joined #GemRb
[14:55:42] --- ChanServ gives channel operator status to Avenger
[14:55:49] <Avenger> i wrote 'and' instead of && in fxopcodes :)
[14:56:04] <Avenger> line 3321
[14:56:46] <fuzzie> heh
[15:03:13] <lynxlynxlynx> gcc supports it :)
[15:12:18] <fuzzie> Avenger: i wish dltcep would check weidu's return value :)
[15:14:49] <fuzzie> hm, ReputationSet doesn't work?
[15:15:41] <fuzzie> bah
[15:21:41] <lynxlynxlynx> where is that used?
[15:21:46] <fuzzie> nowhere
[15:21:51] <lynxlynxlynx> :)
[15:21:55] <fuzzie> i mean, it doesn't work in the original, i wanted to use it :P
[15:25:54] <-- SiENcE has left IRC (Quit: cya @all)
[15:27:12] <fuzzie> hehe
[15:27:15] <fuzzie> this is kinda cool
[15:27:55] <fuzzie> if you ActionOverride something like GiveGoldForce onto a held character, it runs
[15:28:07] <fuzzie> if you ActionOverride, say, MoveToObject, it only runs once they're unheld
[15:28:45] <Avenger> that's simple
[15:28:51] <Avenger> movetoobject is a blocking action
[15:28:59] <Avenger> so it delays until executable
[15:29:21] <Avenger> it tries to execute, just movement is not possible
[15:29:38] <Avenger> so ,hmm, scripts run while held?
[15:30:03] <fuzzie> i did say :P
[15:30:17] <fuzzie> just experimenting with the details
[15:30:46] <Avenger> btw, do we implement instant.ids ?
[15:30:59] <fuzzie> nope
[15:31:06] <fuzzie> that is the other reason i am testing this
[15:31:12] <fuzzie> but i can't make a difference for anything except dialogs
[15:31:32] <fuzzie> and i have an implementation for dialogs, just not committed yet
[15:31:50] <fuzzie> you think it makes a difference outside dialogs, please tell me, so i can try and make it work
[15:31:55] <Avenger> it could be loaded into the existing action struct
[15:32:10] <Avenger> just read instant.ids and set AF_<whatever>
[15:32:21] <fuzzie> i use AF_DIALOG_INSTANT atm
[15:32:26] <Avenger> cool
[15:32:44] <fuzzie> but then devSin said that the instants were used outside dialogs in iwd2
[15:33:00] <Avenger> you already read instant.ids into the structure? :)
[15:33:13] <fuzzie> yes, but i didn't commit it, it's useless if it's wrong
[15:33:53] <Avenger> well, yeah, it has a breaking potential, but if it works, it can fix some dialog specific problems
[15:33:54] <fuzzie> and iwd2 has 'dlginst.ids'
[15:34:13] <Avenger> ok, that means. it needs to be customised
[15:34:24] <fuzzie> because BIS love us
[15:34:27] <Avenger> script.2da can hold one more field
[15:35:03] <fuzzie> and 'scrinst.ids' also
[15:35:07] <Avenger> we love BIS too :)
[15:35:15] <Avenger> ok, that settles it
[15:35:22] <Avenger> they have 2 separate lists
[15:35:32] <fuzzie> well, maybe BIS just made this up for iwd2 :P maybe they're not used :P
[15:35:34] <fuzzie> it is annoying
[15:35:45] <fuzzie> i do some checks
[15:35:49] <Avenger> dlginst.ids is surely the same as bg2 instants
[15:36:02] <Avenger> look for instant in the exe
[15:36:19] <fuzzie> it has instant in the exe too, in the same place as for bg2
[15:36:26] <Avenger> shit
[15:36:31] <Avenger> they got all 3
[15:36:42] <fuzzie> yep
[15:36:50] <Avenger> ok, i don't love BIS :P
[15:37:11] <fuzzie> but instant.ids in bg2 is *not* AF_INSTANT
[15:37:17] <fuzzie> so you're right, i should probably just do it
[15:38:14] <fuzzie> but this hold thing is not so simple
[15:39:37] <fuzzie> it seems that nothing runs on the actor, while they are held
[15:39:49] <fuzzie> except, GiveGoldForce works fine
[15:41:53] <fuzzie> so now i have one of those super long test scripts..
[15:42:07] <lynxlynxlynx> maybe it's an exception because it's really party-affecting, not individual
[15:42:14] <fuzzie> but nothing on the forum is true, i think :|
[15:43:08] <fuzzie> DisplayStringHead waits until hold is over
[15:43:15] <fuzzie> and it is *not* in instant.ids
[15:43:31] <fuzzie> now i try DisplayString, which is in instant.ids
[15:44:09] <fuzzie> but the forums talk about these being executed as they are queued, which is nonsense
[15:44:57] <fuzzie> yep, DisplayString works instantyl
[15:45:06] <fuzzie> so i propose a new theory about instant.ids :)
[15:45:34] <fuzzie> maybe "if an instant action is added to an empty queue, it is executed instantly"?
[15:45:47] <Avenger> what else you thought?
[15:46:02] <fuzzie> everyone claims that instant actions are executed when added to the queue, empty or not
[15:46:03] <Avenger> a non instant surely blocks the queue
[15:46:07] <Avenger> ahh
[15:46:18] <Avenger> lol
[15:46:33] <fuzzie> that is what Continue() does
[15:46:37] <fuzzie> but that is a special case!
[15:46:59] <Avenger> see my note: http://forums.gibberlings3.net/index.php?s=&showtopic=20719&view=findpost&p=171957
[15:47:21] <fuzzie> hehe
[15:47:41] <Avenger> but don't take this as granted, it is just my 'naive' idea on how it works
[15:47:49] <fuzzie> sure, i test some more
[15:48:00] <fuzzie> this is very easy to test, i just put things in a script and see what happens
[15:48:29] <fuzzie> i just wish messages didn't confuse the order of things :(
[15:48:38] <fuzzie> i have to be very careful
[15:51:06] <fuzzie> but i think dialogs are sneaky, because they check the triggers for the next thing and *then* execute actios
[15:51:10] <fuzzie> actions
[15:52:04] <fuzzie> so everyone gets very confused because their SetGlobal "didn't run instantly"
[15:53:18] <fuzzie> some 'Smoketest' claims that the queue doesn't get cleared for instant dialog actions, will have to check that
[15:53:47] <Avenger> you better don't even tell me what you code, i will later take a peek with idapro
[15:55:12] <fuzzie> that would be good
[15:55:19] <fuzzie> this can never be anything except careful guesswork
[15:58:25] <fuzzie> i guess you worked out how cross-references work? :)
[16:01:50] <Avenger> ok lynx what do you prefer, i test the kits for 2-3 hours, or i commit the stuff and let others do the testing
[16:02:37] <fuzzie> we can always revert it :P
[16:02:47] <lynxlynxlynx> i doubt it needs that much testing
[16:03:06] <Avenger> i completely rewrote it
[16:04:30] <fuzzie> if it's broken now, i doubt it will be worse, unless it breaks original compat
[16:04:50] <Avenger> hmm the levelup didn't set the + sign on the portrait
[16:05:05] <Avenger> only after i went to a menu
[16:05:15] <lynxlynxlynx> where did you cheat the xp from window-wise?
[16:05:16] <Avenger> so, an EF_PORTRAIT is missing
[16:05:39] <Avenger> i typed SetPlayerStat on the cheat console
[16:05:44] <fuzzie> i'm a bit suspicious that your PCFs are oddly broken
[16:05:45] <lynxlynxlynx> in which window?
[16:06:01] <Avenger> SetPlayerStat(1,IE_XP, 1250000) - main game
[16:06:05] <lynxlynxlynx> ok
[16:06:10] <Avenger> not in any menu
[16:06:22] <lynxlynxlynx> because we have the inverse issue when you do level up
[16:06:26] <Avenger> but the EF_PORTRAIT shouldn't handle this equally?
[16:06:48] <lynxlynxlynx> EF_PORTRAIT is set and called, but obviously only the guirec portraitwindow is updated
[16:06:50] <Avenger> be it in any menu, ef_portrait should update the portrait window
[16:06:53] <Avenger> oh
[16:06:55] <Avenger> i see
[16:07:10] <fuzzie> that is when you're in guirec, though
[16:07:14] <lynxlynxlynx> aha
[16:07:28] <fuzzie> and the bug there is a different one: we should flag that the other portrait windows need updating too
[16:07:41] <fuzzie> but it sounds like lynx had an idea? :)
[16:08:04] <lynxlynxlynx> nope
[16:08:15] <Avenger> ok, part 1 is done, applykit is called on levelup :)
[16:08:17] <lynxlynxlynx> i'm on light fuel today
[16:08:59] <Avenger> kitclass is calculated, and got clab for kensai :)
[16:09:45] <fuzzie> ok, so where *do* we set EF_PORTRAIT?
[16:09:56] <Avenger> ok, the simplest case of single classed, fighter (kensai) works
[16:09:59] <lynxlynxlynx> looks like pcf_xp is a good candidate for it
[16:10:12] <fuzzie> yes, i guess it should go on the inside there
[16:10:23] <Avenger> ef_portrait should be set when the levelup ding is heard
[16:10:29] <Avenger> easy
[16:10:37] <lynxlynxlynx> that's where it is done
[16:10:55] <fuzzie> is it?
[16:11:27] <lynxlynxlynx> i think the strref has a sound attached, but i'll recheck
[16:11:34] <fuzzie> yes
[16:11:39] <fuzzie> but, pcf_xp has no EF_PORTRAIT
[16:11:39] <Avenger> but ef_portrait works in many cases, when a single portrait icon chances (like you get stunned)
[16:11:48] <Avenger> fuzzie: that is not needed
[16:11:58] <fuzzie> Avenger: it is
[16:12:00] <Avenger> just when you get the levelup feedback
[16:12:07] <fuzzie> that is in pcf_xp :p
[16:12:32] <lynxlynxlynx> so we all agree
[16:12:33] <Avenger> right
[16:12:43] <fuzzie> yes
[16:12:52] <fuzzie> just confused
[16:13:21] <Avenger> well, i thought you wanted to call it always, and lynx said it is done :)
[16:13:32] <fuzzie> it is a bit delicate
[16:13:35] <lynxlynxlynx> i meant that the ding is done there
[16:13:48] <fuzzie> we really need to get rid of EF_CLOSECONTAINER
[16:14:02] <Avenger> omg, there is even a callback?
[16:14:08] <Avenger> right in middle of pcf_xp?
[16:14:10] <fuzzie> this EF_ stuff is broken
[16:14:14] <Avenger> this is not good
[16:14:17] <fuzzie> you can't delay all python
[16:14:32] <fuzzie> well, you can, but then you have to actually fix the bugs
[16:14:48] <Avenger> this ef is what we have instead of messages
[16:14:50] <Avenger> :P
[16:14:54] <fuzzie> sure
[16:15:15] <Avenger> if we call python from the depths of the core, we will get smacked in the face by weird bugs
[16:15:18] <fuzzie> yep
[16:15:26] <fuzzie> but EF_CLOSECONTAINER was a hack, which doesn't work if delayed
[16:15:33] <Avenger> this call in xp already can cause a problem
[16:15:51] <fuzzie> so we should just get rid of the whole thing, again
[16:15:51] <Avenger> in checklevelup, you set the xp --> ding, infinite loop
[16:16:11] <fuzzie> sure, we should find a better way
[16:16:23] <fuzzie> maybe just make it a message?
[16:16:26] <lynxlynxlynx> there's no loop
[16:16:33] <fuzzie> lynxlynxlynx: there could be, though
[16:17:00] <fuzzie> Avenger wants the python to be "modder-friendly", so you can't just kill stuff from there
[16:17:22] <fuzzie> but it's not quite so simpl
[16:17:25] <fuzzie> e
[16:17:46] <lynxlynxlynx> i think i chose this hack so the level detection code wouldn't have to be redone in the core
[16:17:57] <fuzzie> sure, calling into python is good
[16:18:12] <fuzzie> the more game rules you hardcode into the core, the more useless it is for modders
[16:18:25] <Avenger> yes, calling is good (especially if you can't do it otherwise), just there must be some conventions
[16:18:32] <fuzzie> Avenger: are you ok leaving this until i add a proper message for it?
[16:18:34] <Avenger> like calling into python is only done in the main game loop
[16:18:41] <Avenger> yep
[16:19:01] <fuzzie> that seems the easiest solution
[16:24:54] <Avenger> ok, looks like this works
[16:25:08] <Avenger> hopefully, GetClassLevel handles inactive dual classes
[16:25:14] <Avenger> hmm, i wonder what it does
[16:25:19] <Avenger> returns 0?
[16:25:51] <lynxlynxlynx> yes
[16:26:10] <Avenger> cool
[16:26:25] <Avenger> i simplified the code, using the existing getkitindex function
[16:26:35] <lynxlynxlynx> there's also IsDualInactive()
[16:26:51] <Avenger> i don't need it now, if getclasslevel returns 0
[16:27:08] <Avenger> actually...
[16:27:28] <Avenger> when a kitted dual class becomes inactive...
[16:27:46] <Avenger> can you normally go dual if you got a kit?
[16:28:20] <Avenger> i think now we don't remove the abilities of that kit
[16:28:31] <Avenger> or class...
[16:28:34] <Avenger> so ick
[16:28:39] <fuzzie> ok, http://gemrb.sourceforge.net/wiki/doku.php?id=developers:fuzzie got a bit too big
[16:29:17] <fuzzie> (i wrote down all the stuff i had on paper)
[16:29:21] <Avenger> that list is not for this release, right?
[16:29:29] <fuzzie> 'Fixes' is for this release :)
[16:29:39] <fuzzie> but i guess probably not the IDs stuff, too invasive
[16:29:55] <Avenger> huh ok
[16:30:04] <Avenger> panic and randomwalk are very similar
[16:30:14] <fuzzie> yes, i got a copy of your irc log
[16:30:48] <fuzzie> you are welcome to implement things from the list, also
[16:30:56] <Avenger> ok, i commit this stuff, then go back to ida ;)
[16:31:01] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[16:31:01] <fuzzie> but ok :)
[16:33:06] <fuzzie> i am trying to re-memorise how you balance AVL trees and B-Trees and B*-Trees and Red/Black-Trees, it is much less fun than gemrb
[16:33:29] --> Avenger has joined #GemRb
[16:33:30] --- ChanServ gives channel operator status to Avenger
[16:33:44] <Avenger> by the way, lynx was right (i think he meant this) when he said the apply/superkit action was wrong
[16:34:01] <lynxlynxlynx> aha! :D
[16:34:17] * lynxlynxlynx does a little victory dance
[16:34:38] <lynxlynxlynx> and yes, you can dual class a kitted char
[16:34:53] <lynxlynxlynx> the new class can only be a /class/ though
[16:35:07] <fuzzie> but the clab for the class is applied, and also the kit?
[16:35:32] <lynxlynxlynx> i think the python side handles this well
[16:38:23] <lynxlynxlynx> spells cast at self shouldn't be resisted in bg2? <-- bg2 has friendly resistance - good spells ignore magic resistance
[16:43:05] <fuzzie> yes
[16:43:08] <fuzzie> but *at self*
[16:43:20] <fuzzie> and this is about immunity
[16:43:28] <fuzzie> so i'm not quite sure how it works
[16:43:42] <fuzzie> since, for example, the ring of free action disables the boots of speed
[16:43:59] <CIA-26> GemRB: 03avenger_teambg * r51f8b538c9ff 10gemrb/gemrb/core/ (4 files in 3 dirs):
[16:43:59] <CIA-26> GemRB: 1. fixed clab handling, also paladin/ranger fall (mostly)
[16:43:59] <CIA-26> GemRB: 2. call ReinitQuickSlot on joining (should fix jaheira's quickslots)
[16:44:12] <fuzzie> but Avenger said earlier that the original engine has loads of self checks, so i'm going to assume the bug is there for now
[16:44:34] <lynxlynxlynx> could a bug in our effect if the original didn't disable it with free action
[16:44:44] <fuzzie> no, sorry, just discussing original
[16:44:48] <lynxlynxlynx> that particular "haste" is a special type
[16:45:07] <lynxlynxlynx> so where's the problem?
[16:45:09] <fuzzie> my main issue is ForceSpell(Myself, HOLD_PARTY)
[16:45:31] <fuzzie> but it's possible that one isn't a bug, so it is not a good test case
[16:45:43] <Avenger> does that use some unique targeting?
[16:45:48] <fuzzie> i'll have to dig out the better examples
[16:45:48] <lynxlynxlynx> if it was meant to be autoresisted, why had it been added?
[16:47:16] <fuzzie> but i don't know anything about this
[16:47:20] <fuzzie> there's no spell flags for this?
[16:47:38] <fuzzie> whenever i open a spell in DLTCEP there are all these unknown fields full of stuff :)
[16:47:58] <fuzzie> Avenger: btw igi on forums claimed that the simplified duration bit was set on a bunch of bg2 HLAs, any idea what it means if true?
[16:48:47] <Avenger> yes
[16:48:52] <Avenger> nonmagical ability
[16:49:03] <Avenger> isn't hindered by dead magic, spell failure
[16:49:17] <lynxlynxlynx> KIT_BARBARIAN is missing in the diff
[16:49:35] <fuzzie> ok. gemrb's 0x40 is some hack?
[16:49:44] <Avenger> lynx: it is not needed, i use the baseclass define
[16:50:01] <fuzzie> ah yes, i see it in SPLImporter
[16:50:24] <lynxlynxlynx> oh right, i misread
[16:50:31] <Avenger> fuzzie: wha... i already implemented something about this?
[16:50:42] <lynxlynxlynx> i'm pretty nervous about changing getkitindex though
[16:51:02] <Avenger> oh thats great
[16:51:42] <lynxlynxlynx> it should also affect how we handle disablebutton for innates
[16:51:50] <fuzzie> Avenger: yes, looks fine, except i guess you need to change SF_HLA to SF_NONMAGICAL :)
[16:52:01] <fuzzie> oh, i guess that is in the comment
[16:52:01] <Avenger> yes
[16:52:05] <fuzzie> never mind then, all done!
[16:52:17] <lynxlynxlynx> need to try tenser's transformation with an appropriate class in the original first though
[16:52:26] <Avenger> yeah, i rock :P
[16:52:52] <Avenger> sometimes i rediscover stuff, it seems.
[16:53:53] <Avenger> btw, i think once i knew that fallen rangers/paladins got their own kits
[16:54:47] <CIA-26> GemRB: 03lynxlupodian * r27e143a86b33 10gemrb/gemrb/core/Scriptable/Actor.cpp: fixed compilation with gcc
[16:54:51] <Avenger> either that, or the hardcoded clab resources in the engine handle that
[16:55:11] <Avenger> haha, my gcc didn't complain
[16:55:24] <Avenger> oh shit, it did
[16:56:27] <-- Avenger has left IRC (Quit: bye!)
[17:02:03] <lynxlynxlynx> single classes and kits are created fine :)
[17:04:21] <lynxlynxlynx> multis too
[17:23:54] <lynxlynxlynx> unrelated, but we don't update the action bar when dualclassing, so modal actions can be missing
[17:24:15] --> SiENcE has joined #GemRb
[17:27:22] --> Maighstir_laptop has joined #GemRb
[17:39:52] <lynxlynxlynx> we don't remove the old kit innates when dualclassing
[17:45:05] <lynxlynxlynx> but other than that, it appears perfect
[17:45:33] <fuzzie> :)
[17:46:49] <lynxlynxlynx> use any item works on a kensai/thief too :)
[17:47:13] <CIA-26> GemRB: 03avenger_teambg * r72a3ba26791a 10win32/MSVC6/GemRB/ (core/Core.dsp plugins/GUIScript/GUIScript.dsp): updated msvc6 project files
[17:47:22] <lynxlynxlynx> must be a kickass combo
[17:55:08] <lynxlynxlynx> looks like we already have code for ability removal when dualclassing
[17:56:38] --> D_T_G has joined #GemRb
[18:00:11] --> Avenger has joined #GemRb
[18:00:11] --- ChanServ gives channel operator status to Avenger
[18:00:30] <-- D_T_G has left IRC (Quit: D_T_G)
[18:01:20] <lynxlynxlynx> huh, now i get a runtime error on the same procedure
[18:06:03] <lynxlynxlynx> ah, found the bug
[18:06:36] <lynxlynxlynx> we just don't check if the spell is known - since the clabs are repeating them, they can get removed in previous columns/levels
[18:15:33] <Avenger> hmm, removespell breaks if there is no such spell?
[18:16:04] <Avenger> there is also an opcode for that, i wonder if that breaks too
[18:16:08] <lynxlynxlynx> i haven't found the exact reason yet, but it's not as simple as i had thought
[18:16:58] <lynxlynxlynx> don't worry about it
[18:19:16] --> edheldil_ has joined #GemRb
[18:34:14] <Avenger> anyone can confirm that EA=7 is charmed? not EA=6
[18:36:25] <Avenger> i think i hit a vein again. I see lots of stat/state checks that affect mobility/selection etc
[18:36:38] <fuzzie> cool, those would be really helpful
[18:36:51] <lynxlynxlynx> it's 6 in the ids file
[18:38:00] <Avenger> yes lynx that's my problem
[18:38:03] <fuzzie> i seem to remember that this ea marked as 'CHARMED' isn't used at all
[18:38:06] <Avenger> the exe seems to think it is 7
[18:38:21] <fuzzie> you see it being set somewhere, Avenger?
[18:38:22] <Avenger> we should use 7 internally
[18:38:33] <lynxlynxlynx> it is used
[18:38:39] <Avenger> yes, in all charm code and all checks, now this immobile stuff
[18:38:58] <fuzzie> lynxlynxlynx: you're sure?
[18:39:06] <Avenger> as far as i see charm sets ea to 7 or 254
[18:39:06] <lynxlynxlynx> grep for it
[18:39:12] <Avenger> 254 is charmed_pc
[18:39:15] <fuzzie> lynxlynxlynx: in what?
[18:39:21] <Avenger> dialogs?
[18:39:24] <lynxlynxlynx> iwd2 and bg2 both have it in scripts
[18:39:33] <Avenger> ah scripts, well grep...
[18:39:35] <fuzzie> which scripts?
[18:39:47] <fuzzie> sorry, i grepped and i see none
[18:39:53] <Avenger> i know there is one charm specific stuff in nalia's keep
[18:39:54] <lynxlynxlynx> scripts/bg2/meliss0*.baf scripts/bg2/gensht01.baf scripts/bg2/chalrv01.baf
[18:40:16] <lynxlynxlynx> oh andscripts/bg2/pguild.baf
[18:40:44] <lynxlynxlynx> but since this is decompiled, is it reliable at all if the ids is wrong?
[18:41:02] <fuzzie> well, difficult
[18:41:08] <fuzzie> they check CONTROLLED and etc too
[18:41:19] <lynxlynxlynx> there's also a CHARMED_PC
[18:41:31] <Avenger> where lynx? only in iwd2 i see it
[18:41:40] <lynxlynxlynx> me too
[18:41:43] <Avenger> in bg2 it is used internally but not in ea.ids
[18:41:54] <Avenger> but 6 is not set anywhere
[18:42:03] <Avenger> i truly wonder how this works
[18:42:20] <fuzzie> um
[18:42:22] <fuzzie> which field is EA, again?
[18:42:28] <lynxlynxlynx> most things check the state though, so it could just be bitrot
[18:42:45] <fuzzie> oh, first. then, i see no checks for [7].
[18:45:24] <fuzzie> devSin implies that 5 is used for enemies and 254 for good
[18:45:36] <fuzzie> or 255?
[18:46:11] <fuzzie> but i see nothing in the mods, so i have no idea
[18:46:18] <lynxlynxlynx> 255 is enemy
[18:46:59] <Avenger> 254 is also enemy, lynx, anythinf over evilcutoff is 'evil'
[18:47:21] <Avenger> that is they are normally attacking you
[18:47:31] <lynxlynxlynx> definitely not good
[18:47:51] <Avenger> fuzzie: insist that 7 and 254 are used, in ToB :)
[18:48:00] <Avenger> i mean, i insist :)
[18:48:01] <fuzzie> Avenger: you see them being *set*?
[18:48:06] <Avenger> yes, all over
[18:48:24] <fuzzie> i know that there are unused checks in there
[18:48:33] <fuzzie> but if you see them being set, i don't see how we can argue :)
[18:48:43] <Avenger> 00503DC7
[18:48:58] <Avenger> mov al,[00AA5D12]
[18:49:23] <Avenger> well, if that's true, then 'theoretically' any script that uses CHARMED, is broken
[18:49:37] <Avenger> like that melissan script
[18:49:46] <Avenger> though you can hardly charm melissan
[18:49:52] <lynxlynxlynx> maybe they patched it later
[18:49:58] <Avenger> it is probably an useless check
[18:50:22] <Avenger> i got all fixpack exepatch etc
[18:51:30] <lynxlynxlynx> it isn't checking her though
[18:51:34] <fuzzie> Avenger: what is [00AA5D12]?
[18:51:44] <Avenger> it is 7, of course :)
[18:51:49] <fuzzie> where is it set?
[18:51:56] <fuzzie> or is it only referenced there?
[18:51:58] <Avenger> it is a constant
[18:52:06] <Avenger> no it is referenced from many places
[18:52:09] <fuzzie> ok, let me look
[18:52:15] <Avenger> the alignment constants are in one pile
[18:52:26] <Avenger> the 6 before 7 is never accessed
[18:52:40] <Avenger> err not alignment, ea :)
[18:53:01] <lynxlynxlynx> but they could all be checked in a loop, no?
[18:53:03] <Avenger> as a rule of thumb, they keep similar consts together, it helps a lot
[18:54:15] <Avenger> intox affects luck?
[18:54:35] <Avenger> i just see that code :)
[18:54:53] <lynxlynxlynx> http://iesdp.gibberlings3.net/files/2da/2da_tob/intoxmod.htm
[18:54:59] <Avenger> looks like this is the code for derived stats, and handling overlays, immobility etc
[18:55:26] <Avenger> cool, so i should hit morale next
[18:56:57] <Avenger> and yess :)
[18:57:02] <Avenger> btw, bless affects morale
[18:57:27] <fuzzie> hmm
[18:57:52] <lynxlynxlynx> the description says +1 on saves against fear effects
[18:57:57] <Avenger> morale has a ceiling of 20, dunno if we set it
[19:00:23] <Avenger> now checking fatigue/fatigmod, it also modifies luck
[19:00:34] <Avenger> heh, that is their generic stat for everything
[19:00:55] <fuzzie> sure
[19:01:04] <fuzzie> did you see the list of things in pst which luck modifies?
[19:01:23] <fuzzie> and the list of things which luck modifies in pst, also huge
[19:02:50] <lynxlynxlynx> 1 and 1
[19:03:25] <Avenger> the problem is, they modify different things :)
[19:04:12] <Avenger> btw, fuzzie, i looked at code on 8ec1ca
[19:04:20] <Avenger> it is big
[19:05:40] <Avenger> its something like our update cycle, i don't see if it applies the effects, though, but it handles the derived stats
[19:10:34] <Avenger> oh, we got regeneration based on constitution in tob?
[19:10:46] <Avenger> hpconbon has a column
[19:11:04] <Avenger> this cycle applies heal effects based on that time :)
[19:13:14] <fuzzie> we don't even set the dialog files right in tob :P
[19:13:21] <fuzzie> maybe you have an idea how to do that
[19:13:27] <lynxlynxlynx> we use only parts of hpconbon
[19:13:30] <fuzzie> we have to lookup different columns in tob, with '25' in them
[19:13:39] <fuzzie> i'm not sure how to implement that in a way which isn't hardcoded
[19:15:15] <fuzzie> (for pdialog, interdia, maybe some others)
[19:25:17] <Avenger> is there a bard kit that has some lore bonus?
[19:25:51] <Avenger> i just see lots of activity about bard class and some kit combo
[19:26:22] <fuzzie> meh
[19:26:57] <fuzzie> if i set a write breakpoint in ida on that 7, it keeps suspiciously crashing in unrelated code just before some charm happens
[19:27:12] <Avenger> write?
[19:27:23] <lynxlynxlynx> the blade gets lower lore
[19:27:38] <Avenger> ah lower, ok, this is ugly hardcoded of course
[19:29:28] <fuzzie> Avenger: well, was just curious if something simply changed the value :)
[19:29:31] <fuzzie> but it doesn't seem so
[19:29:40] <fuzzie> but then, how often is 0 used in charm?
[19:29:43] <fuzzie> is it ever?
[19:30:06] <Avenger> it is the normal charm no?
[19:30:26] <Avenger> you say the other charm code is using 6?
[19:30:45] <Avenger> i mean, 6 for ea
[19:30:53] <fuzzie> no
[19:30:55] <fuzzie> i don't think anything uses 6
[19:31:52] <Avenger> lynx, blade's usability flags are : 200000h, i guess :)
[19:32:26] <Avenger> yeah
[19:32:29] <Avenger> good
[19:32:47] <fuzzie> i'm just not sure 7 is ever used either
[19:33:51] <fuzzie> i mean, i don't argue your use of the disassembly
[19:34:01] <fuzzie> i just think: this really doesn't matter because nothing ever uses the effect like that
[19:35:42] <Avenger> fuzzie, do you know what this assembly sequence do: - cdq; sub eax, edx
[19:36:06] <fuzzie> it is a common true/false check i think
[19:36:14] <fuzzie> it checks for .. negativity?
[19:36:43] <fuzzie> (cdq sets edx to -1 if eax is negative, or 0 if eax is positive)
[19:36:50] <Avenger> 00638A2B
[19:37:24] <Avenger> ok, so this is almost irrelevant
[19:37:38] <Avenger> it is for halving negative numbers
[19:43:46] <fuzzie> yes, i don't see EA==7 in-game
[19:44:51] <fuzzie> but IDA exploded somewhere in the DirectX code, so i killed the VM, but i guess there are EA values of 5 and 254 in other branches?
[19:45:18] <fuzzie> it would be nice to have that documented, if you understand it, anyway
[19:45:52] <fuzzie> otherwise it just gets forgotten about and gemrb keeps setting incorrect IE_CHARMED/ values forever
[19:46:16] <Avenger> oh you see 5 someplace?
[19:46:53] <fuzzie> i see 5 in notes, but now i can't check, you surely can :)
[19:48:02] <Avenger> 5 is controlled
[19:48:07] <lynxlynxlynx> part of the kit problem is that we don't set the Source for the effects
[19:48:16] <fuzzie> but i see it checks 00AA5D13, 00AA5D12, 00AA5D1C and 00AA5D1B so those are surely all >=7
[19:48:37] <fuzzie> and i assume 00AAD1C4 and 00AAD1CB are for some other stat
[19:49:23] <Avenger> aa5d12 is 7
[19:49:54] <Avenger> aa5d11 would be 6
[19:50:10] <Avenger> but that is not used anywhere, it is correct, either 5 or 7 is used for charming npcs
[19:50:12] <fuzzie> i think we well-established that 6 isn't set
[19:50:23] <fuzzie> devSin agrees with that, too
[19:50:38] <Avenger> i can think of only one thing: 6 works for 5 and 7 :)
[19:50:48] <Avenger> when matching with scripts
[19:50:59] <fuzzie> i doubt the scripts work
[19:51:05] <Avenger> that could be too
[19:51:37] <fuzzie> but this 7 is set in the param2==0 branch, no?
[19:52:11] <fuzzie> so it's not interesting anyway
[19:52:25] <lynxlynxlynx> any objections to a EffectQueue::SetSource which would set the source of all the effects it contains?
[19:52:41] <lynxlynxlynx> so Interface::ApplySpell can use it
[19:55:16] <fuzzie> hm
[19:55:27] <-- Avenger has left IRC (Ping timeout: 248 seconds)
[19:55:37] <fuzzie> why in ApplySpell?
[19:56:36] <lynxlynxlynx> because it has the resref
[19:56:51] <lynxlynxlynx> and that's what GemRB_RemoveEffects uses
[19:57:08] <fuzzie> the spell name is invalid?
[19:57:15] <lynxlynxlynx> missing
[19:57:19] <fuzzie> it just seems that it does GetSpell(resname)
[19:57:35] <fuzzie> and so your effects should already be fine
[19:57:43] <lynxlynxlynx> but they aren't
[19:57:53] <lynxlynxlynx> dumping the queue shows none of them have Source set
[19:57:56] <fuzzie> so just wondering if you think this is intended behaviour
[19:58:21] <fuzzie> are these TARGET_SELF?
[19:58:38] <lynxlynxlynx> i made a patch suggestion a while ago that added Source, SourceType and SourceFlags setting everywhere (for selective magic resistance)
[19:59:00] <lynxlynxlynx> but it wasn't too pretty since a lot of callers would need to be adjusted
[19:59:16] <lynxlynxlynx> they are yes or applied as such
[20:02:12] <fuzzie> sorry, i'm just wondering about the logic here
[20:02:22] <lynxlynxlynx> so maybe it would be better to change GetEffectBlock or the other ApplyEffect
[20:02:26] <fuzzie> as in, why would Source not be set on these?
[20:03:34] <lynxlynxlynx> good question, i see now that the importer does set it
[20:04:07] <fuzzie> so this is what worries me, i traced the logic and it all looks ok
[20:05:46] <fuzzie> GetEffect *does* overwrite the Source
[20:05:59] <fuzzie> but this is why the memcpy
[20:09:10] <fuzzie> so, weird
[20:11:46] --> Avenger has joined #GemRb
[20:11:47] --- ChanServ gives channel operator status to Avenger
[20:13:20] <lynxlynxlynx> maybe the effect importer is run afterwards - it sets the source too
[20:14:03] <fuzzie> the GetEffect stuff is only called before that memcpy in SPLImporter, as far as i can see
[20:16:18] <fuzzie> which spell are you looking at?
[20:16:36] <lynxlynxlynx> it's wierd, it works now
[20:16:45] <lynxlynxlynx> and i only added prints everywhere
[20:17:38] <fuzzie> well, fx_apply_effect doesn't copy the field
[20:17:58] <fuzzie> so i'm wondering if you just happened to hit on opcodes which used that or something
[20:18:27] <lynxlynxlynx> these are innates from the clabs
[20:18:47] <lynxlynxlynx> kensai, so most probably no
[20:19:52] <lynxlynxlynx> this is wierder in gdb
[20:20:44] <lynxlynxlynx> somehow the dualclassing succeeds and then i get the wrong clabs, this time with proper source
[20:21:13] <lynxlynxlynx> run plainly it always breaks in python
[20:21:22] <fuzzie> run with valgrind?
[20:21:47] <lynxlynxlynx> tommorow
[20:21:51] <fuzzie> ok
[20:21:57] <lynxlynxlynx> but we clearly have a source bug
[20:22:30] <lynxlynxlynx> all these kit abilities were granted by the core or by the script or both and when i load the save it is clear none of the sources were saved
[20:23:02] <fuzzie> well, saving is a different story
[20:24:57] <Avenger> hmm fighter/mage/cleric dual (trio) class is not possible?
[20:25:04] <lynxlynxlynx> i wasn't able to discover the reason of the bug i started to explore :(
[20:25:17] <lynxlynxlynx> always a cascade huh
[20:25:28] <Avenger> oh i see none of the trios are allowed
[20:27:47] <fuzzie> act->fxqueue.AddEffect( &fx ); // FIXME: don't reroll dice, time, etc!!
[20:27:50] <fuzzie> ^- this is not so good?
[20:27:51] <-- lynxlynxlynx has left IRC (Read error: Connection reset by peer)
[20:28:18] <Avenger> dunno fuzzie
[20:28:59] <fuzzie> complicated :(
[20:29:38] <Avenger> hehe, maybe i messed up some memory for lynx?
[20:32:05] <fuzzie> meh, we lose all kinds of effect information sometimes
[20:40:29] <fuzzie> ok, sleep time
[21:01:39] <-- SiENcE has left IRC (Quit: cya @all)
[21:11:46] --> pupnik has joined #GemRb
[21:12:24] <pupnik> howizters it going?
[21:32:08] <fuzzie> hm, not so sleep time :(
[21:32:10] <fuzzie> hi pupnik
[21:42:18] <Avenger> bye
[21:42:31] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[21:54:40] <-- micru has left IRC (Remote host closed the connection)
[22:48:35] <-- Maighstir_laptop has left #GemRb
[23:24:19] --> nickdaly has joined #GemRb