#gemrb@irc.freenode.net logs for 31 Jul 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:02:28] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[00:21:25] <CIA-26> GemRB: 03avenger_teambg * r448f9a2144b4 10gemrb/gemrb/core/ (4 files in 3 dirs):
[00:21:25] <CIA-26> GemRB: fixed PlayDead interruptable (fixes bg2 starting cutscene)
[00:21:25] <CIA-26> GemRB: fixed xp for kills (ClearActions cleared LastHitter, which is needed for XP)
[00:21:25] <CIA-26> GemRB: fixed lightlevel check for Infravision
[00:21:25] <CIA-26> GemRB: added CloseContainerWindow event flag for safer gui callback
[03:11:43] --> budlust has joined #GemRb
[03:56:31] <-- budlust has left IRC (Ping timeout: 248 seconds)
[03:59:54] --> budlust has joined #GemRb
[04:30:36] <-- budlust has left IRC (Ping timeout: 252 seconds)
[04:32:33] --> budlust has joined #GemRb
[04:37:45] <-- budlust has left IRC (Ping timeout: 252 seconds)
[04:39:38] --> budlust has joined #GemRb
[04:41:55] <-- wjp has left IRC (*.net *.split)
[04:44:38] --> wjp has joined #GemRb
[05:33:22] --> raevol has joined #GemRb
[05:51:31] <-- budlust has left IRC (Ping timeout: 240 seconds)
[05:53:58] --> budlust has joined #GemRb
[06:14:32] <-- budlust has left IRC (Ping timeout: 265 seconds)
[06:16:20] --> budlust has joined #GemRb
[06:43:18] <-- Maighstir_laptop has left #GemRb
[07:08:30] --> lynxlynxlynx has joined #GemRb
[07:08:30] --- ChanServ gives channel operator status to lynxlynxlynx
[07:58:02] <-- raevol has left IRC (Quit: Leaving.)
[08:21:29] --- ChanServ gives channel operator status to wjp
[08:51:33] --> Avenger has joined #GemRb
[08:51:39] --- ChanServ gives channel operator status to Avenger
[08:59:10] <-- Avenger has left IRC (Quit: bye!)
[08:59:29] --> Avenger has joined #GemRb
[08:59:31] --- ChanServ gives channel operator status to Avenger
[09:01:10] <fuzzie> hi
[09:01:17] <Avenger> hello
[09:03:31] <CIA-26> GemRB: 03avenger_teambg * r9b861c74a98a 10gemrb/gemrb/core/Interface.cpp: fixed autoequipping weapons (they went to helmet), and amber earring (reported 'no ability')
[09:03:44] <Avenger> just another thing to remember: CanUseItemType returns the slot type in a bitfield, setting the return value to 1 is wrong :)
[09:04:42] <Avenger> i guess we need more documentation, these things are always get lost
[09:07:30] <fuzzie> any code about slots is confusing :)
[09:12:04] <Avenger> that code is gemrb specific too, so you cannot just 'look it up in the original'
[09:13:33] <Avenger> i saw some weapon quickslots disappearing from the record window. I don't know if it was a wrong save or whatever. But i thought i fixed that already
[09:13:54] <Avenger> one question: do you remember how many weapon slots Minsc has?
[09:13:59] <Avenger> i see only 3
[09:14:03] <fuzzie> yes
[09:14:18] <fuzzie> only 3, i thought
[09:14:26] <fuzzie> yes, definitely only 3
[09:14:35] <fuzzie> (i have original bg1+bg2 both open here)
[09:14:42] <Avenger> that's good. When i said i see them disappearing, it was 0 :D
[09:14:52] <fuzzie> that is not so good :)
[09:15:06] <Avenger> yeah, that was definitely wrong, i just couldn't reproduce it
[09:15:29] <fuzzie> i hadn't realised that CantUseItem code was new, by the way
[09:15:39] <fuzzie> i just opened some savegame and found the ring of wizardry by chance
[09:15:53] <Avenger> ah, i thought you looked for it
[09:15:58] <fuzzie> i should pay more attention to commits
[09:16:45] <Avenger> the code wasn't new, just the part in it that handles the ring of wizardry
[09:17:16] <Avenger> and the part that looks for usable item headers is relatively new too
[09:17:26] <Avenger> that was what i had to fix now
[09:17:31] <fuzzie> i don't suppose you know how gem charges are meant to work?
[09:17:41] <Avenger> gem charges?
[09:17:56] <Avenger> well, gems work without any extended header
[09:18:04] <Avenger> it is just a bg1 hack, i think
[09:18:09] <fuzzie> sometimes they have 0 charges in the ARE entry, 0 charges in any extended header, and 0 charges in saved games
[09:18:12] <Avenger> maybe it works even in bg1 without extended header
[09:18:42] <fuzzie> lynx just forced them to 1 charge, but i wondered if you knew any more
[09:18:50] <Avenger> defaulting to 1 is fine, if the item has 0 max/actual charges
[09:19:07] <fuzzie> ok, good
[09:19:09] <Avenger> i think that's what the original does, but i didn't find the code yet
[09:20:09] <Avenger> ok, starting a new game: all quickslots are gone, :(
[09:20:12] <fuzzie> not so important, it works fine for us
[09:20:35] <Avenger> and not even for new chars, imoen is slotless too
[09:21:17] <fuzzie> well, you just sabotaged the SLOT_INVENTORY case?
[09:21:37] <Avenger> where?
[09:21:51] <fuzzie> sorry, that is not relevant
[09:21:58] <fuzzie> i just look at CanUseItemType
[09:22:04] <Avenger> that slot inventory case was already in the beginning of the function
[09:22:19] <Avenger> i just commented it out from the end, because that part did more harm than good
[09:22:51] <Avenger> the slot inventory case was handled earlier, and the slot_any case needed the rest of the checks too
[09:22:58] <Avenger> and setting ret = 1 was the top of madness
[09:23:01] <fuzzie> where is it handled?
[09:23:24] <Avenger> slot_any is masked out by the actual item flags
[09:23:38] <fuzzie> i mean, if i pass SLOT_INVENTORY
[09:23:48] <Avenger> isn't it in the beginning?
[09:23:59] <fuzzie> no, that checks for SLOT_ANY
[09:24:03] <Avenger> oop
[09:24:59] <Avenger> that makes the jail cell key red...
[09:25:01] <Avenger> hmm
[09:25:59] <fuzzie> i guess lynx's fix is no good, it does't work for items without extended headers
[09:26:22] <Avenger> the charge fix?
[09:26:48] <fuzzie> that Button thing is a terrible hack :)
[09:26:51] <fuzzie> yes, the charge fix
[09:27:10] <fuzzie> it's already marked with 'HACK', will look later
[09:31:21] <lynxlynxlynx> well, the goal was to fix gems, which it accomplishes
[09:31:28] <fuzzie> it doesn't
[09:31:40] <fuzzie> still broken for some
[09:31:49] <fuzzie> otherwise i wouldn't care :)
[09:32:03] <Avenger> lynx: if you remove the header from gems, they work in the original game
[09:32:29] <lynxlynxlynx> too bad
[09:32:32] <fuzzie> just got to add some 'or perhaps this is the first charges and we don't have a header' check to the if statement surrounding your code
[09:32:57] <fuzzie> maybe that makes it more hackish but if it works :)
[09:33:13] <fuzzie> morning, too!
[09:35:41] <fuzzie> i think i'm pretty much giving up on the hardest exam of that exam week, not well enough to manage so many in a row, which i guess means more time for gemrb
[09:36:54] <Avenger> huh, i hate this
[09:37:08] <Avenger> when my protagonist is stunned, no one can cast
[09:37:09] <Avenger> grr
[09:38:01] <fuzzie> we should just go through and remove the stupid Immobile() checks
[09:38:16] <fuzzie> too many things call ValidTarget, and then they get 'false' from the Immobile()
[09:38:40] <Avenger> that's fine, but why imoen cannot cast when charname is frozen
[09:38:56] <Avenger> there is some stupid confusing of actors i couldn't find
[09:39:27] <Avenger> the steam mephit is tough this way :)
[09:39:32] <fuzzie> it isn't fine, it breaks lots of things :P maybe not this
[09:39:55] <Avenger> invisibility is not honored i think
[09:40:03] <fuzzie> it is not
[09:40:07] <Avenger> when i'm invis, i still get detected by nasties
[09:40:35] <Avenger> and skull trap stopped to work :(
[09:40:39] <Avenger> i'm sure it worked at one point
[09:40:44] <fuzzie> the [PC] style matching has to honour invis
[09:40:46] <Avenger> maybe i just messed with the .pro
[09:41:08] <fuzzie> i guess i should rewrite that code today
[09:41:19] <Avenger> lol, attack animation sequences are all barehanded?
[09:41:34] <fuzzie> did you fix CanUseItemType yet? :p
[09:41:51] <Avenger> other than the red coloring of the key i see nothing wrong
[09:42:20] <fuzzie> anyway, i intend to remove Immobile from the top of ValidTarget
[09:43:20] <Avenger> huh, autoattacking enemies 3 walls away is annoying too
[09:43:23] <fuzzie> actually, i have to do that, it breaks every caller
[09:43:54] <fuzzie> that is also [PC] matching :|
[09:44:05] <fuzzie> scripts trust the engine to do the right thing for the right kind of matching
[09:44:47] <fuzzie> and gemrb just does "oh, we only need one matching function!" :) so i guess i'll split it
[09:45:24] <fuzzie> there's no obvious bug for the casting thing though
[09:45:27] <Avenger> yes, maybe that works, but please think about all cases
[09:45:29] <fuzzie> what happens when you try to cast?
[09:45:40] <Avenger> the casting button doesn't work, it seems locked
[09:45:45] <Avenger> it isn't grayed
[09:45:47] <Avenger> it is locked
[09:47:00] <Avenger> then there is this odd targeting problem
[09:47:19] <fuzzie> where you get a circle with a line through it?
[09:47:28] <Avenger> now when i move the mouse over an enemy, the cursor changes to invalid target
[09:47:37] <fuzzie> that is the stupid ValidTarget code
[09:48:05] <Avenger> but no one seems to be immobile
[09:48:30] <fuzzie> usually you can fix it by changing ui screens
[09:48:34] <fuzzie> i think the gamecontrol gets confused
[09:48:42] <Avenger> yes
[09:48:47] <Avenger> i'm afk a bit
[09:53:18] <fuzzie> ok, someone hacked SetupSpellIcons to take globals() without updating the comment? :)
[10:00:15] --> SiENcE has joined #GemRb
[10:12:28] <Avenger> maybe
[10:12:53] <Avenger> i don't remember touching any globals() :) i don't even know what is that
[10:13:44] <Avenger> the targeting gets fixed by casting a spell, so this is an UI problem
[10:13:56] <Avenger> somehow the targeting mode gets stuck
[10:16:40] <Avenger> when an actor dies offscreen, and you hover the cursor over them, it remains 'attack' as default action
[10:17:19] <Avenger> this may be because their scripts didn't run at the moment of death
[10:17:47] <Avenger> this is one more vote for the death opcode message
[10:18:13] <Avenger> when they get damaged, their scripts should go activated, and in the next run, the death opcode kicks in
[10:24:14] <fuzzie> oh, sure
[10:24:23] <fuzzie> i guess i should just hack in messages for that
[10:24:31] <fuzzie> is there a death opcode, or just fx_death?
[10:25:22] <fuzzie> the real problem is: scripts keep running *after* death
[10:25:30] <fuzzie> so we should stop destroying corpses
[10:26:08] <Avenger> we destroy corpses?
[10:26:19] <fuzzie> yes
[10:26:36] <Avenger> only after a chunky death, no?
[10:26:38] <fuzzie> we treat the 'no corpse' flag as 'corpse should be deleted'
[10:26:46] <fuzzie> i mean, 'actor should be deleted'
[10:27:01] <Avenger> that is a rare event
[10:27:08] <fuzzie> it isn't that rare
[10:27:12] <fuzzie> it is annoying
[10:27:36] <fuzzie> we should probably not delete actors after chunky death either, that would fix original engine bugs
[10:27:41] <fuzzie> but anyway
[10:27:46] <fuzzie> is there a message for death?
[10:27:58] <Avenger> just apply the effect
[10:28:01] <fuzzie> i just implemented it using fx_death in my local code, is that wrong?
[10:28:10] <Avenger> no, that's perfect
[10:28:16] <fuzzie> i guess i should commit that bit, it doesn't work for scriptables but who cares :)
[10:28:20] <Avenger> err, if you use the effect apply code
[10:28:48] <Avenger> static EffectRef fx_death_ref ....
[10:28:59] <fuzzie> well, i make a new message with an EffectRef
[10:29:05] <Avenger> newfx = EffectQueue::CreateEffect(fx_death_ref, etc
[10:29:07] <fuzzie> and then the message applies the effect
[10:29:33] <Avenger> that's how the original does. it has ~100 messages, one of them is applying an effect
[10:29:47] <Avenger> we don't really need messages, applying an effect IS like a messag
[10:29:49] <Avenger> message
[10:30:04] <Avenger> it will execute in the next ai cycle
[10:30:16] <fuzzie> last time i tried, the effects get their first apply when you apply them, sometimes
[10:30:37] <fuzzie> it's like the recursive RefreshEffects i was complaining about
[10:30:41] <Avenger> hmm, actually, you are right
[10:31:00] <fuzzie> but we need messages for 'clear actions' and cutscenes and some other things i forgot
[10:31:12] <Avenger> the first apply happens immediately
[10:31:43] <Avenger> well, the original has a message to apply effects :)
[10:32:04] <Avenger> and that part is used outside of multiplayer too
[10:32:17] <Avenger> in many cases messages are just to update the client sides
[10:32:28] <Avenger> they do something, and they do 'message(something)'
[10:32:41] <fuzzie> i would like to make multiplayer work too :p but a long way away
[10:32:57] <Avenger> about 90% of the messages just replicates what they did earlier directly
[10:33:41] <fuzzie> i only tried implementing 'apply effect', 'clear actions' and cutscenes
[10:33:56] <fuzzie> if you have anything else where the single-player code is done only by the message, i would like to hear :)
[10:34:17] <Avenger> yes, it should be mapped out
[10:34:31] <Avenger> if it does something just by messages, it has a good reason :)
[10:34:51] <Avenger> i just say, we don't really have to do everything like that
[10:35:17] <Avenger> triggers: maybe. My triggers are tricky, but they cannot handle multiple of the same kind
[10:35:39] <Avenger> the original has trigger messages
[10:35:54] <Avenger> and a list
[10:36:55] <fuzzie> well, this is why i was asking about triggers yesterday
[10:36:55] <Avenger> though i'm unsure how that is implemented, because the objects are single instances (but not globalID)
[10:37:09] <fuzzie> some scripts fail because we wipe the triggers before they see them
[10:37:13] <Avenger> our trigger objects (heard, etc) are global ids
[10:37:32] <Avenger> their objects are full targeting ids
[10:37:50] <Avenger> i don't quite see why, though
[10:37:58] <fuzzie> i think Taimon had some information about that
[10:38:12] <fuzzie> it was just easier to do it that way in their code, maybe
[10:38:59] <Avenger> well, it eats lots of memory, a single creature in the ie eats up 0x6774 bytes
[10:39:11] <Avenger> and that is just the static part
[10:39:46] <Avenger> a single trigger object is ~32 bytes, iirc or maybe just 28
[10:40:01] <fuzzie> but their IE runs in a quarter of the memory of gemrb :)
[10:40:16] <Avenger> and they keep around ~10 objects just for the fun, no one seems to use those
[10:40:34] <Avenger> tile caching
[10:40:44] <Avenger> that makes a difference
[10:40:45] <fuzzie> even with tile caching set to 100%
[10:41:18] <fuzzie> our area loading doesn't help, as i said before
[10:41:30] <Avenger> i'm not even sure they load the complete dialog.tlk
[10:41:38] <Avenger> it has a header with offsets to all text
[10:41:45] <Avenger> so i think they just load the header
[10:41:53] <fuzzie> but the phones people play gemrb on have 256mb of RAM, so i am not so worried
[10:42:12] <fuzzie> it just seems there is no need for the huge trigger objects
[10:42:24] <fuzzie> hey
[10:42:31] <fuzzie> this is a good question
[10:42:40] <fuzzie> why don't we just support the PS:T stances?
[10:42:58] <Avenger> because stances confuse me ;)
[10:43:02] <fuzzie> the extra memory usage is less than 4k (ok, 32-bit) per actor
[10:43:09] <fuzzie> if we just increase the stances to the full range
[10:43:18] <Avenger> but i think we don't need that
[10:43:27] <Avenger> just a translation table
[10:43:31] <fuzzie> i just mean
[10:43:35] <fuzzie> i could make it work right now, like that
[10:43:42] <Avenger> well, try it
[10:43:46] <fuzzie> i did :)
[10:44:51] <fuzzie> (oh gosh, IDA is still analysing bgmain.exe.)
[10:45:34] <fuzzie> i thought for now i could just extend the stances to cover the important PS:T ones, and we can add the translation table later, espcially for all that mime junk
[10:45:47] <Avenger> ok
[10:46:00] <Avenger> still: the stances are not the same for the engines
[10:46:11] <Avenger> so we really need the translation
[10:46:32] <fuzzie> well, for the death stances, we have to handle those especially anyway
[10:46:35] <Avenger> and we need it in a clever way, separate internal stance code from the scripting interface stance
[10:46:40] <fuzzie> i forget if there are any other important ones
[10:46:57] <Avenger> show the original stance to all scripting
[10:47:13] <Avenger> and use the internal stance in charanimation indexing
[10:47:21] <Avenger> and the core, if needed
[10:47:35] <fuzzie> i think last time i looked at this, we decided the core doesn't need to know
[10:47:35] <Avenger> not sure about opcodes
[10:47:48] <Avenger> they should have access to both ways
[10:48:05] <fuzzie> anyway
[10:48:12] <Avenger> the opcodes surely need both ways
[10:48:18] <fuzzie> ok :) i don't know
[10:48:30] <fuzzie> i thought the opcodes would be fine with just the original stance
[10:48:50] <Avenger> no, how would you make a common opcode: sleep, when the sleep stance is different in iwd and bg2
[10:48:57] <fuzzie> did i ask you if you knew what we should do about off-screen animation updates?
[10:49:25] <Avenger> i guess we should keep track of them
[10:49:38] <Avenger> still call getNextFrame ?
[10:49:45] <fuzzie> and should i put Jaheira's kit application on the todo?
[10:50:10] <Avenger> yes, that needs lynx' clab apply code to be moved into the core
[10:50:36] <Avenger> oddly enough, i remember doing the GA_/AP_ handling somewhere in c
[10:50:46] <fuzzie> we can't just call into python?
[10:50:47] <Avenger> maybe i just dreamt it :)
[10:51:03] <Avenger> handling it is easy in c
[10:51:45] <Avenger> void ApplyClab(Actor *actor, const char *clab, int level)
[10:51:48] <Avenger> in Actor.cpp
[10:52:06] <Avenger> bool Actor::ApplyKit(ieDword Value)
[10:52:08] <Avenger> hmm
[10:52:40] <Avenger> looks like it is already written, but not used
[10:52:45] <Avenger> LOL
[10:53:15] <fuzzie> i just wonder about making modding easier
[10:53:26] <fuzzie> but i guess i'll leave you to look at this, and get lunch :)
[11:14:57] <-- budlust has left IRC (Ping timeout: 248 seconds)
[11:16:35] --> budlust has joined #GemRb
[11:41:44] <-- Avenger has left IRC (Quit: bye!)
[11:56:48] <fuzzie> heh, if you try talking to a playing-dead person in gemrb, the corpse rotates to face you
[12:04:54] <CIA-26> GemRB: 03fuzzie * r32624380f450 10gemrb/gemrb/core/ (3 files in 2 dirs): get rid of playDeadCounter
[12:05:35] <lynxlynxlynx> i hope that bg2 poisoned guy is scripted
[12:05:59] <lynxlynxlynx> the first outside encounter with an abducted harper
[12:06:17] <fuzzie> i assume the encounter area just has a script
[12:06:57] <lynxlynxlynx> me too, now that i think of it, iirc he starts the conversation
[12:07:48] <fuzzie> Renfeld is created by the ar0041 script
[12:08:05] <fuzzie> the second time you enter that area
[12:11:10] <fuzzie> it looks like it should work fine in gemrb
[12:27:42] <-- budlust has left IRC (Ping timeout: 258 seconds)
[12:29:49] --> budlust has joined #GemRb
[12:41:24] <lynxlynxlynx> hmpf
[12:41:45] <lynxlynxlynx> i can't reach the last of the soul containers in the main underdark area
[12:42:03] <lynxlynxlynx> can't get close enough
[12:42:35] <fuzzie> any idea if it's our use distance being wrong or you actually can't get close enough?
[12:42:48] <fuzzie> for the top-left one it's a bit of a squeeze in the original, i seem to remember
[12:43:08] <lynxlynxlynx> i'm trying hard
[12:44:10] <fuzzie> this is dwface06?
[12:44:25] <fuzzie> and it gives you a 'You are too far away to use that' without problems?
[12:45:12] <fuzzie> ok, which one it is doesn't matter
[12:45:34] <lynxlynxlynx> 01
[12:45:43] <lynxlynxlynx> and yes, it gives the warning fine
[12:46:29] <fuzzie> you'd think 100 would be plenty of space
[12:47:09] <lynxlynxlynx> 100 of what?
[12:47:31] <lynxlynxlynx> if pixels then it is pretty near
[12:49:37] <fuzzie> yes, pixels
[12:49:50] <fuzzie> but it measures from Pos
[12:50:03] <fuzzie> which is probably the centre of the actor vs the centre of the infopoint
[12:53:20] <fuzzie> the original code for Range actually seems to add 1 to the int0Parameter
[12:57:22] <lynxlynxlynx> adding 10 to that param doesn't help
[12:58:50] <lynxlynxlynx> 100 is enough :)
[12:59:02] <fuzzie> ok, it is also dividing the actor/scriptable coordinates by 16 and 12
[12:59:34] <fuzzie> so i think our code is probably just wrong
[12:59:57] <lynxlynxlynx> that's the conversion to a 2d grid, right?
[13:00:17] <fuzzie> yes
[13:01:23] <fuzzie> it divides coordinates by 16/12 as needed, then squares that, then compares to (int0Parameter+2) squared
[13:01:26] <fuzzie> erm, +1
[13:04:06] <fuzzie> could you try that?
[13:04:32] <lynxlynxlynx> yeah, i'm looking if we have a utility function for this already
[13:05:40] <lynxlynxlynx> appears not
[13:07:02] <lynxlynxlynx> but first to the store
[13:34:51] <lynxlynxlynx> http://pastebin.com/SSxTkX83 <- this works
[13:35:10] <lynxlynxlynx> i left the distance call in there
[13:35:31] <lynxlynxlynx> =not exactly what you described
[13:40:58] <fuzzie> well, it means that the sqrt gives inaccurate results occasionally, but i don't think it is remotely relevant, so i would commit it
[13:42:13] <lynxlynxlynx> this way is cleaner
[13:43:10] <fuzzie> i think all these *10 constants are maybe nonsense
[13:43:40] <fuzzie> they were originally *20, and Avenger changed them all to *10 in 2005, and i expect they're just a guess and it's really just that the coordinates all this stuff uses need the division
[13:48:10] <lynxlynxlynx> http://pastebin.com/EJcyiHMP <-- any ideas for improvement?
[13:49:38] <fuzzie> well, i'm pretty sure it's incorrect
[13:50:04] <fuzzie> the schedule, for example
[13:50:25] <lynxlynxlynx> schedule?
[13:50:34] <fuzzie> #
[13:50:34] <fuzzie> //check for schedule
[13:50:34] <fuzzie> #
[13:50:34] <fuzzie> - ieDword bit = 1<<((gametime/ROUND_SIZE)%7200/300);
[13:50:34] <fuzzie> #
[13:50:37] <fuzzie> + ieDword bit = 1<<((gametime/core->Time.round_size)%7200/300);
[13:50:54] <lynxlynxlynx> the logic stays the same
[13:51:10] <fuzzie> oh
[13:51:13] <lynxlynxlynx> the point of this patch is to dehardcode the constants
[13:51:16] <fuzzie> round_size is identical for all games?
[13:51:23] <lynxlynxlynx> no
[13:51:25] <fuzzie> i mean, this is a hardcoded constant which just happened to use a convenient define
[13:51:42] <fuzzie> as far as i could tell from the data files, anyway
[13:51:53] <lynxlynxlynx> but you bring up a good point
[13:52:23] <lynxlynxlynx> -//default (ROUND_SIZE) is 6 seconds: 15 (AI_UPDATE_TIME)*6 (ROUND_SECODS)=90 <-- i was working off this, but it could just be a coincidence
[13:52:35] <fuzzie> everything else in your patch seems to actually mean 'round size', though.
[13:53:18] <fuzzie> the "this is a guess which seems approximately right so far" in SpellCast was for ROUND_SIZE too, though..
[13:54:11] <fuzzie> so after you apply that, i guess i should go look again at casting times
[13:54:24] <fuzzie> but other than the schedule thing, it seems fine
[13:54:33] <fuzzie> and you can just hardcode the number there
[13:54:35] <lynxlynxlynx> i need to test it more
[13:54:44] <fuzzie> and now i have to go to the store :)
[14:05:23] <lynxlynxlynx> which data files did you check for the schedule thing and in which game? The other constans there are also time related and are pretty constant across the games (7200 = 1h also in the iwds, but 300 i'm not so sure about, since the rounds are of 7 seconds)
[14:21:36] <SiENcE> i got Gemrb running on Dingux for the first time
[14:21:42] <SiENcE> i can watch the Intro movie
[15:04:08] --> Avenger has joined #GemRb
[15:04:12] --- ChanServ gives channel operator status to Avenger
[15:04:56] <Avenger> lynx, did you write Actor::GetClassLevel?
[15:05:50] <Avenger> ok, i see now
[15:07:02] <Avenger> there is no mapping between bg2 classes, and GetClassLevel
[15:07:05] <Avenger> :(
[15:10:17] <fuzzie> what do you need in particular?
[15:10:58] <fuzzie> really i wanted to move more of this into the guiscripts, for example having all this complicated triple-class class-specific bonus stuff in the core means that modding it is really a pain
[15:11:01] <Avenger> i need to know the class level of multiclasses
[15:12:20] <fuzzie> specific ones?
[15:12:20] <Avenger> also, if i got a multiclassed char with a kit, i get the kit class from the kit number, and then i need the class level of the char
[15:12:38] <Avenger> i want to apply the class/kit specific abilities from c code
[15:13:03] <Avenger> everything is fine, except that GetClassLevel(class) is not working as i expected
[15:13:05] <fuzzie> and GetClassLevel isn't good enough?
[15:13:20] <Avenger> ISFIGHTER is 0, ISMAGE is 1 (that's correct)
[15:13:31] <Avenger> ISFIGHTER should be 2 :)
[15:13:39] <Avenger> and there is no 0 class, of course
[15:13:45] <fuzzie> um
[15:13:57] <fuzzie> why?
[15:14:00] <Avenger> so, GetClassLevel is a private function, and always called internally
[15:14:05] <Avenger> why whaT?
[15:14:08] <fuzzie> i mean, these are our internal numbers, and we used the iwd2 ordering
[15:14:21] <Avenger> i got no mapping from real class numbers to those IS.... numbers
[15:14:30] <fuzzie> yes, we don't have one
[15:14:47] <Avenger> the IS... numbers seem totally arbitrary
[15:14:50] <fuzzie> they
[15:14:55] <fuzzie> they're the iwd2 class ids, no?
[15:15:05] <Avenger> hmm
[15:15:19] <Avenger> don't think 0 is valid class even in iwd2
[15:15:34] <Avenger> maybe they are iwd class-1 ?
[15:15:38] <fuzzie> they're off-by-one
[15:15:39] <fuzzie> yes
[15:15:53] <fuzzie> > you must search for levelslots[BaseStats[IE_CLASS]-1] as there is no class id of 0
[15:16:07] <Avenger> no they are not
[15:16:22] <Avenger> iwd2: barbarian = 1, bard = 2
[15:16:41] <Avenger> so they are not even in iwd2 class order
[15:17:54] <fuzzie> well, ok
[15:18:04] <fuzzie> i'm sure you can guess who added the IS... numbers
[15:18:22] <Avenger> lynx
[15:18:26] <fuzzie> you :P
[15:18:31] <Avenger> huh?
[15:19:09] <fuzzie> commit 356d5ca3 by Avenger, august 2007
[15:19:14] <Avenger> hehe
[15:19:18] <fuzzie> oh hey
[15:19:20] <fuzzie> ok
[15:19:23] <fuzzie> no, you are forgiven
[15:19:27] <fuzzie> you had them in the right order
[15:19:38] <Avenger> well, in iwd2 order, i guess
[15:19:42] <fuzzie> yes
[15:19:51] <Avenger> that wouldn't help me here either
[15:19:52] <fuzzie> mattinm messed them up i guess
[15:20:38] <fuzzie> but maybe just make a translation table?
[15:20:56] <Avenger> hardcoded?
[15:20:59] <fuzzie> there's the levelslotsiwd2 thing at the top of Actor.cpp, for iwd2
[15:21:00] <Avenger> it sucks
[15:21:10] <Avenger> yes, that sucks too
[15:21:14] <fuzzie> well, if you are hardcoding the kit applications into the core.. :)
[15:21:29] <Avenger> that's different, it is totally flexible
[15:22:07] <Avenger> it is based on clskills.2da and kitlist.2da and of course the clab files
[15:22:36] <Avenger> basically, i plan to be add moddable classes
[15:22:55] <Avenger> but if i hardcode the bg2 class order, it will suck
[15:23:52] <fuzzie> well, maybe lynx knows better
[15:24:13] <fuzzie> but if you hardcode the table now, we can load it from a ids/2da file later
[15:25:41] <fuzzie> ok
[15:25:45] <fuzzie> so this is kind of my fault, maybe
[15:26:06] <fuzzie> we discussed this on irc at the time, and we thought the ordering is probably not important, because it seemed that they were just in alphabetical order
[15:26:24] <fuzzie> and we could just use a lookup table for each game
[15:27:46] <fuzzie> but then no-one added the lookup table for bg because it wasn't needed, i guess
[15:28:30] <fuzzie> so it should be no problem changing the IS values to whatever you want, but that doesn't really help
[15:29:13] <fuzzie> lynxlynxlynx: i think iwd/how maps
[15:29:30] <fuzzie> but i think the passing-of-time stuff is seperate from the round times entirely
[15:30:15] <fuzzie> lynxlynxlynx: also, commit the Range thing for now?
[15:31:03] <Avenger> ok, it is ugly hacked right now, but this column could be added to clskills
[15:37:06] <lynxlynxlynx> ok
[15:37:14] <lynxlynxlynx> i'll just leave that 6 in there
[15:42:37] <CIA-26> GemRB: 03lynxlupodian * r78310bbc263d 10gemrb/gemrb/ (14 files in 11 dirs): externalised the round and turn durations
[15:42:48] <CIA-26> GemRB: 03lynxlupodian * r667d700ce195 10gemrb/gemrb/core/GameScript/Triggers.cpp:
[15:42:48] <CIA-26> GemRB: fixed the Range trigger, thanks fuzzie
[15:42:48] <CIA-26> GemRB: testcase: leftmost soul container in bg2 underdark
[15:43:33] <lynxlynxlynx> bbl
[15:43:38] <fuzzie> thanks!
[15:44:27] <-- budlust has left IRC (Ping timeout: 264 seconds)
[15:49:50] <Avenger> haha, sizeof(classcount), i was wondering why it still doesn't work
[16:10:55] <Avenger> fuzzie: shapeshift still doesn't change the animation?
[16:11:05] <fuzzie> shapeshift?
[16:11:11] <Avenger> well, anyway, i made the clab stuff, be right back
[16:11:14] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[16:39:01] --> Avenger has joined #GemRb
[16:39:09] --- ChanServ gives channel operator status to Avenger
[16:42:44] <CIA-26> GemRB: 03avenger_teambg * r15f91f0619a3 10gemrb/gemrb/core/ (5 files in 3 dirs): clab support in core
[16:42:47] <CIA-26> GemRB: 03avenger_teambg * rd6366084efa0 10gemrb/gemrb/ (16 files in 11 dirs): Merge branch 'master' of ssh://avenger_teambg@gemrb.git.sourceforge.net/gitroot/gemrb/gemrb
[16:42:49] <CIA-26> GemRB: 03avenger_teambg * r0e1b0767590d 10gemrb/gemrb/core/Scriptable/ (Actor.cpp Actor.h): last touches on the fix
[16:42:54] <Avenger> ok, i think we won't need the script based clab stuff anymore, though i didn't check it
[16:43:11] <Avenger> i mean, the removal, otherwise, jaheira is fine now
[16:43:31] <Avenger> also imoen gets the trap removal abilities, and minsc gets something too
[16:43:49] <Avenger> err, i mean, imoen gets the snares
[16:50:53] <fuzzie> and shapeshifting works for you now?
[16:51:13] <fuzzie> i didn't do that caching stuff, i kinda want to fix other things first
[16:55:05] <Avenger> no
[16:55:15] <Avenger> it doesn't work, it is slow and no animation change
[16:55:20] <Avenger> but she got it at least
[16:55:40] <Avenger> this will surely fix keldorn too
[16:55:55] <Avenger> there are still some problems,
[16:56:22] <Avenger> learnspell doesn't grant you the spell again (in case of innates you should get it)
[16:56:31] <Avenger> i will add a flag to override that check
[16:57:10] <Avenger> the quickslots are awful
[16:57:23] <Avenger> minsc has only 2 slots in a new game
[16:57:28] <Avenger> so this is a regression
[16:58:39] <Avenger> but gems work :)
[16:59:06] <lynxlynxlynx> joinparty: are you really supposed to get both the class and kit clabs?
[16:59:57] <Avenger> i'm not sure, i tested only jaheira, she has a class specific one
[17:00:17] <lynxlynxlynx> usually the 00 one is for the base class and the rest for the kits
[17:00:32] <Avenger> 01
[17:00:36] <lynxlynxlynx> but jaheira is multclassed anyway
[17:00:38] <Avenger> clabdr01 for jaheira
[17:00:46] <Avenger> yes, she gets both
[17:00:49] <lynxlynxlynx> yeah, 01, not 00
[17:00:53] <Avenger> clabfi01 and clabdr01
[17:01:08] <Avenger> i don't use the clab field though
[17:01:14] <Avenger> for multiclasses
[17:01:19] <Avenger> it is too weird :)
[17:01:29] <Avenger> fi01,dr01, yuck :)
[17:01:43] <Avenger> i just look up the multiclass parts
[17:04:14] <lynxlynxlynx> creating an inquisitor shows it is fine
[17:04:23] <lynxlynxlynx> but it shows an unrelated bug
[17:04:36] <Avenger> hmm wait, you disabled your clab part?
[17:04:49] <Avenger> if not, then it is not really visible which part worked
[17:04:57] <lynxlynxlynx> i haven't disabled anything
[17:05:08] <lynxlynxlynx> oh, right
[17:05:21] <lynxlynxlynx> i'll join keldorn
[17:05:51] <Avenger> yes he is perfect, he got class and kit specific stuff
[17:06:26] <lynxlynxlynx> he's not ok though
[17:06:34] <lynxlynxlynx> all the innates are at 1 use
[17:06:41] <lynxlynxlynx> and he shouldn't be able to lay on hands
[17:06:42] <Avenger> yes, i said that
[17:07:04] <Avenger> lay on hands? how he got that
[17:07:19] <lynxlynxlynx> it's a base class clab thing, all paladins have it
[17:07:20] <Avenger> hmm, kit clabs override the class clab?
[17:07:28] <lynxlynxlynx> the inquisitor kit forbids it
[17:07:32] <lynxlynxlynx> exactly
[17:07:47] <Avenger> so you cannot have both?
[17:07:56] <Avenger> i thought it is additive
[17:08:52] <lynxlynxlynx> no
[17:09:26] <lynxlynxlynx> and for the memorisation, just fix the innate memorisable count limit
[17:09:56] <lynxlynxlynx> in cg i set it to 50, but that could be too low, so i suggest 999 as unlimited
[17:20:36] <CIA-26> GemRB: 03lynxlupodian * r59b107072f9d 10gemrb/gemrb/GUIScripts/ (bg1/GUIPR.py bg2/GUIPR.py): gray out the priest spellbook if the pc can't cast
[17:24:49] <Avenger> i think i increase the limit so it is not needed to tamper in any way
[17:25:47] <Avenger> that 50/999 would be totally arbitrary, and not compatible with the original
[17:26:06] <fuzzie> why not?
[17:26:31] <Avenger> because it wouldn't be the same
[17:27:19] <Avenger> see "Spellbook.cpp" line 406
[17:27:35] <Avenger> it is already taken care of
[17:27:40] <fuzzie> it doesn't work
[17:28:38] <fuzzie> i mean, if we don't increase the limit, it doesn't work, right?
[17:29:18] <fuzzie> this is lynx's thing on line 561, i assume
[17:30:49] <lynxlynxlynx> yes, the memo problem starts at that line
[17:31:02] <Avenger> 561?
[17:31:07] <Avenger> in Spellbook?
[17:31:10] <fuzzie> yes
[17:31:25] <lynxlynxlynx> so i guess there is a path not through AddKnownSpell
[17:32:00] <lynxlynxlynx> yep
[17:32:05] <lynxlynxlynx> GemRB_MemorizeSpell calls it directly
[17:33:05] <fuzzie> so some python caller is calling MemorizeSpell when they should be calling AddKnownSpell?
[17:33:10] <Avenger> that shouldn't set more spells than available
[17:33:25] <Avenger> memorize spell should only go up to the memorizable count
[17:33:33] <Avenger> it should never increase it
[17:33:38] <lynxlynxlynx> yes, but the default is probably 0
[17:33:41] <Avenger> and it should fail if the limit is exceeded
[17:33:56] <fuzzie> the default should be 0, is i think Avenger's point
[17:34:30] <Avenger> the default memorizable spells count is of course based on the level of the character and wisdom, and spell bonuses
[17:35:01] <Avenger> the innate memorizable spell count is 0
[17:35:08] <lynxlynxlynx> so each time another memorisation is needed, you want an extra get+setmemocount
[17:35:18] <fuzzie> no
[17:35:32] <lynxlynxlynx> because learnspell+ls_memo won't work, it bails out for known spells
[17:35:32] <fuzzie> i mean, for innates, you should just call AddKnownSpell and it'll add the necessary memorisation for you, right?
[17:35:39] <Avenger> yes fuzzie
[17:35:53] <Avenger> lynx, i just fixed that
[17:35:58] <Avenger> i said it is needed to be fixed
[17:36:12] <Avenger> it is needed only for innates
[17:36:14] <lynxlynxlynx> well push then :)
[17:36:27] <Avenger> learnspell should work exactly once for non innates
[17:36:27] <lynxlynxlynx> nothing in the python plugin calls AddKnownSpell
[17:37:01] <Avenger> it calls actor.LearnSpell?
[17:37:19] <fuzzie> yes
[17:37:29] <fuzzie> you fixed actor.LearnSpell?
[17:38:03] <fuzzie> or we need a new guiscript function?
[17:38:28] <Avenger> i fixed actor.learnspell
[17:38:42] <fuzzie> ok. like lynx said: push! :)
[17:38:45] <fuzzie> you fixed the inventory yet? :P
[17:38:47] <Avenger> testing
[17:38:53] <Avenger> the quickslot?
[17:38:55] <Avenger> no
[17:39:08] <fuzzie> i was thinking the usability, but quickslot is also god
[17:39:10] <fuzzie> good
[17:39:17] <fuzzie> i am waiting for everything to recompile, as usual
[17:39:27] <Avenger> and the lack of talking sucks
[17:39:39] <Avenger> i guess i messed it up in DisplayStringCore
[17:39:54] <Avenger> hmm imoen talks
[17:40:02] <Avenger> so only DisplayStringHead is wrong
[17:40:33] <Avenger> ok imoen got the 2 snares
[17:41:34] <Avenger> you can pull
[17:41:37] <CIA-26> GemRB: 03avenger_teambg * r7153a8e3cafa 10gemrb/gemrb/core/Scriptable/Actor.cpp: fixed innate learning (you can learn them more than once)
[17:42:13] <Avenger> it may need a new flag, i just use LS_MEMO atm
[17:43:16] <Avenger> lynx: this cast stuff is working for mages too?
[17:43:25] <Avenger> i mean the graying out
[17:43:42] <fuzzie> do we ever need to do that?
[17:44:13] <fuzzie> ok, so i have no quickslots
[17:44:17] <lynxlynxlynx> i didn't add it, since it's a bit conflicting with casting disablers, which are common for mages
[17:44:18] <fuzzie> that is kind of unhelpful really
[17:47:46] <lynxlynxlynx> item slots or the others?
[17:48:01] <fuzzie> weapon slots
[17:48:13] <fuzzie> Avenger was speaking of only having 2 for minsc, but i have none, for anyone
[17:48:34] <Avenger> if you pick up a weapon, you will get some
[17:48:44] <Avenger> just click on an item :)
[17:48:52] <Avenger> it is totally awful
[17:48:53] <fuzzie> that is not a fix, though
[17:49:32] <fuzzie> i just wonder where it came from
[17:51:24] <lynxlynxlynx> so whenever another spell instance should be learned, learnspell is the way to go
[17:52:50] <lynxlynxlynx> yeah, works
[17:53:14] <lynxlynxlynx> however removing the clab stuff from cg isn't possible yet
[17:53:50] <fuzzie> Avenger: i don't understand your changes in CanUseItemType
[17:54:01] <Avenger> lynx: i added clab update on level change
[17:54:10] <Avenger> at least, i think i added
[17:54:30] <lynxlynxlynx> you did
[17:54:34] <Avenger> fuzzie: which change, i just made it not ruin the ret
[17:54:47] <lynxlynxlynx> but it should maybe also be in pcf_kit/pcf_class
[17:55:17] <fuzzie> Avenger: you also changedthe logic
[17:55:28] <Avenger> well, luckily nothing changes kit/class that way
[17:55:40] <Avenger> but you are right, that needs to be fixed eventually
[17:56:06] <Avenger> i changed AddKit/AddSuperkit and the paladin/ranger stuff
[17:56:11] <fuzzie> now you check item flags for slotmatrix[item->ItemType]&slottype and not just slotmatrix[item->ItemType], for example
[17:56:19] <lynxlynxlynx> i'm testing with tob, the chars start around level 15, but the kit didn't get applied
[17:56:36] <Avenger> yes fuzzie, because the item's headers should be used according on how you want to use it
[17:57:03] <Avenger> if it is an earring (in pst), you shouldn't check if it is a quick item, if you equip it in the ear
[17:57:07] <fuzzie> sure
[17:57:22] <Avenger> so, it now checks the item headers ONLY when the slot requires it
[17:57:27] <fuzzie> but SLOT_WEAPON is set for the shield slot?
[17:57:43] <Avenger> hmm, i think yes
[17:58:00] <lynxlynxlynx> yes
[17:58:04] <fuzzie> but i don't say your changes are wrong
[17:58:13] <fuzzie> just that you changed a few things and i don't understand :)
[17:58:15] <Avenger> yes, you just said you don't understand
[17:58:27] <fuzzie> but ok
[17:58:40] <fuzzie> this is more of a "if we are equipping this in these slots, do some checks" thing
[17:58:40] <Avenger> the part you talk about was needed by the pst amber amulet
[17:58:43] <Avenger> earring
[17:58:45] <fuzzie> why do we only check this in feedback?
[17:58:53] <fuzzie> 'feedback' means 'do extra checks'?
[17:59:03] <Avenger> because it is slot specific
[17:59:12] <Avenger> feedback is when you put it in a slot
[17:59:25] <Avenger> yes, actually it is more checks
[17:59:31] <fuzzie> ok :)
[18:00:06] <Avenger> if you want you can refactor it, but it involves lots of cases :)
[18:00:26] <Avenger> another case of functionality crowding
[18:00:57] <fuzzie> and the bit at the top means: if slottype is SLOT_ALL, we return that it can only go in the inventory?
[18:01:22] <Avenger> honestly? i don't know what that stuff does there, but i didn't add it today
[18:01:24] <Avenger> :)
[18:01:31] <fuzzie> sure
[18:01:50] <Avenger> i'm fairly sure it is needed, and i'm sure i added it at one point
[18:01:53] <fuzzie> the only thing your change changed is that SLOT_INVENTORY returns 1 now, i guess
[18:02:04] <Avenger> returns 1?
[18:02:09] <fuzzie> i mean, doesn't :)
[18:02:24] <Avenger> yes, but that is a good change
[18:02:41] <Avenger> 1 would mean, helmet :P
[18:03:15] <Avenger> if it returns anything, it should return SLOT_INVENTORY
[18:03:31] <fuzzie> and that means "only in the inventory"?
[18:03:44] <Avenger> yes
[18:05:32] <Avenger> lol
[18:05:41] <Avenger> my mage has cleric spell slots
[18:05:47] <Avenger> most likely due to wisdom bonus
[18:05:51] <Avenger> not a big bug
[18:05:58] <fuzzie> but the screen should be grayed out?
[18:06:02] <Avenger> yes it is grayed
[18:06:05] <Avenger> but it is visible
[18:07:05] <fuzzie> that is not a new bug, at least
[18:07:14] <CIA-26> GemRB: 03avenger_teambg * r031442ebb7f6 10gemrb/gemrb/GUIScripts/iwd/GUIPR.py: added lynx's changes of bg1/bg2 to iwd
[18:07:31] <Avenger> lynx: keldorn now works, right?
[18:08:42] <lynxlynxlynx> probably, but cg kits are broken
[18:09:00] <Avenger> by this change?
[18:09:00] <lynxlynxlynx> a pcf_kit is needed to avoid hacks
[18:09:11] <Avenger> hmm
[18:09:13] <lynxlynxlynx> why the extra cruft in the last commit?
[18:09:44] <Avenger> what extra?
[18:09:50] <lynxlynxlynx> what happens is: cg sets class, then sets the level and then possibly enters kit selection
[18:09:52] <Avenger> that #?
[18:09:54] <lynxlynxlynx> so the pcf_level is too late
[18:10:09] <Avenger> it was in the original iwd script but not in bg
[18:10:16] <Avenger> so i commented it out
[18:11:41] <lynxlynxlynx> i don't understand that
[18:12:14] <Avenger> i thought we talk about my last commit :P
[18:12:33] <lynxlynxlynx> we do
[18:12:50] <Avenger> my last commit was a python script change
[18:12:54] <fuzzie> yes
[18:12:59] <fuzzie> you know iwd and bg1 are different? :)
[18:13:08] <lynxlynxlynx> <Avenger> it was in the original iwd script but not in bg <-- this would suggest to comment it out in bg, not iwd
[18:13:39] <Avenger> no, that single line is not needed
[18:13:53] <Avenger> SetSpellIcon already flips that bit
[18:14:04] <fuzzie> so delete it :P
[18:14:40] <Avenger> but you surely talk about more than that line
[18:15:37] <fuzzie> well, you moved 'import' into local context too
[18:16:02] <lynxlynxlynx> and MarkMenuButton isn't needed either
[18:16:12] <Avenger> hmm
[18:16:23] <lynxlynxlynx> bg2 had the borders, iwd just shows the pressed state
[18:16:25] <Avenger> fuzzie: yes, because it is the same in bg
[18:16:35] <CIA-26> GemRB: 03avenger_teambg * r200de5c90fd8 10gemrb/gemrb/GUIScripts/ (bg2/GUIPR.py iwd/GUIPR.py): cleanup
[18:16:43] <Avenger> i prefer the scripts to look exactly the same, when it is possible
[18:16:48] <lynxlynxlynx> it was needed that was in bg2, i managed to do it in a nicer way in iwd
[18:17:02] <Avenger> hmm,
[18:17:07] <Avenger> so it should be different?
[18:17:31] <fuzzie> it is a hack in bg2, so now you synced a hack :p
[18:17:47] <Avenger> i don't quite see why iwd doesn't need it
[18:17:48] <fuzzie> maybe a good idea to add a comment about the circular problems
[18:18:06] <fuzzie> but, ok, i am not helpful in this discussion, i guess
[18:18:27] <fuzzie> can someone point me at where weapon slots are handled? by this kit stuff or guiscript.cpp or python or where?
[18:18:31] <Avenger> but you are right, i should have checked bg1 instead
[18:18:37] <Avenger> bg1 is more like iwd
[18:19:08] <Avenger> fuzzie: the disappearing quickweapon slots?
[18:19:23] <fuzzie> well, i guess you will fix them
[18:19:28] <fuzzie> i'm just wondering where the code is
[18:20:02] <Avenger> ReinitQuickSlots should handle them
[18:21:59] <Avenger> The QSlots get a class specific default value (they are customisable in iwd2)
[18:22:11] <fuzzie> the first two are forced to be present, though
[18:23:01] <Avenger> yes, so i wonder why they aren't there at all
[18:23:41] <Avenger> see qslots.2da for the initial values
[18:24:59] <fuzzie> when ApplyKit calls ApplyClab with remove set, it passes the current level, not the old one
[18:25:15] <fuzzie> that works fine?
[18:25:45] <Avenger> probably won't cause a problem, only once in a blue moon
[18:26:25] <Avenger> it can theoretically remove an extra spell or whatever
[18:27:03] <fuzzie> i don't have a better idea
[18:29:20] <Avenger> hmm that markmenubutton is just a nop, then?
[18:30:42] <Avenger> the weird thing is that it is used already elsewhere
[18:30:49] <lynxlynxlynx> looks that way, if Pressed isn't use elsewhere
[18:31:04] <lynxlynxlynx> i added it to bg2 and you probably synced it to bg1
[18:31:22] <Avenger> and now iwd :)
[18:31:46] <lynxlynxlynx> iwd already has it defined and in use, but only on init, so it can go away
[18:31:57] <Avenger> yes, that's what i meant
[18:32:09] <Avenger> i wouldn't have used it if it wasn't defined :)
[18:32:46] <Avenger> though to keep the line counts, and avoid resyncing, it should be commented out
[18:32:49] <Avenger> not removed
[18:33:09] <Avenger> it helps in avoiding me syncing it back
[18:33:18] <lynxlynxlynx> no
[18:33:26] <lynxlynxlynx> it is different in bg2
[18:33:56] <Avenger> wanna me comment it out?
[18:34:05] <lynxlynxlynx> i would remove it :P
[18:34:54] <Avenger> without mark it is not 'marked'
[18:35:08] <Avenger> it is not staying in the pressed state
[18:35:56] <Avenger> is that how it works in the original?
[18:37:59] <Avenger> it looks better marked, hmm
[18:38:11] <Avenger> i wonder if border is possible
[18:39:54] <fuzzie> oh i see
[18:39:58] <Avenger> border is not possible, unless drawn by us
[18:40:09] <Avenger> fuzzie: quickslots?
[18:40:12] <fuzzie> well
[18:40:18] <fuzzie> what is meant to call ReinitQuickSlots?
[18:40:52] <Avenger> looks like it is called by many things
[18:41:23] <Avenger> basically when the action button row changes
[18:41:39] <fuzzie> but i mean, at startup
[18:41:41] <Avenger> (or the quickslots)
[18:42:08] <Avenger> well, initially somewhere in SetupFist, i guess
[18:42:41] <lynxlynxlynx> oh right, Window is a parameter, not just the last thing used
[18:42:50] <Avenger> hmm no
[18:43:14] <Avenger> well fuzzie i don't know
[18:43:28] <fuzzie> i remember we added the weapon equipping code to SetMap
[18:43:48] --> nickdaly has joined #GemRb
[18:44:39] <fuzzie> hi, nickdaly
[18:45:20] <Avenger> setmap still has SetEquippedQuickSlot
[18:46:02] <Avenger> but that is not helping, something does call reinitquickslots on startup, that's sure
[18:46:29] <Avenger> if nothing calls it, then the action button row would be ugly, i think
[18:49:31] <Avenger> someone fixed the editbox cursor location?
[18:49:55] <fuzzie> nope
[18:50:17] <fuzzie> so, the buttons in the action button row are fine for me
[18:50:20] <Avenger> ok, in bg1 it is nice, i thought it was wrong too
[18:50:32] <Avenger> btw, bg1 fighters start with 4 quick weapon slots,
[18:50:48] <fuzzie> i get 3 for minsc, 4 for my fighter, 2 for my mage
[18:50:50] <Avenger> hmm i used import, though
[18:50:57] <Avenger> that's how it should work!
[18:51:03] <fuzzie> i wonder if i broke the inventory code
[18:51:23] <Avenger> shit
[18:51:50] <Avenger> bg1 breaks in cg
[18:51:53] <Avenger> Traceback (most recent call last):
[18:51:55] <Avenger> File "./GUIScripts/LUSpellSelection.py", line 264, in SpellsDonePress
[18:51:57] <Avenger> next()
[18:51:58] <Avenger> File "./GUIScripts/bg1/CharGenCommon.py", line 265, in next
[18:52:00] <Avenger> CharGenMaster.next()
[18:52:02] <Avenger> File "./GUIScripts/bg1/CharGenCommon.py", line 201, in next
[18:52:04] <Avenger> GUICommon.CloseOtherWindow(None)
[18:52:06] <Avenger> oh my, we'll never finish these bugs
[18:52:22] <fuzzie> what did you do?
[18:52:32] <Avenger> tried to start a mage
[18:53:07] <Avenger> before that, i started a game with an imported fighter
[18:53:27] <fuzzie> oh
[18:53:30] <fuzzie> in the same session?
[18:53:31] <Avenger> so: import fighter/start game/back to menu/cg/create mage
[18:53:32] <Avenger> yes
[18:53:33] <fuzzie> i think lynx had a fix for that in bg2
[18:53:48] <Avenger> uhm, bg1 needs it too
[18:54:19] <fuzzie> oh, i guess it was something else in bg2
[18:54:24] <Avenger> yes, this is same session cg/play/back to cg bug
[18:54:32] <fuzzie> but i think chargen reentry in the same session has bugs in all the games
[18:54:48] <Avenger> hmm wait, maybe not, i started a vanilla game, went to mage
[18:54:51] <Avenger> and bang
[18:55:00] <Avenger> dies on the skills button
[18:55:52] <Avenger> it dies when i leave the spell selection
[18:56:01] <fuzzie> yes
[18:56:04] <fuzzie> i get it too
[18:56:44] <fuzzie> you didn't mess with the bg1 imports?
[18:56:48] <Avenger> no
[18:56:57] <Avenger> this is because luspellselection is common
[18:56:59] --> raevol has joined #GemRb
[18:57:04] <fuzzie> yes
[18:57:08] <fuzzie> and lynx removed the bg2 check
[18:57:11] <Avenger> that is a recent addition
[18:57:14] <fuzzie> - if GUICommon.GameIsBG2():
[18:57:14] <fuzzie> - # close our window and update our records
[18:57:17] <fuzzie> + # close our window and update our records
[18:57:42] <Avenger> bg1's next tries to close a window that is probably already closed
[18:57:45] <lynxlynxlynx> it needs to be more specific than that if it is still needed
[18:57:57] <fuzzie> well
[18:58:23] <lynxlynxlynx> check for being in CG if the info is available there
[18:58:40] <Avenger> we should sync the cg mechanisms
[18:58:48] <Avenger> we got 3 totally different ones
[18:58:52] <fuzzie> sure, do you volunteer? :)
[18:58:56] <Avenger> no
[18:58:58] <Avenger> :)
[18:59:28] <Avenger> if i do, i would pick one of the three, and i'm not sure everyone would like my pick :P
[18:59:45] <fuzzie> well, all of them suck in some way
[19:00:05] <fuzzie> but if you fix the bugs in the one you pick and do the sync, well, you have a lot more time than i thought
[19:00:39] <Avenger> the bg1 version is too complicated to me (and since it bugs now), i would sync bg1 to bg2 :)
[19:01:04] <fuzzie> the bg1 is simple, really
[19:01:16] <Avenger> simply bugs now too
[19:01:23] <fuzzie> you have this big table, and as long as you don't call CloseWindow on its window, you are ok :)
[19:02:35] <Avenger> ok, so lets rethink this, the common spell selector shouldn't close itself if it is in bg1 AND cg, right?
[19:02:40] <fuzzie> sure
[19:02:43] <fuzzie> all done now
[19:02:44] <CIA-26> GemRB: 03fuzzie * r1d3ccfde399e 10gemrb/gemrb/GUIScripts/LUSpellSelection.py: add bg2 check back to LUSpellSelection, hopefully fixed to work for bg1 non-cg
[19:02:54] <fuzzie> have a cookie.
[19:03:09] <Avenger> it knows if it is in chargen
[19:03:54] <fuzzie> i can't work out why the weapon slots are fine in the action bar and broken in the inventory
[19:03:54] <Avenger> ok, you may have that cookie
[19:04:47] <Avenger> hmm, if you do this, you may have two cookies
[19:05:59] <fuzzie> oh, the action bar comes from GetActionButtonRow, which just reads them right from QSlots
[19:06:23] <Avenger> btw, this change is surely needed in SpellsCancelPress too
[19:06:30] <Avenger> i check if i'm right ;)
[19:07:09] <Avenger> hmm the cancel in cg works
[19:07:19] <fuzzie> we already fixed it for the cancel
[19:07:44] <fuzzie> i guess there is no cancel in non-cg?
[19:07:53] <Avenger> not sure
[19:08:26] <fuzzie> lynx says, "cancel button only applicable for chargen".
[19:10:30] <Avenger> haha, i didn't expect this works on cheat console: from ie_stats import *; SetPlayerStat(1,IE_XP,10000)
[19:10:51] <Avenger> i guess it is possible to automatically import ie-stats
[19:10:57] <Avenger> that would be so helpful
[19:11:28] <Avenger> hmm, odd, i didn't even get a spell selection on level up
[19:11:31] <fuzzie> sure, tomprince already did it for GemRB
[19:11:46] <fuzzie> you're a sorceror?
[19:11:50] <fuzzie> in bg1?
[19:11:51] <Avenger> in bg1 :P
[19:12:03] <fuzzie> no sorceror, no spells :p
[19:12:07] <Avenger> set 10000 xp, so i got level 5
[19:12:17] <fuzzie> go find some scrolls
[19:12:18] <Avenger> i could chose only weapon
[19:12:39] <Avenger> what? there is no spell selection? oh
[19:12:40] <Avenger> hehe
[19:12:42] <fuzzie> GUIScript.cpp:9654 runs the imports
[19:12:51] <fuzzie> if you want to add more, i guess you should make it a list
[19:13:05] <fuzzie> oh, wait, these are "sanity checks"
[19:13:43] <Avenger> i don't think i will hardcode ie_stats in the engine, but i will do this somehow
[19:14:18] <fuzzie> well, for import it is a bit difficult
[19:14:49] <fuzzie> i would usually suggest just running a script, but you can't easily import stuff the 'console' script from another script
[19:15:29] <fuzzie> this PCStats stuff is just weird
[19:16:16] <fuzzie> we have QSlots, but then also QuickWeaponSlots
[19:17:32] <fuzzie> and ACT_WEAPON1 is 16 so we call CheckWeaponQuickSlot with 16/17/18/19
[19:18:09] <fuzzie> but MAX_QUICKWEAPONSLOT is 8, so the QuickWeaponSlots[which] access goes off the end
[19:19:25] <fuzzie> ok
[19:19:29] <fuzzie> so, Avenger broke it.
[19:19:49] <Avenger> ?
[19:19:56] <fuzzie> - CheckWeaponQuickSlot(which-ACT_WEAPON1);
[19:19:56] <fuzzie> + CheckWeaponQuickSlot(which);
[19:20:44] <Avenger> i already feel guilty, though i still don't know what was my fault :)
[19:20:56] <Avenger> i remember doing something like that
[19:21:00] <Avenger> to fix something else
[19:21:28] <fuzzie> well, it is strange because valgrind doesn't catch it
[19:21:55] <fuzzie> the commit is for handling item removal in out-of-ammo situations, but it looks like you found another way to fix it
[19:22:57] <Avenger> hmm, so this is another scalpel in the patient :P
[19:23:10] <fuzzie> so today, we all broke things :)
[19:23:35] <Avenger> yeah, i think that - stuff is needed
[19:23:49] <fuzzie> it works with that, once you pick something up and drop it
[19:23:50] <Avenger> you are good in finding these :)
[19:24:01] <Avenger> so, there is another bug?
[19:24:05] <fuzzie> and that is just because nothing calls Reinit
[19:24:18] <Avenger> i bet i somehow deleted it :D
[19:24:28] <Avenger> it was surely called in creimporter
[19:24:30] <Avenger> at one point
[19:25:23] <CIA-26> GemRB: 03fuzzie * r0098e3044dcb 10gemrb/gemrb/core/Scriptable/Actor.cpp: fix weapon slots in ReinitQuickSlots
[19:26:09] <fuzzie> well, maybe it is just called too soon, before there is a fist
[19:26:43] <Avenger> hmm do we have any standard function about getting the length of a file?
[19:27:38] <Avenger> looks like none, it is weird, we never needed that?
[19:28:50] <fuzzie> i don't think so
[19:29:49] <fuzzie> oh
[19:29:56] <fuzzie> well, once you have it open, it is Size()
[19:30:13] <fuzzie> but i guess you want to check before?
[19:35:52] --> nickdaly` has joined #GemRb
[19:36:37] <fuzzie> i don't see any changes to this Reinit thing, if someone broke it, it is surely coincidence
[19:37:19] <-- nickdaly has left IRC (Ping timeout: 248 seconds)
[19:43:05] <fuzzie> meh
[19:43:20] <fuzzie> if i put it in SetMap(), Minsc gets only 2 slots until i pick/drop something :P
[19:44:50] <Avenger> meh
[19:46:18] <Avenger> it looks like you need to call it later
[19:46:52] <Avenger> did you put it in the last part of setmap?
[19:46:56] <fuzzie> yes
[19:47:08] <fuzzie> well
[19:47:12] <fuzzie> at the start of the 'if effinit' bit
[19:47:22] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[19:48:14] <Avenger> put it after the effects
[19:48:47] <Avenger> i'm sure it needs the first effect cycle
[19:50:15] <Avenger> before that, the modified stats are not available
[20:10:25] --- nickdaly` is now known as nickdaly
[20:12:07] <CIA-26> GemRB: 03avenger_teambg * rdea539b0d2d5 10gemrb/gemrb/ (GUIScripts/include.py plugins/GUIScript/GUIScript.cpp):
[20:12:07] <CIA-26> GemRB: added an include file to be executed before every console command
[20:12:07] <CIA-26> GemRB: now you can use console commands like: SetPlayerStat(1,IE_XP,1000)
[20:36:39] --> nickdaly` has joined #GemRb
[20:38:27] <-- nickdaly has left IRC (Ping timeout: 264 seconds)
[20:40:19] <-- nickdaly` has left IRC (Remote host closed the connection)
[21:04:34] <Avenger> fuzzie, do you hear any speech?
[21:10:46] <fuzzie> what kind?
[21:10:57] <fuzzie> i mean, if i talk to someone, i get speech
[21:11:20] <Avenger> do you hear the voice overs in the initial cutscene?
[21:11:50] <Avenger> i don't hear any of irenicus/golem speech. Or in bg1, i don't hear gorion's speech while we walk
[21:12:04] <Avenger> i hear the dialog voices and any other sound
[21:12:05] <fuzzie> no
[21:12:07] <fuzzie> no speech
[21:12:19] <fuzzie> trying the initial bg2 cutscene
[21:12:45] <fuzzie> it's not even trying to play it
[21:15:26] <fuzzie> i guess that this cannot be a token issue?
[21:16:09] <Avenger> no
[21:16:23] <Avenger> oops
[21:16:27] <Avenger> in bg1 i got this
[21:16:31] <Avenger> Traceback (most recent call last):
[21:16:33] <Avenger> File "./GUIScripts/bg1/GUIWORLD.py", line 116, in CloseContainerWindow
[21:16:34] <Avenger> GemRB.SetVar ("ActionsWindow", OldActionsWindow.ID)
[21:16:35] <Avenger> AttributeError: 'NoneType' object has no attribute 'ID'
[21:16:42] <fuzzie> heh
[21:16:58] <fuzzie> i can't believe you added all the framework for that silly hack which will be removed :p
[21:17:27] <Avenger> the close container ?
[21:17:31] <fuzzie> yes
[21:17:47] <Avenger> i didn't know it is temporary
[21:18:22] <fuzzie> it's just because the messages aren't stored anywhere
[21:18:34] <Avenger> haha and now a dialog caused segfault
[21:18:37] <Avenger> niiiice
[21:18:56] <fuzzie> the TLK code confuses me
[21:18:59] <Avenger> a pity i didn't run this in gdb
[21:19:08] <Avenger> which part?
[21:19:13] <fuzzie> ResolveTags
[21:19:19] <Avenger> huh, that's pretty simple
[21:19:37] <fuzzie> if BuiltinToken returns -1, then it checks whether Length will be exceeded
[21:19:54] <fuzzie> but otherwise it just writes over the end of the buffer?
[21:20:05] <Avenger> line?
[21:20:28] <fuzzie> 380
[21:21:00] <Avenger> TokenLength = core->GetTokenDictionary()->GetValueLength( Token) ?
[21:21:08] <fuzzie> that is too late
[21:21:39] <fuzzie> i mean, i guess it is simple: BuiltinToken will just corrupt memory
[21:22:27] <Avenger> memcpy( dest, Decoded, TokenLength ); ?
[21:22:33] <fuzzie> yes
[21:22:42] <fuzzie> i was just wondering whether there were any problems with your new code
[21:23:07] <Avenger> no
[21:23:13] <fuzzie> it looks fine
[21:23:25] <Avenger> the length of the strings is calculated first
[21:23:33] <Avenger> by int TokenLength = BuiltinToken( Token, NULL );
[21:23:36] <fuzzie> well, there are Length checks in some places
[21:23:38] <fuzzie> and not in others
[21:23:41] <Avenger> in TLKImporter::GetNewStringLength
[21:24:11] <Avenger> maybe it is too complicated, though
[21:24:27] <fuzzie> it doesn't matter, i was just looking for the bug
[21:27:23] <fuzzie> i don't see how your memcpy change could have broken it
[21:29:29] <fuzzie> oh
[21:29:44] <fuzzie> this worked before?
[21:30:30] <fuzzie> hm, no, i guess you changed a lot of code here
[21:32:27] <fuzzie> so you broke 2da lookups, i guess
[21:32:45] <fuzzie> now if PCStats && PCStats->SoundSet[0], but not csound[index], you force iwd-style
[21:33:34] <fuzzie> i don't know if that ever happens, but i guess you would know
[21:33:41] <fuzzie> so 'broke' is unfair, i don't know :)
[21:34:43] <CIA-26> GemRB: 03avenger_teambg * r6bd2e9de5945 10gemrb/gemrb/core/Scriptable/Actor.cpp: initialized some more variables in Actor
[21:35:03] <Avenger> if you look for my no sound stuff, then this couldn't possibly break it
[21:35:16] <fuzzie> i look at the iwd verbal constants
[21:35:22] <Avenger> the broken stuff is the DisplayStringHead action, which displays an strref with the associated voice
[21:35:33] <Avenger> some iwd constants surely work
[21:35:38] <Avenger> i heard them
[21:36:16] <fuzzie> but, no, that is not your bug
[21:36:36] <fuzzie> it's just that the old code would look in the 2DA file if PCStats->SoundSet existed, but csound[index] was unset
[21:37:29] <Avenger> that's how iwd is
[21:37:34] <fuzzie> but bg1/bg2?
[21:37:41] <Avenger> bg1/bg2 has csound
[21:38:03] <fuzzie> so, it's never necessary to check the 2DA if SoundSet exists, even if csound[index] is 0?
[21:38:04] <Avenger> but PCStats exists only for pcs
[21:38:30] <Avenger> yes, if there is soundset, then the 2da is not needed
[21:38:43] <fuzzie> ok.
[21:38:50] <Avenger> unless, you are a shapechanged monster
[21:39:01] <Avenger> those monsters use the monster 2da
[21:39:16] <Avenger> so there will be some trick
[21:41:28] <fuzzie> oh
[21:41:28] <fuzzie> ok
[21:41:30] <fuzzie> yes, it was you
[21:41:52] <fuzzie> this breaks everything except constants
[21:42:05] <fuzzie> one moment
[21:42:13] <Avenger> hmm
[21:43:36] <fuzzie> i am happy to have these small bugs to find :)
[21:43:44] <CIA-26> GemRB: 03fuzzie * r021e0438bda1 10gemrb/gemrb/core/GameScript/GSUtils.cpp: fix sound for non-const speech
[21:46:48] <fuzzie> i just don't really have any idea how all this works
[21:46:58] <Avenger> hmm
[21:47:05] <Avenger> you fixed my bug?
[21:47:07] <fuzzie> yes :)
[21:47:26] <Avenger> the one about DS_SPEECH?
[21:47:29] <fuzzie> you just didn't memcpy the sound from the string block
[21:47:34] <Avenger> oh
[21:47:55] <fuzzie> on the third time i looked carefully, i saw it! but easy to miss
[21:48:22] <Avenger> this is again a line deleted accidentally
[21:48:27] <Avenger> i'm pretty sure :)
[21:48:32] <fuzzie> no
[21:48:43] <fuzzie> you just used sb.Sound directly before, so it didn't need to be copied
[21:50:30] <Avenger> yes, i need Sound because of iwd
[21:50:42] <Avenger> it has pathname before the resref
[21:51:54] <Avenger> well, i'm happy to have you around fixing these bugs ;)
[21:53:51] <Avenger> yeah, it talks again
[21:54:21] <Avenger> but there is still a bug
[21:54:41] <Avenger> [ResourceManager]: Searching for male001!
[21:54:52] <Avenger> that ! is surely some memory garbage
[21:55:30] --> nickdaly has joined #GemRb
[21:56:07] <Avenger> there is no ! as csound in bg2
[21:58:20] <Avenger> doh
[21:58:31] <Avenger> csound.2da is an original file
[21:58:47] <Avenger> some entries look like this: !m, !l
[21:58:59] <Avenger> i don't know what ! means
[22:00:45] <nickdaly> maybe it's like the ! operator in CSS (important, don't allow overriding)? just tossing out ideas...
[22:02:49] <Avenger> i will simply ignore it until i know better
[22:03:58] <fuzzie> ok. no corruption bug, good :)
[22:04:22] <Avenger> yes, not corruption, just some unsupported/unknown feature
[22:04:30] <Avenger> now the guy groans as expected :)
[22:04:43] <Avenger> one of those is the get hit sound :)
[22:06:27] <CIA-26> GemRB: 03avenger_teambg * r85131dc2b8eb 10gemrb/gemrb/core/Scriptable/Actor.cpp: fix (ignore) weird ! character in csound.2da
[22:08:06] <fuzzie> :)
[22:11:16] <fuzzie> if they are all that sort of sound, maybe nickdaly is on the right lines, but it means 'only play sometimes'?
[22:11:47] <Avenger> there is still that crasher bug in bg1, looks like it happens when i close the window but the engine tries to close it too?
[22:11:56] <Avenger> hmm yes, it could be a random stuff
[22:12:16] <Avenger> 'container window'
[22:13:37] <-- SiENcE has left IRC (Quit: cya @all)
[22:26:50] <Avenger> meh, selection of dead chars should work in temples :)
[22:27:24] <Avenger> see you tomorrow
[22:27:26] <-- Avenger has left IRC (Quit: bye!)
[22:28:42] <fuzzie> drat, bg2 tutorial still doesn't work
[22:32:44] <fuzzie> thought i finally had it there
[22:37:14] --> nickdaly` has joined #GemRb
[22:39:05] <-- nickdaly has left IRC (Ping timeout: 265 seconds)
[22:43:47] <fuzzie> oh dear
[22:44:01] <fuzzie> we do spell learning in the guiscript?
[22:44:43] <fuzzie> why?!
[22:45:29] <fuzzie> lynx noted it as "polished the learning from scrolls", but it just breaks it
[22:53:01] <fuzzie> turn undead fails, too
[22:54:40] <fuzzie> and it would help if gemrb didn't claim target had no items.. :p
[23:18:52] <fuzzie> another bug from 2008 :(
[23:38:55] <-- nickdaly` has left IRC (Ping timeout: 248 seconds)