[03:34:22] --> Gekz has joined #GemRB
[03:36:32] --> Gekz` has joined #GemRB
[03:47:26] <-- Gekz` has left IRC (Read error: 60 (Operation timed out))
[03:51:57] <-- Gekz_ has left IRC (Connection timed out)
[03:54:39] <-- Gekz has left IRC (Success)
[05:28:26] <-- tombhadAC has left IRC (Read error: 113 (No route to host))
[05:45:08] --> Gekz has joined #GemRB
[06:39:53] <-- Gekz has left IRC (Read error: 104 (Connection reset by peer))
[06:52:26] --> Gekz has joined #GemRB
[08:14:03] --> lynxlynxlynx has joined #gemrb
[08:14:03] --- ChanServ gives channel operator status to lynxlynxlynx
[08:37:22] <-- |Cable| has left IRC (Remote closed the connection)
[08:51:44] --> xrogaan has joined #gemrb
[09:36:35] --> Gekz_ has joined #GemRB
[11:22:49] <CIA-22> gemrb: 03lynxlupodian * r7230 10/gemrb/trunk/gemrb/plugins/FXOpcodes/FXOpc.cpp: made the luck affecting effects also affect damageluck aka "minimum damage modifier"
[11:28:03] <CIA-22> gemrb: 03lynxlupodian * r7231 10/gemrb/trunk/gemrb/plugins/Core/ (Actions.cpp Actor.cpp Actor.h):
[11:28:03] <CIA-22> gemrb: extended LuckyRoll to check either luck or damageluck and adjusted callers;
[11:28:03] <CIA-22> gemrb: apply the saving throw bonus on lookup rather than on generation
[11:54:01] <-- xrogaan has left IRC ("Why ?")
[12:09:12] <raevol> lynxlynxlynx: is spellcasting not implemented for bg1?
[12:09:41] <CIA-22> gemrb: 03lynxlupodian * r7232 10/gemrb/trunk/gemrb/GUIScripts/bg2/LevelUp.py: bg2: display the backstab multiplier gain instead of the new value on levelup
[12:09:45] <fuzzie> raevol: what's going wrong for you?
[12:09:54] <lynxlynxlynx> spellcasting in general is not ideal yet, but many spells should more or less work
[12:10:02] <raevol> i couldn't cast healing spells when i tried it the other day
[12:10:05] <fuzzie> our bg1 chargen doesn't memorise spells, but a sleep should fix that
[12:10:21] <fuzzie> but yesterday Avenger fixed a distance bug which might help heal spellcasting
[12:10:34] <raevol> hmm ok
[12:10:49] <raevol> is that the sight bug? or something completely different?
[12:10:54] <fuzzie> before that casting would sometimes just do nothing because it couldn't get close enough
[12:10:59] <fuzzie> something completely different
[12:11:03] <raevol> ah k
[12:11:17] <raevol> yea that sounds like the problem i was having
[12:11:21] <raevol> i'll have to try it again
[12:12:30] <raevol> has there been any progress on the sight bug?
[12:13:18] <fuzzie> i don't know why it happens, i guess it's my fault and i'm not filtering targets properly?
[12:13:46] <raevol> ah, i dunno
[12:14:02] <fuzzie> but i don't quite know what's going on :)
[12:14:05] <raevol> imoen gets local map omnipotence :P hehe
[12:14:08] <raevol> yea
[12:14:26] <fuzzie> i think the AI scripts all do See(NearestEnemyOf(Myself)) so i don't know why that would be failing..
[12:14:52] <raevol> well does that check if the nearest enemy is farther than their sight?
[12:14:56] <fuzzie> oh hm, the default AI script does InWeaponRange
[12:15:34] <fuzzie> and that indeed doesn't check sight
[12:15:49] <raevol> wow, what's the range on the bow then?
[12:15:56] <raevol> and on guard swords? heh
[12:16:27] <fuzzie> our AttackedBy implementation is also amazingly dumb
[12:16:42] <raevol> i see
[12:16:50] <fuzzie> so it could be various things, i guess :/
[12:18:31] <lynxlynxlynx> btw raevol, you don't have to grind through the whole game
[12:18:47] <lynxlynxlynx> you can cheat and grant your party some xp
[12:19:00] <raevol> hehe ok
[12:19:07] <lynxlynxlynx> the critical path is the most important thing to test right now
[12:19:19] <fuzzie> playing is fun though!
[12:19:53] <lynxlynxlynx> GemRB.SetPlayerStat(n, 44, newxp) <-- in the gemrb console, where n is the char number in the party
[12:20:09] <raevol> ah cool, ok
[12:20:13] <lynxlynxlynx> fuzzie: especially if you can use icbms like now :)
[12:20:23] <raevol> haha
[12:21:20] <raevol> i need to redo autogen every time i svn co?
[12:21:26] <lynxlynxlynx> no
[12:21:29] <lynxlynxlynx> just run make
[12:21:30] <raevol> oh ok
[12:21:56] <lynxlynxlynx> if you get some *.spl errors, either remove that string from your makefiles or just redo configure
[12:22:08] <raevol> hmm ok
[12:25:12] <raevol> yes i can cast heal spells now :)
[12:25:25] <fuzzie> hooray
[12:26:26] <raevol> hmm, where is the gemrb console?
[12:26:38] <fuzzie> ctrl-space
[12:27:37] <raevol> game doesn't put an icon on the player portrait when he levels, this is known?
[12:28:12] <fuzzie> i think lynx said that we used the wrong icon?
[12:28:21] <raevol> hmm and it isn't saving my large sword proficiency stars...
[12:28:56] <lynxlynxlynx> the icons can be delayed due to the portrait bar desync
[12:29:05] <raevol> ah k
[12:29:08] <lynxlynxlynx> raevol: try going to the game or another screen
[12:29:49] <raevol> no, still no icons
[12:31:38] <lynxlynxlynx> ok, but what about the profs?
[12:31:53] <raevol> profs? i'm sorry, what's that?
[12:33:06] <fuzzie> proficiencies
[12:33:10] <lynxlynxlynx> shorthand for proficiencies
[12:33:21] <raevol> oh, so when i made my fighter he had 2 large sword and 2 axe
[12:33:31] <raevol> now he only has 2 axe, and i even put one in large sword when i levelled
[12:33:35] <raevol> it seems to not save that stat
[12:33:57] <lynxlynxlynx> unpause the game and revisit the records window
[12:34:13] <fuzzie> in bg1 it's a stat, should the pause state matter?
[12:34:26] <raevol> game is unpaused
[12:34:34] <lynxlynxlynx> it shouldn't, no
[12:34:50] <lynxlynxlynx> the main thing is to get the records window to redraw
[12:35:01] <lynxlynxlynx> just to make sure that it isn't just a display bug
[12:35:24] <lynxlynxlynx> i think i had a similar problem in iwd, but i'm not sure anymore
[12:35:37] <lynxlynxlynx> iirc also the levelup code calls the refresh in the end
[12:36:04] <raevol> i'm not sure, i've been walking around and such, and it's still not there
[12:36:15] <raevol> also reported my large sword prof as 0 as i was levelling up
[12:36:20] <raevol> on the levelup screen
[12:36:36] <lynxlynxlynx> it does
[12:37:20] <lynxlynxlynx> hmm
[12:37:47] <raevol> huh i was just attacked by an assassin in nashkell in, she cast a spell, and froze
[12:37:51] <raevol> and i can't attack her :/
[12:37:58] <lynxlynxlynx> make a note on the wiki about this prof thing
[12:38:22] <lynxlynxlynx> the assassin probably got held or otherwise incapacitattd, just wait it out
[12:38:31] <fuzzie> ProfsSave looks like it dsoes the right thing
[12:38:47] <fuzzie> except i don't understand why it adds one to the row count
[12:39:09] <lynxlynxlynx> chargen also uses it, so it is bound to work
[12:39:15] <fuzzie> if that's necessary then GUIREC isn't doing it..
[12:39:21] <raevol> k assassin just started fighting again, i wonder what spell she cast
[12:39:25] <fuzzie> but LUProfsSelection seems to do it everywhere
[12:44:52] <raevol> is there a way to get the x,y coords of the cursor?
[12:45:35] <lynxlynxlynx> i think ctrl+x
[12:45:54] --> pupnik_ has joined #gemrb
[12:46:09] <raevol> doesn't seem to do it
[12:46:38] <lynxlynxlynx> it prints to the console, not the window
[12:47:24] <raevol> yea, don't see anything there :/
[12:49:57] <lynxlynxlynx> maybe it is some other key
[12:50:05] <lynxlynxlynx> look at the file in the docs folder
[12:50:40] <raevol> mm, docs says it's ctrl+x
[12:51:18] <lynxlynxlynx> it works here
[12:51:49] <raevol> oh need to enable cheatkeys
[12:54:14] <raevol> i can't find the hidden ankegh armor in nashkel :(
[12:55:52] <lynxlynxlynx> alt doesn't help?
[12:55:55] <raevol> ah found it
[12:56:07] <raevol> oh it's alt! i keep using tab
[12:58:13] <raevol> hmm no ring by the FAI though, must have the wrong version
[13:00:52] <lynxlynxlynx> yeah
[13:01:45] <lynxlynxlynx> Large Sword proficiency wasn't saved on my fighter from character creation, or added point when I levelled. - raevol <-- didn't you say you had the proficiency before leveling up?
[13:01:48] <-- pupnik has left IRC (Read error: 110 (Connection timed out))
[13:01:56] <lynxlynxlynx> btw, there's no need to sign each item ^^
[13:02:12] <raevol> haha k, was doing that in case you wanted to know who to aska bout it
[13:02:17] <raevol> um
[13:02:31] <raevol> so i made my fighter with 2 in axe and 2 in long sword
[13:02:41] <raevol> and when i levelled up just now, from levels 2-6 he had 0 in sword
[13:02:50] <lynxlynxlynx> yes
[13:02:55] <raevol> and level 3 or whatever i put one in sword, and it didn't save
[13:03:01] <lynxlynxlynx> but did he have it before then?
[13:03:06] <raevol> honestly i forget
[13:03:10] <raevol> let me see if i have an old save
[13:03:12] <lynxlynxlynx> ok
[13:03:39] <raevol> no, on my save immediately following character creation he has no sword
[13:03:45] <raevol> let me try making a new character to see again
[13:04:29] <raevol> yea, doesn't save the large sword
[13:04:33] <raevol> let's see what else it does
[13:05:23] <raevol> i took 2 in spear and 2 in blunt weapons and it saved correctly
[13:06:03] <raevol> so looking at the sheet during character creation, even then it doesn't save large sword
[13:06:35] <raevol> it saves every other skill
[13:06:39] <raevol> let me try a different class
[13:06:55] <lynxlynxlynx> no need, this is class agnostic
[13:07:08] <lynxlynxlynx> large sword - this is the last prof per chance? could be an off-by-1 error somewhere
[13:07:23] <raevol> it's the first
[13:07:44] <lynxlynxlynx> good for that aswell heh
[13:08:01] <lynxlynxlynx> and matches what fuzzie said earlier
[13:08:28] <raevol> yea
[13:10:14] <lynxlynxlynx> fuzzie: did you mean the ProfCount line with that?
[13:12:24] <lynxlynxlynx> ah, looks like nothing handles bg1 there due to all the checks
[13:12:36] <lynxlynxlynx> i'll make a patch you can tr
[13:12:38] <lynxlynxlynx> y
[13:13:35] <raevol> ok cool
[13:18:38] <raevol> holycrap random encounter with gibberlings, dogs, bandits, hobogoblins, and a half-ogre
[13:22:17] <lynxlynxlynx> i was wrong
[13:23:59] <CIA-22> gemrb: 03lynxlupodian * r7233 10/gemrb/trunk/gemrb/GUIScripts/LUProfsSelection.py: simplified the logic in ProfsSave and added a debug statement
[13:26:47] <CIA-22> gemrb: 03lynxlupodian * r7234 10/gemrb/trunk/gemrb/ (9 files in 8 dirs): added backstab support and combat now cancels invisibility
[13:27:30] <lynxlynxlynx> raevol: try chargen now
[13:27:36] <lynxlynxlynx> there should be some extra output
[13:27:58] <raevol> ok gimme a sec
[13:28:48] <raevol> cd ..
[13:28:50] <raevol> woop
[13:31:41] <raevol> hmm it won't let me clock done on the prof selection now
[13:31:45] <raevol> let me wopy the output
[13:32:26] <raevol> http://pastebin.org/19264
[13:33:18] <lynxlynxlynx> ups
[13:33:23] <raevol> :D
[13:33:36] <lynxlynxlynx> suits me for doing that without testing it
[13:34:03] <raevol> that's what i'm for :>
[13:35:05] <lynxlynxlynx> i was wrong about being wrong
[13:35:13] <lynxlynxlynx> my attention is too divided
[13:35:38] <raevol> :[
[13:36:24] <lynxlynxlynx> http://pastebin.com/d3328a8a8
[13:36:26] <lynxlynxlynx> try that
[13:36:47] <lynxlynxlynx> it probably won't apply due to the spaces, but just redo it if that happens
[13:38:02] <raevol> oh boy, i'm not sure how to apply a diff
[13:38:52] <lynxlynxlynx> wget http://pastebin.com/pastebin.php?dl=d3328a8a8 -O - | patch -p1
[13:39:15] <lynxlynxlynx> just redo it
[13:39:17] <raevol> in the folder that LUProfSelection.py is?
[13:39:42] <lynxlynxlynx> which folder are you in?
[13:39:51] <lynxlynxlynx> that was meant to be run from the top gemrb dir
[13:39:58] <raevol> ok i'll go there
[13:41:50] <raevol> 2 chunks failed and were put into a .rej? sorry i'm a noob
[13:42:50] <lynxlynxlynx> yeh
[13:43:03] <lynxlynxlynx> that's why i keep telling you to just redo those changes manually
[13:46:18] <raevol> ok yes that fixed so i can hit done on the profs dialogue
[13:46:29] <raevol> large swords aren't saved though
[13:48:10] <lynxlynxlynx> now you can uncomment that print line
[13:48:28] <raevol> hehe i did
[13:48:41] <lynxlynxlynx> what was the output?
[13:48:55] <raevol> when it says "setting 89 BG1LARGE_SWORD to 0 ; 0 0"
[13:49:06] <raevol> and
[13:49:14] <raevol> setting 89 BG1LARGE_SWORD to 1 ; 0 0
[13:49:30] <Gekz_> lol
[13:49:38] <raevol> those were different tries
[13:49:38] <lynxlynxlynx> ok
[13:49:44] <lynxlynxlynx> huh
[13:50:06] <lynxlynxlynx> do it a couple of times, i doubt it is random
[13:50:30] <lynxlynxlynx> then put that output somewhere and note what everything you chose during chargen
[13:52:46] <raevol> http://pastebin.com/m7ab6393c
[13:53:25] <raevol> OH
[13:53:38] <raevol> when i don't put any in large sword, it still has that last line of setting 89 to 0
[13:53:48] <lynxlynxlynx> yes, it seems to wrap around
[13:53:52] <raevol> something is setting 89 to 0 every time
[13:55:34] <lynxlynxlynx> yeah, that +1 causes it
[13:55:50] <lynxlynxlynx> the table tries to read an unexisting line and returns 0, the default value
[13:55:57] <raevol> hmm
[13:56:17] <lynxlynxlynx> which is the same as the one for large swords
[13:56:55] <lynxlynxlynx> looks like it is my fault too
[13:57:27] <raevol> so i commented out the +1 and it seems to work
[13:57:36] <raevol> but what was the original intention of the +1?
[13:57:50] <lynxlynxlynx> i'm investigating it
[13:58:10] <raevol> hmm :/
[13:58:44] <lynxlynxlynx> i changed it so it wasn't hardcoded anymore
[14:01:53] <CIA-22> gemrb: 03lynxlupodian * r7235 10/gemrb/trunk/gemrb/GUIScripts/LUProfsSelection.py: fixed ProfSave for non bg2 games
[14:02:57] <fuzzie> :)
[14:04:37] <raevol> seems to do it, but i just noticed something new
[14:05:21] <raevol> i made a fighter/cleric and got to skills, saw that large sword wasn't an option (should have known), went back to class and picked just fighter, but "known priest spells" are still showing up on the character sheet
[14:06:21] <raevol> hmm, in game now and the character record shows i am a fighter but i can go to the priest spell scroll and choose spells and everything
[14:06:39] <fuzzie> huh
[14:06:57] <raevol> don't have a spellcasting button though
[14:07:25] <fuzzie> level 1 spells?
[14:07:30] <raevol> character record also shows i get 2 bonus level 1 priest spells
[14:07:35] <raevol> yea
[14:07:37] <fuzzie> hmph
[14:08:29] <lynxlynxlynx> buggy undo code
[14:08:34] <lynxlynxlynx> or missing
[14:08:40] <fuzzie> or something else :/
[14:09:03] <fuzzie> i'm pretty sure unsetDivineSpells gets called unless someone sabotaged it, because it was a pain making it stop segfaulting
[14:09:56] <lynxlynxlynx> maybe it is just buggy then
[14:10:10] <lynxlynxlynx> it works in bg2, but bg1 has a different chargen system
[14:12:04] <fuzzie> hm, my copy has print("unsetDivineSpells")
[14:12:21] <fuzzie> do you get that showing up when you go back, raevol?
[14:13:05] <raevol> let me check, one sec
[14:15:57] <raevol> i'm sorry do you mean in the console?
[14:16:00] <fuzzie> yes
[14:16:02] <fuzzie> sorry, the terminal
[14:16:35] <raevol> yes it does show up
[14:16:42] <raevol> and unsetMageSpels
[14:16:47] <raevol> Spells*
[14:19:10] <fuzzie> well, the bg1 code removes them in a different order to guicommon's RemoveKnownSpell
[14:19:11] <raevol> what is the max xp bg1 supports?
[14:19:12] <fuzzie> i thought that was working, though. meh.
[14:20:03] <lynxlynxlynx> you can use 80000
[14:20:32] <raevol> oh i went to 200,000
[14:20:41] <raevol> :x
[14:21:55] <lynxlynxlynx> no harm
[14:22:06] <raevol> my druid is level 11 :D
[14:22:07] <raevol> haha
[14:22:28] <raevol> i used a bg1 xp cap remover back in the day and got a druid that could polymorph
[14:22:39] <raevol> i dunno if the original game supported that or if i was using a mod
[14:33:23] <lynxlynxlynx> raevol: try changing gemrb/GUIScripts/bg1/CharGenGui.py:316
[14:34:34] <lynxlynxlynx> before theGemRB.RemoveSpell call add print "level:", level, "spell index:", j, "rc:",
[14:35:03] <lynxlynxlynx> and prepend just print to the next line
[14:35:06] <raevol> ok
[14:38:41] <raevol> for j in range(0, GemRB.GetKnownSpellsCount (MyChar, IE_SPELL_TYPE_PRIEST, level) ):
[14:38:41] <raevol> print "level:", level, "spell index:", j, "rc:",
[14:38:41] <raevol> GemRB.RemoveSpell(MyChar,IE_SPELL_TYPE_PRIEST, level, 0)
[14:38:45] <raevol> it should look like that?
[14:39:24] <lynxlynxlynx> no
[14:39:32] <lynxlynxlynx> x> and prepend just print to the next line <-- you forgot this
[14:40:07] <raevol> how would i do that though
[14:40:11] <raevol> i don't know python
[14:40:48] <lynxlynxlynx> heh
[14:40:58] <lynxlynxlynx> print GemRB.RemoveSpell(MyChar,IE_SPELL_TYPE_PRIEST, level, 0)
[14:41:54] <raevol> gotcha -.- ok
[14:44:52] <raevol> http://pastebin.com/m1eab0772
[14:46:01] <lynxlynxlynx> you didn't get the runtime error before?
[14:46:07] <fuzzie> hm, maybe the spell index should be 0 every time?
[14:46:16] <fuzzie> i guess this is why the guicommon code does it backwards
[14:46:53] <lynxlynxlynx> it is 0
[14:47:11] <raevol> no, don't get that error without the prints
[14:47:18] <fuzzie> oh. :)
[14:48:04] <lynxlynxlynx> for level in range(0, 5):
[14:48:14] <lynxlynxlynx> after that add: print GemRB.GetKnownSpellsCount (MyChar, IE_SPELL_TYPE_PRIEST, level)
[14:48:48] <lynxlynxlynx> the others were removed succesfully
[14:48:55] <fuzzie> lynxlynxlynx: can it not just be replaced with a call to RemoveKnownSpells?
[14:49:17] <lynxlynxlynx> that would be ideal, yes
[14:49:18] <fuzzie> i just think, it's maybe pointless to debug it if you can replace with shared code..
[14:49:49] <raevol> http://pastebin.com/m3aee7204
[14:51:00] <lynxlynxlynx> odd
[14:51:45] <lynxlynxlynx> RemoveKnownSpells (Slot, IE_SPELL_TYPE_PRIEST, 1, 1, 1)
[14:52:00] <lynxlynxlynx> try just using that after the first print and comment out the rest of the function
[14:52:11] <lynxlynxlynx> err
[14:52:20] <lynxlynxlynx> RemoveKnownSpells (MyChar, IE_SPELL_TYPE_PRIEST, 1, 1, 1)
[14:52:50] <raevol> the first print being the one we just added after the first for?
[14:53:05] <fuzzie> no, the print right at the top of that function
[14:53:12] <fuzzie> the one printing 'unsetDivineSpells'
[14:53:19] <raevol> oh ok
[14:53:45] <fuzzie> that RemoveSpell call really ought to only ever remove the one spell, so that's interesting
[14:54:47] <raevol> when i hit back i am getting a traceback error to the line we just added every time i press back, and it won't actually move back
[14:55:26] <fuzzie> right, CharGenGui doesn't import GUICommon
[14:55:48] <fuzzie> it needs an 'from GUICommon import RemoveKnownSpells' at the top of the file i guess?
[14:56:04] <raevol> well, it has 3 errors about CharGenCommon and then the CharGenGui one
[14:56:20] <raevol> in the traceback that is
[14:56:28] <fuzzie> the bottommost item in the traceback is the one which went wrong :)
[14:56:44] <raevol> ok
[14:57:14] <fuzzie> so try adding that import to the top of the file, where the other import lines are, the order doesn't matter
[14:58:45] <raevol> MyChar is not defined
[14:59:24] <fuzzie> heh, right, i guess the new line you added has to go below the 'MyChar = GemRB.GetVar ("Slot")' line, which needs to be uncommented
[14:59:33] <raevol> i see
[15:00:05] <fuzzie> sorry, i should've noticed that too
[15:00:49] <raevol> everything seems to work as expected now
[15:00:59] <raevol> i have 2 spell slots in my priest scroll, but no spells to memorize
[15:04:08] <raevol> brb a sec
[15:06:17] <lynxlynxlynx> i guess that's from the wisdom bonus
[15:06:47] <raevol> back
[15:06:56] <raevol> yea i would assume
[15:07:58] <lynxlynxlynx> wierd that the import is needed - GUICommonWindows is imported and it imports GUICommon
[15:08:15] <lynxlynxlynx> raevol: you can check by making a char low on wisdom
[15:08:24] <lynxlynxlynx> or checking the records info
[15:09:43] <raevol> sure
[15:10:03] <fuzzie> i don't know if the import is needed, i just suggested it
[15:11:00] <raevol> yes with low qisdom i have no spell slots
[15:11:28] <lynxlynxlynx> raevol: do you have that traceback somewhere?
[15:12:24] <raevol> i could reproduce it? is this without the import?
[15:12:48] <lynxlynxlynx> it appeared so from what you've written
[15:13:32] <raevol> huh when i remove that import it works fine
[15:13:39] <raevol> maybe this was because mychar wasn't defined?
[15:14:03] <lynxlynxlynx> yes, it could be
[15:14:12] <lynxlynxlynx> that definitely threw an error
[15:14:14] <lynxlynxlynx> ok
[15:14:25] <raevol> i forget what that error was
[15:14:37] <raevol> but removing that import now has no error
[15:14:49] <fuzzie> :)
[15:14:51] <lynxlynxlynx> continue playing
[15:15:17] <CIA-22> gemrb: 03lynxlupodian * r7236 10/gemrb/trunk/gemrb/GUIScripts/bg1/CharGenGui.py: bg1: fixed unsetDivineSpells
[15:25:16] <raevol> oh my internal clock is all messed up
[15:25:22] <raevol> gotta lay down for a bit, cya guys
[15:45:58] <-- Gekz has left IRC (Read error: 54 (Connection reset by peer))
[15:48:01] <CIA-22> gemrb: 03lynxlupodian * r7237 10/gemrb/trunk/gemrb/GUIScripts/bg1/CharGenGui.py: bg1: removed a useless call in unsetMageSpells
[15:50:04] <CIA-22> gemrb: 03lynxlupodian * r7238 10/gemrb/trunk/gemrb/GUIScripts/GUICommon.py: fixed two typos in the comments of RemoveKnownSpells
[18:05:03] --> Avenger has joined #gemrb
[18:05:05] --- ChanServ gives channel operator status to Avenger
[18:05:10] <Avenger> hello
[18:05:50] <Avenger> lynx: i change the cure invisibility part a bit, this part is quite clear from re
[18:07:26] <lynxlynxlynx> as long as it works :)
[18:08:53] <Avenger> invis won't affect this line, right? int defense = target->GetDefense(damagetype);
[18:09:09] <Avenger> would it affect criticalhitbonus?
[18:09:18] <lynxlynxlynx> we do that in the effect itself - give an ac bonus
[18:09:30] <Avenger> if not, then i could move CureInvisibility a bit up
[18:09:31] <lynxlynxlynx> negative on the critical hit one
[18:09:46] <Avenger> so i can move it up, right?
[18:09:50] <lynxlynxlynx> the "curing" needs to happen in a lot more places
[18:10:03] <Avenger> now i just talk about attack
[18:10:19] <lynxlynxlynx> do what you think is best, i just added it where it was convenient
[18:10:36] <Avenger> well, i don't know about half the -possible- implications :)
[18:11:08] <Avenger> i just added CureSanctuary, so it is not a single line i talk about :)
[18:11:08] <lynxlynxlynx> oh, you mean the calls to it?
[18:11:19] <lynxlynxlynx> in the attack function
[18:11:25] <Avenger> yes
[18:11:34] <lynxlynxlynx> it has to be done after the modifydamage, or backstab won't work
[18:11:36] <Avenger> i could move it up if it doesn't change any outcome
[18:11:47] <Avenger> haha, ok
[18:11:52] <lynxlynxlynx> unless you change the function by adding another parameter or something along those lines
[18:11:53] <Avenger> i knew it could have some effect
[18:12:00] <Avenger> no, i will move it down then
[18:12:19] <lynxlynxlynx> it's in many places since the function can return prematurely
[18:12:39] <Avenger> yes i see that
[18:13:47] <lynxlynxlynx> so why move it then?
[18:14:12] <lynxlynxlynx> and http://pastebin.com/d772110b9 <-- this is correct?
[18:16:58] <CIA-22> gemrb: 03avenger_teambg * r7239 10/gemrb/trunk/gemrb/plugins/Core/ (Actor.cpp Actor.h ActorBlock.cpp):
[18:16:58] <CIA-22> gemrb: a better approximation of CureInvisibility
[18:16:58] <CIA-22> gemrb: added CureSanctuary as well
[18:17:20] <Avenger> hmm i wonder why it was below setting duration
[18:18:16] <Avenger> yes, it should be before setting timingmode and duration for sure
[18:18:38] <Avenger> and with the current sizeof, it is also damaging the random_value
[18:18:55] <Avenger> i wonder why did i do that...
[18:23:31] <lynxlynxlynx> this is from a month ago
[18:23:53] <lynxlynxlynx> r6930
[18:26:56] <lynxlynxlynx> and why did you move the curing call? now misses don't cancel invisibility unless they are critical
[18:27:10] <Avenger> are you sur
[18:27:21] <Avenger> i don't see the memcpy in that place
[18:27:45] <Avenger> ahh that is another part
[18:27:58] <Avenger> yep, this is clearly a bug
[18:28:27] <lynxlynxlynx> oh, we were both partly right
[18:28:46] <Avenger> probably the target needs to be overwritten too
[18:29:05] <lynxlynxlynx> it has to be in for the miss too like i said, but it also needs to happen later for hits
[18:29:32] <Avenger> well you said it should be after modify damage :P
[18:30:01] <lynxlynxlynx> yes
[18:30:41] <CIA-22> gemrb: 03lynxlupodian * r7240 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: cure invisibility on normal misses too
[18:31:15] <Avenger> fixed the apply effect too?
[18:31:24] <Avenger> add the target change too
[18:31:33] <Avenger> it should be pre target like in the other apply effect
[18:32:10] <lynxlynxlynx> ok
[18:33:26] <CIA-22> gemrb: 03lynxlupodian * r7241 10/gemrb/trunk/gemrb/plugins/FXOpcodes/FXOpc.cpp: fixed the effect init in fx_apply_effect_curse
[18:35:59] <lynxlynxlynx> question
[18:36:12] <lynxlynxlynx> i'm continuing the work on bg2 style magic resistance
[18:36:38] <lynxlynxlynx> i've added a ieResRef parameter to one of the CreateEffect functions
[18:36:51] <lynxlynxlynx> how do I assign it a default value?
[18:37:04] <lynxlynxlynx> I tried NULL and "", but gcc complained
[18:38:09] <Avenger> can you show me a pastebin cut?
[18:38:09] <fuzzie> "ieResRef blah = NULL" seems to be used in existing headers (it goes in the .h, not the .cpp)?
[18:38:20] <fuzzie> i don't know why that would work though
[18:38:49] <lynxlynxlynx> *wouldn't
[18:39:10] <fuzzie> well, it's used in existing headers, it must work
[18:39:14] <lynxlynxlynx> it must've been a different error stopping it before, now it went further with NULL
[18:39:15] <Avenger> why don't just overwrite the resource field?
[18:39:28] <Avenger> when needed
[18:39:46] <lynxlynxlynx> it is almost always needed
[18:40:08] <Avenger> hmm
[18:40:26] <Avenger> tell me 2 places :)
[18:40:36] <lynxlynxlynx> there are none yet :P
[18:40:40] <Avenger> LOL
[18:41:27] <lynxlynxlynx> to check the magic resistance, we need to know if the effect came from a spell and if that spell has the hostile flag
[18:41:42] <lynxlynxlynx> http://pastebin.com/d503d054c <-- current code
[18:43:21] --> kingron has joined #gemrb
[18:44:22] <Avenger> somehow this seems too complicated...
[18:45:06] <Avenger> i should look at the effect code more, in the original
[18:45:06] <lynxlynxlynx> it is pretty, because it is unfinished - potentially a lot of the callers would need to be adjusted
[18:45:21] <Avenger> i think the resistance is determined on spell level
[18:45:24] <Avenger> once
[18:45:32] <lynxlynxlynx> it should be
[18:45:44] <lynxlynxlynx> i think we even have something like that already
[18:46:04] <lynxlynxlynx> i read a comment about iwd2 on-the-fly resistance or something similar
[18:46:21] <Avenger> yes, that is the FX_ABORT thing
[18:46:44] <Avenger> that could make part of a spell resisted
[18:47:08] <lynxlynxlynx> the whole if it is the first effect that fails
[18:47:16] <Avenger> yes
[18:47:16] <lynxlynxlynx> but this is not consistent
[18:51:45] <lynxlynxlynx> fuzzie: it was my fault, i modified the wrong prototype ><
[19:18:07] <lynxlynxlynx> is it just me or do we suddenly take longer to process the fog of war init? the startup takes about a second there now
[19:19:59] <Avenger> hmm, it shouldn't take any time
[19:20:15] <lynxlynxlynx> [KEYImporter]: Searching for fogowar.bam...[FOUND]
[19:20:17] <lynxlynxlynx> pause
[19:20:35] <lynxlynxlynx> [Core]: Loading Fog-Of-War bitmaps...[OK] and then it speeds ahead
[19:21:14] <Avenger> what machine you got? :)
[19:22:09] <lynxlynxlynx> same as before, athlon-xp @ 1833 MHz
[19:22:24] <Avenger> mine stops for a breath too
[19:22:27] <fuzzie> tried turning 3D Acceleration off?
[19:22:31] <Avenger> not a second, definitely
[19:22:45] <Avenger> probably 1/10 second, but it is noticeable
[19:22:56] <lynxlynxlynx> 3D Acceleration? We suddenly do that??
[19:23:04] <Avenger> i can read fogowar.bam
[19:23:18] <lynxlynxlynx> for me it is more like 2-3 seconds
[19:23:24] <Avenger> 3d acceleration is the flag that makes the fog of war smooth
[19:23:44] <Avenger> that's how it is in the original engine, and i use the same flag
[19:24:08] <Avenger> it calculates the alpha channel in that pause, but it shouldn't be 2-3 seconds
[19:24:31] <Avenger> you can test it though, by turning 3d acceleration off
[19:24:42] <Avenger> that will still load the fogsprites, but won't do the alphachannel math
[19:24:48] <lynxlynxlynx> it makes no difference if i set Use 3d Animations to 0
[19:24:54] <Avenger> ok, good
[19:25:06] <Avenger> except that fogs are grainy now, right?
[19:25:15] <lynxlynxlynx> i didn't check ingame
[19:25:29] <Avenger> well check it, so you will know it is truly turned off
[19:25:48] <Avenger> it is 3d Acceleration anyway
[19:25:51] <Avenger> not 3d Animations
[19:26:46] <lynxlynxlynx> yeah, turning that off gets rid of the pause
[19:28:19] <fuzzie> probably IsSpritePixelTransparent being hideously slow
[19:28:52] <fuzzie> in the inner loop, anyway
[19:29:18] <lynxlynxlynx> my hw is the same, the sw stack pretty much too
[19:29:26] <lynxlynxlynx> did i really notice it only now?
[19:30:15] <fuzzie> no, Avenger made it slower recently, in r6867
[19:30:30] <lynxlynxlynx> ah, the corner stuff
[19:40:00] <Avenger> yes, it takes more pixels for calculation
[19:40:26] <Avenger> i don't know how the original engine does this
[19:40:40] <Avenger> because they do all those calculations realtime, it seems
[19:41:06] <Avenger> we couldn't do the same if even the precalculations of the base frames take 2-3 seconds :)
[19:41:38] <Avenger> anyway, this is stuff for wjp :)
[19:42:04] <lynxlynxlynx> something different: fx_set_invisible_state doesn't use Parameter1 - can I reuse it for gemrb (for hiding in shadows in particular)?
[19:42:55] <wjp> huh, the precomputations are taking actual time?
[19:43:25] <wjp> wow, what are they doing?
[19:44:10] <Avenger> calculating the alpha channel based on neighbours
[19:44:42] <Avenger> lynx, set_invis actually IS used for hide in shadows
[19:44:51] <Avenger> i think param2=2 is the hide in shadows effect
[19:45:14] <lynxlynxlynx> ah
[19:45:23] <Avenger> i don't think we implemented it yet, but that's what i see in the disassembly
[19:45:31] <lynxlynxlynx> i can check that then
[19:46:31] <lynxlynxlynx> we just need to do the skills and some obsure checks (lightness, presence of enemies)
[19:47:31] <Avenger> hide in shadows button disabled too, yeah
[19:47:52] <Avenger> maybe i can write some pseudo code for it
[19:48:16] <lynxlynxlynx> i've got the spell ready
[19:48:27] <CIA-22> gemrb: 03lynxlupodian * r7242 10/gemrb/trunk/gemrb/ (5 files in 5 dirs): added a gameflag for selective magic resistance (so that eg. healing can ignore it)
[19:48:52] <Avenger> hide uses the luck spell too
[19:48:53] <Avenger> err
[19:48:54] <Avenger> luck stat
[19:49:16] <lynxlynxlynx> directly? nice, no need to much with that in the luck effects :)
[19:53:38] <Avenger> ok, it seems it is simply param2=0 for hide in shadows
[19:54:00] <Avenger> dunno where i got the 2 :)
[19:54:05] <lynxlynxlynx> huh
[19:54:22] <lynxlynxlynx> iesdp and our code says 2 is the last type
[19:54:29] <lynxlynxlynx> 0 is normal invis, 1 improved
[19:54:38] <Avenger> yes, and hide is normal invis
[19:54:41] <Avenger> for some time
[19:55:39] <lynxlynxlynx> so maybe the currently unused param is the time
[19:55:48] <Avenger> no, the 'duration' is the time
[19:55:55] <lynxlynxlynx> ah, right
[19:56:19] <Avenger> it seems it precalculates the time, and starts the effect with timing method 0x1000
[19:56:36] <Avenger> but i think you can simply use timing method 0
[19:57:15] <lynxlynxlynx> but how is stealth different from normal invis?
[19:57:29] <Avenger> i can tell you the ticks ... if i reboot to windows
[19:57:30] <lynxlynxlynx> if i add checks, that would block the spell too
[19:57:41] <Avenger> what checks?
[19:57:50] <Avenger> most of the checks are in the action
[19:58:12] <Avenger> when all checks passed, it prints a text (hide in shadow succeeded), starts the modal state, and applies the effect
[19:58:35] <lynxlynxlynx> ok
[19:59:33] <Avenger> hmm, you do a recurring effect, well, i guess the modal state will have to apply the effect again
[19:59:42] <Avenger> like with turn
[19:59:45] <Avenger> or bardsong
[19:59:50] <Avenger> all modals reapply the effect
[20:00:12] <lynxlynxlynx> yeah
[20:00:45] <lynxlynxlynx> have to find out the proper duration, was it 1 turn?
[20:00:48] <Avenger> ok, i reboot to windows, so i can see how many ticks it gets
[20:00:56] <lynxlynxlynx> i'll check the man
[20:00:59] <Avenger> but it uses a constant
[20:01:06] <Avenger> so iguess it is one turn or one round
[20:01:12] <lynxlynxlynx> not one round
[20:01:18] <lynxlynxlynx> you'd get spammed with the messages
[20:01:38] <-- Avenger has left IRC ("bye!")
[20:02:29] <lynxlynxlynx> nothing in the man
[20:03:56] --> |Cable| has joined #gemrb
[20:04:02] <-- |Cable| has left IRC (Read error: 54 (Connection reset by peer))
[20:04:07] --> |Cable| has joined #gemrb
[20:05:03] --> Avenger has joined #gemrb
[20:05:08] --- ChanServ gives channel operator status to Avenger
[20:05:26] <Avenger> it is 3x100 of the smallest units of gametime
[20:05:55] <Avenger> so if you use timing method 0x1000, you will need to set duration to gametime+300
[20:06:13] <Avenger> if you use timing method 0, then it is 300/15, iirc
[20:06:38] <lynxlynxlynx> i crashed dltcep :)
[20:06:42] <Avenger> wow
[20:06:48] <Avenger> reproducibly?
[20:06:52] <lynxlynxlynx> it didn't die, just froze
[20:06:55] <lynxlynxlynx> i'll retry
[20:07:12] <Avenger> wine?
[20:07:19] <lynxlynxlynx> yes
[20:07:30] <Avenger> wine sucks :)
[20:07:41] <fuzzie> some might say the same for MFC :p
[20:07:43] <Avenger> at least the richedit controls
[20:08:05] <fuzzie> yes, i think one of the first things you have to do with wine is 'borrow' the richedit controls from XP
[20:08:11] <Avenger> dltcep uses lots of unimplemented mfc features
[20:08:43] <Avenger> though, i have to admit, they improved wine significantly
[20:08:54] <Avenger> i filed a few bugreports, and they fixed almost all :)
[20:08:58] <Avenger> in 1-2 years
[20:09:43] <Avenger> fuzzie you mean, copy the dll?
[20:09:47] <fuzzie> yes
[20:09:56] <fuzzie> otherwise lots of apps just crash, still
[20:10:24] <Avenger> the list controls also suck, but not so much as 2 years ago
[20:11:20] <Avenger> hey fuzzie, how do you feel?
[20:13:08] <fuzzie> i am back walking today, so much better :p
[20:15:27] --> tombhadAC has joined #gemrb
[20:24:14] <-- kingron has left IRC (Remote closed the connection)
[20:24:22] <Avenger> the hide in shadows button averages the move silently and hide in shadows stats
[20:27:13] --> kingron has joined #gemrb
[20:32:25] <Avenger> luck is used in almost all die tolls
[20:32:38] <Avenger> bash door, pick lock
[20:33:03] <Avenger> is gives a minimum roll, it seems
[20:33:08] <Avenger> *it*
[20:33:44] <Avenger> it is weird though, for hide in shadows it is d100, for bash/pick it is d10
[20:34:39] <lynxlynxlynx> wierd
[20:34:48] <lynxlynxlynx> also taimon said pick pockets uses 100 too
[20:35:04] <lynxlynxlynx> http://iesdp.gibberlings3.net/appendices/steal_pockets.htm
[20:37:54] <Avenger> i said pick lock, not pick pocket
[20:38:09] <Avenger> pick pocket is not using luck like the others...
[20:38:43] <lynxlynxlynx> oh
[20:39:08] <Avenger> his pseudo code seems correct to me
[20:39:32] <Avenger> i see where it subtract the target's pp skill
[20:40:12] <Avenger> i see the first rand 100 too
[20:40:20] <Avenger> that's where luck should be in
[20:40:39] <Avenger> if you have negative luck, it should be more than 1% failure
[20:40:51] <Avenger> that's how it is done with hide in shadows
[20:41:14] <Avenger> it adds -luck to the chance, and if it is >=100, then failure
[20:41:29] <Avenger> in hide in shadows, but in pick pocket it is a flat 1% failure
[20:41:55] <Avenger> i guess that's a simple bug, negative luck is a spell effect
[20:42:02] <Avenger> so it shouldn't be a balancing problem
[20:42:03] <lynxlynxlynx> we do it similarly for luck, just on the other side of the interval
[20:42:36] <Avenger> positive luck seems to remove the 1% failure chance
[20:42:53] <Avenger> hmm, wait no
[20:44:10] <Avenger> well, it is too complex for me now :)
[20:46:06] <lynxlynxlynx> ignore that bit
[20:46:19] <lynxlynxlynx> we handle luck well
[20:48:34] <Avenger> pickpocket doesn't check if armor disables it
[20:49:02] <Avenger> well, it is probably not a big deal, we disable the button
[20:49:07] <lynxlynxlynx> doesn't armor just give a penalty?
[20:49:19] <Avenger> some armor disables it
[20:49:28] <Avenger> there is an effect for it
[20:49:37] <Avenger> and we have a stat already
[20:49:38] <lynxlynxlynx> if it has that disablebutton effect than there is no practical difference
[20:49:47] <Avenger> there is a little
[20:49:55] <Avenger> scripting
[20:52:21] <-- kingron has left IRC (Remote closed the connection)
[20:54:07] <Avenger> ok, so pickpocket works like this: check button disabled, check target is hostile, then checks for some mystery flag i don't really know :) it is probably the same as our 'want use exit', i just don't quite see how could you pick a pocket while walking through an exit
[20:55:29] <Avenger> then i think i see their version of 'walknearerto'
[20:56:59] <Avenger> after this, they force visible, oddly enough you can pick pockets while being visible?
[20:57:12] <Avenger> this sucks, imo
[20:57:17] <Avenger> why would pickpocket force visible
[20:57:33] <lynxlynxlynx> sucks indeed
[20:57:44] <lynxlynxlynx> unless it is your pocket
[20:57:51] <Avenger> it first forces you visible, thne checks the stats (my pp skill - their pp skill)
[20:59:06] <Avenger> anyway, i simply hate this implementation, it doesn't even check facing
[20:59:46] <Avenger> i would prefer if invisibility/facing gives you bonus. And if you don't become visible if you are successful
[21:03:32] <Avenger> there must be some default pp skill for npcs, as i fail far too often, but i see plain 0 set in them.
[21:06:08] <Avenger> huh, actually, it makes it easier to pick thieves???
[21:06:46] <Avenger> diff = actor->mod_pp_skill - target->mod_pp_skill
[21:06:48] <Avenger> if (r >= diff) pp_fail()
[21:07:30] <lynxlynxlynx> iwd2 does or planned to have also a hearing check for hide in shadows
[21:07:40] <Avenger> ahh ok, i'm too tired
[21:07:48] <wjp> if target's skill is then higher, diff is lower, so r is often larger than diff, so pp_fail() is called more often
[21:08:07] <Avenger> yep, just got mislead by 'diff'
[21:09:23] <Avenger> i just don't quite see if targets have often 0 skill, and my pp has a 100, how does it fail
[21:10:12] <lynxlynxlynx> if that pseudocode is right, it can't
[21:10:15] <lynxlynxlynx> so it isn't
[21:10:29] <Avenger> well, the code seems right
[21:10:50] <Avenger> the only thing i can imagine is that npcs get thieving skills by the loader :)
[21:10:59] <Avenger> i can check that easily
[21:11:32] <lynxlynxlynx> they get the racial and dex bonus for sure
[21:11:37] <CIA-22> gemrb: 03lynxlupodian * r7243 10/gemrb/trunk/gemrb/ (7 files in 7 dirs): added strings related to hiding
[21:15:04] <Avenger> lol, aerie has 25, nalia has 35
[21:15:28] <Avenger> considering nalia actually got thief levels while aerie hasn't
[21:16:22] <Avenger> elf with dex 17, looks like 25?
[21:17:26] <Avenger> ok, it seems working, human with dex 10 got only 5
[21:36:45] <Avenger> hmm hide seems to be better written
[21:36:55] <Avenger> it checks the lightmap, and area type, i think
[21:37:43] <lynxlynxlynx> cool, underdark has a bonus, huh
[21:43:14] <Avenger> it definitely checks day/night
[21:51:04] <-- Gekz_ has left IRC ("Leaving")
[21:58:56] <Avenger> lynx, here is hide: http://forums.gibberlings3.net/index.php?showtopic=18517
[21:59:22] <Avenger> i have posted it so taimon might fill in the gaps and confirm it
[21:59:55] <Avenger> bye
[21:59:55] <-- Avenger has left IRC ("ChatZilla 0.9.85 [Firefox 3.5.3/20090824101458]")
[22:14:25] <-- lynxlynxlynx has left IRC (Remote closed the connection)