#gemrb@irc.freenode.net logs for 26 Feb 2012 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:46:22] <-- haad has left IRC (Quit: Leaving.)
[00:56:55] --> joneirik has joined #gemrb
[01:20:40] <-- edheldil_ has left IRC (Ping timeout: 244 seconds)
[02:23:16] <-- wrotek has left IRC (Read error: Connection reset by peer)
[05:20:40] <-- joneirik has left IRC (Remote host closed the connection)
[05:22:21] <gembot> build #175 of osx-xcode-binary is complete: Exception [6exception upload] Build details are at http://buildbot.gemrb.org/builders/osx-xcode-binary/builds/175 blamelist: avenger_teambg@sourceforge.net
[05:28:21] --> Specter597 has joined #gemrb
[05:50:39] <-- Specter597 has left IRC ()
[07:16:16] --> lynxlynxlynx has joined #gemrb
[07:16:17] <-- lynxlynxlynx has left IRC (Changing host)
[07:16:17] --> lynxlynxlynx has joined #gemrb
[07:16:17] --- ChanServ gives channel operator status to lynxlynxlynx
[07:41:37] --> haad has joined #gemrb
[07:53:58] --> Gekz has joined #gemrb
[07:53:58] <-- Gekz has left IRC (Changing host)
[07:53:58] --> Gekz has joined #gemrb
[08:04:37] --> Avenger has joined #gemrb
[08:04:37] --- ChanServ gives channel operator status to Avenger
[08:05:43] <Avenger> hi!
[08:10:32] <lynxlynxlynx> gmornin
[09:26:11] <lynxlynxlynx> Avenger: so if i understand correctly, the proftype code will map the item by its type to either bg1 or bg2 style profs, depending on the numbers used?
[09:27:13] <Avenger> no, you always need to add 89 to these, to get the stat. In bg2 you don't need this, because in bg2 you have proficiency in the item
[09:29:26] <lynxlynxlynx> so Actor::GetProficiency should check for bg1 more safely then, doesn't it break for not-bg2?
[09:29:30] <Avenger> GetProficiency in actor handles the numbers, as you said
[09:29:40] <Avenger> no
[09:29:48] <Avenger> only bg2 has proficiency opcode
[09:29:53] <lynxlynxlynx> yes
[09:31:18] <Avenger> but proftype always maps to non-bg2 proficiencies. because bg2 doesn't need it.
[09:31:35] <lynxlynxlynx> 15_BOW 0 << so the prof will be changed to 15 and calling GetProficiency will return in the bg1 line
[09:31:48] <lynxlynxlynx> calling with 15, i mean, if the actor is proficient
[09:32:05] <lynxlynxlynx> just wondering if i have to do anything extra for iwd2
[09:32:07] <Avenger> 15 is the bow's itemtype
[09:32:26] <Avenger> proftype is an itemtype->proficiency mapping
[09:32:53] <Avenger> proficiencies start at stat_89
[09:32:56] <lynxlynxlynx> ah, so it's just an odd colu,n name
[09:33:09] <Avenger> it is 15_bow, so i know that it is the bow itemtype
[09:33:18] <Avenger> you don't need the column name
[09:33:24] <Avenger> err row name
[09:33:29] <Avenger> the row is the itemtype
[09:33:43] <lynxlynxlynx> yeah, i just meant that old_proficiency confused me
[09:33:51] <Avenger> simply read the 2da to a profs[itemtypecount] array
[09:33:57] <lynxlynxlynx> did you add spells for these weapon proficiency feats?
[09:34:02] <Avenger> well, old_proficiency is 'non bg2 proficiency'
[09:34:12] <Avenger> no need
[09:34:26] <Avenger> you simply set the stat (proficiency+89)
[09:34:41] <Avenger> in chargen
[09:34:55] <lynxlynxlynx> and existing cre's already have it there?
[09:34:59] <Avenger> yes
[09:35:05] <lynxlynxlynx> ok
[09:35:12] <Avenger> it is stored in the cre, in their proper fields
[09:35:45] <Avenger> to be honest, i don't know why bg2 didn't store them directly in the creature
[09:36:47] <lynxlynxlynx> ok, weapon focus is just two stars then
[09:37:12] <Avenger> bg2 stores bg1 style proficiencies in the creature, on load, it converts them to bg2 style, and then adds any weapon prof effects
[09:37:25] <Avenger> yep, it is just that
[09:38:52] <lynxlynxlynx> in the iwd2 table both dart and flail get assigned the same proficiency :S
[09:38:59] <Avenger> hmm
[09:39:06] <Avenger> that is a mistake
[09:39:48] --> wrotek has joined #gemrb
[09:39:54] <Avenger> dart is a 'missile' type, let me see where is it
[09:41:20] <Avenger> missile is 2
[09:42:00] <Avenger> same as sling, it seems?
[09:43:04] <lynxlynxlynx> yep
[09:43:16] <lynxlynxlynx> ok, everything makes sense now
[09:45:04] <Avenger> there are some other small things, the 0 itemtype always gives 1 proficiency
[09:45:14] <Avenger> this is probably for monster weapons
[09:45:24] <Avenger> claws, and such
[09:46:49] <Avenger> and i forgot what -2 means in proftype :)
[09:47:32] <lynxlynxlynx> fist
[09:47:56] <Avenger> it is probably the same (always 1 proficiency)
[09:48:06] <Avenger> in iwd2, the 0 itemtype has this
[09:48:24] <Avenger> in bg1, maybe it was the fist itemtype
[09:48:43] <Avenger> ah yes, i see, in iwd2, both has this!
[09:48:49] <Avenger> phew ;)
[09:49:11] <Avenger> so just change the first number to -2 in iwd2's file
[09:49:48] <Avenger> ok, i think now i understand all
[09:52:18] <lynxlynxlynx> :)
[09:53:16] --> Yoshimo has joined #gemrb
[09:55:42] <CIA-28> GemRB: 03lynxlupodian * r081b6d682471 10gemrb/gemrb/override/iwd2/proftype.2da: iwd2::proftype.2da: change to unix eol
[09:55:50] <CIA-28> GemRB: 03lynxlupodian * rf40a83a6a7d5 10gemrb/gemrb/core/Scriptable/Actor.cpp: handle iwd2's small weapon tohit bonus when dualwielding
[10:03:44] <Avenger> case 5: // dart ???
[10:04:14] <Avenger> that is flail ;)
[10:09:27] <Avenger> i somehow can't believe wielding a staff in offhand gives bonus? Isn't it twohanded?
[10:09:34] <CIA-28> GemRB: 03lynxlupodian * ra3c2509000b9 10gemrb/gemrb/core/Scriptable/Actor.cpp: added iwd2 proficiency bonus/malus
[10:09:43] <lynxlynxlynx> it's a simple weapon proficiency
[10:09:44] <CIA-28> GemRB: 03lynxlupodian * r79ab0438826f 10gemrb/gemrb/core/Scriptable/Actor.cpp: fixed the nonproficient tohit penalty for nonpc classes (add/sub)
[10:10:00] <Avenger> ok, i will look at how this is coded in the engine
[10:10:31] <lynxlynxlynx> yeah, forgot to adapt for the dart fix
[10:11:06] <Avenger> only dagger and shortsword are there!
[10:11:24] <CIA-28> GemRB: 03lynxlupodian * r0b2e3c1c1c1b 10gemrb/gemrb/core/Scriptable/Actor.cpp: iwd2 darts have the same prof as slings
[10:11:31] <Avenger> but this was at least good to fix the dart prof :D
[10:12:23] <Avenger> if you want to see the annotated disassembly :) this one is quite clear
[10:17:12] <CIA-28> GemRB: 03lynxlupodian * r4b7f6790391b 10gemrb/gemrb/core/Scriptable/Actor.cpp: iwd2: actually only daggers and swords give a "small weapon" bonus
[10:27:28] <CIA-28> GemRB: 03lynxlupodian * r257b05ddcd28 10gemrb/gemrb/override/iwd2/proftype.2da: iwd2: fixed default weapon and dart proficiency maps
[10:40:01] <CIA-28> GemRB: 03lynxlupodian * r2f97bd6f871c 10gemrb/gemrb/core/Scriptable/Actor.cpp: iwd2: simplify the simple weapon check
[10:42:57] <Avenger> we almost have all feats now
[10:43:30] <Avenger> i didn't implement heretics bane yet. It would give double bonus vs cleric/druids.
[10:43:47] <Avenger> i think
[10:45:20] <Avenger> the original code uses classmask there. We don't have that stat
[10:46:58] <Avenger> i guess, i will have to tweak the ids targeting code
[10:49:09] <lynxlynxlynx> we already have code for that
[10:49:23] <lynxlynxlynx> and there are nice groups already defined
[10:49:51] <lynxlynxlynx> 0xc CLASSMASK_GROUP_CLERIC_DRUID
[10:50:28] <lynxlynxlynx> the actual bonus is +1 to hit and damage
[11:00:40] <Avenger> where is that
[11:01:59] <Avenger> well, you meant the original engine has it ;)
[11:02:50] <Avenger> oh no, we really have it ID_ClassMask :)
[11:03:45] <Avenger> oh and we have actor->GetClassMask
[11:03:47] <Avenger> thanx!
[11:03:56] <Avenger> just tried to reimplement it, outside of actor...
[11:04:09] <Avenger> this really helped
[11:05:02] <Avenger> i already had around 10 lines of code that was still buggy. now replaced with a single line
[11:06:13] <lynxlynxlynx> i was fixing it at one point, since there was a lot of confusion (+ class20.ids) and iwd2 scripts use it a lot
[11:16:33] <lynxlynxlynx> do you remember why you moved the wspecial bonus inside the WEAPON_BYPASS check at Actor.cpp:5153 ?
[11:16:45] <lynxlynxlynx> seems wrong
[11:26:42] <lynxlynxlynx> also the shield slot seems wrong in iwd2; creating new char gives him only fists, equipped: 1000, but we detect them in the offhand
[11:28:02] <CIA-28> GemRB: 03lynxlupodian * r3baae8799bcf 10gemrb/gemrb/GUIScripts/iwd2/CharGen9.py: iwd2: set proficiency stats in chargen
[11:28:12] <CIA-28> GemRB: 03lynxlupodian * r332f5c296285 10gemrb/gemrb/core/Scriptable/Actor.cpp: iwd2 actually has wspecial.2da and it is complete
[11:31:24] <wjp> Avenger: the death and damage overlay effects can't be drawn with the current horizontal button overlay api
[11:32:30] <wjp> death is greyscaling and damage is tinting; both are supported by the blit function, but not with the current 'pass a color' api
[11:34:56] <lynxlynxlynx> that is the single user of the function, so you can change it freely
[11:35:17] <lynxlynxlynx> not sure if an additive overlay would be useful anywhere
[11:39:57] <Avenger> i see
[11:40:39] <Avenger> maybe pass a rendering flag too
[11:46:07] <lynxlynxlynx> uh, the shield thing also disables equipping a spear
[11:46:19] <lynxlynxlynx> i guess we don't have any code for weapon sets yet
[11:51:26] <lynxlynxlynx> ah, i see why
[11:55:55] <CIA-28> GemRB: 03lynxlupodian * rc38751cf9081 10gemrb/gemrb/core/Scriptable/Actor.cpp: don't consider the fists slot when checking for dualwielding
[11:56:05] <CIA-28> GemRB: 03lynxlupodian * r6dac4c32e610 10gemrb/gemrb/core/Scriptable/Actor.cpp: reuse the result of IsDualWielding, not need to call it multiple times
[12:03:14] <lynxlynxlynx> it looks like the slots are wrong
[12:04:09] <lynxlynxlynx> the only candidate for equipping a spear is graphically each weapon slot (correct), but in the code we end up rejecting it, since we think the slot is the offhand/shield one
[12:30:16] <lynxlynxlynx> looks like we just have it wrong in our table
[12:42:19] <Avenger> which table
[12:44:56] <lynxlynxlynx> i thought it was itemtype, but i just changed inventory.cpp
[12:45:02] <lynxlynxlynx> this code was from 2006
[12:45:27] <Avenger> i hope it didn't break something else :)
[12:45:39] <lynxlynxlynx> http://sprunge.us/EZLX?diff <-- i thought the 256 may be needed, but it isn't the case
[12:45:42] <Avenger> that part is particularly complicated
[12:46:51] <Avenger> i don't think you need to add 4 to the weapon slots
[12:47:01] <Avenger> that would mean, you can equip shields in them
[12:47:39] <Avenger> and reversing the offhand bit... heh, i can't believe that is correct
[12:47:41] <lynxlynxlynx> yes, i was thinking of the other slots, since you can equip stuff in the shield slots
[12:48:03] <Avenger> ok, maybe that is correct, this is iwd2 specific
[12:48:11] <lynxlynxlynx> the slots start at 43 which is odd
[12:48:17] <lynxlynxlynx> as in odd/even
[12:49:01] <Avenger> but the even one is the right hand (weapon slot), no?
[12:49:31] <Avenger> so this--> (slot>=SLOT_MELEE&&slot<=LAST_MELEE && !(slot&1) ) will get triggered for the normal hand
[12:49:39] <Avenger> it should trigger for the shield hand
[12:50:05] <Avenger> hmm, actually, it probably should be (slot-SLOT_MELEE)&1
[12:50:10] <Avenger> meh
[12:50:33] <Avenger> as SLOT_MELEE is variable, and actually could be odd
[12:50:35] <lynxlynxlynx> physically: weapon slot|shield slot
[12:50:41] <lynxlynxlynx> left/right is too confusing
[12:50:44] <Avenger> yes, 0|1
[12:50:52] <Avenger> it is right/left
[12:51:00] <Avenger> but SLOT_MELEE is probably odd
[12:51:04] <lynxlynxlynx> but it uses the slot number and they start at 43 - 1
[12:51:11] <lynxlynxlynx> exactly
[12:51:17] <Avenger> it should be (slot-SLOT_MELEE)&1
[12:51:51] <Avenger> not like it has much difference NOW, but if someone ever starts customizing the inventory, they might get a nasty surprise
[12:51:59] <lynxlynxlynx> yeah
[12:52:29] <lynxlynxlynx> and the even slots should get the 256 bit, right?
[12:52:34] <Avenger> this was my fault, i always confused the quick weapon index with the slot index
[12:52:50] <Avenger> the shield slots, may need the weapon bit, yes
[12:53:02] <Avenger> the weapon slots definitely need it
[12:53:55] <Avenger> in bg2, the shield slot is 260, the weapon slots are 256
[12:54:09] <Avenger> so you can equip small weapon in shield slot
[12:55:45] <lynxlynxlynx> that's the point, yes
[12:55:53] <Avenger> i didn't notice the odd/even problem, because for me slot was 0 based in if (slot>=SLOT_MELEE&&slot<=LAST_MELEE && !(slot&1) )
[12:56:05] <lynxlynxlynx> but further changes will be needed, since now i can equip both a spear and a sword
[12:56:31] <Avenger> did you add the (slot-SLOT_MELEE)&1 thing?
[12:56:54] <Avenger> that should disable twohanded in the shield slot
[12:57:53] <lynxlynxlynx> yes, that bit works, atleast for the first weapon set, others aren't consistent
[12:58:01] <Avenger> heh
[12:58:47] <lynxlynxlynx> maybe it's the way the loop works, only looking ahead
[13:00:07] <lynxlynxlynx> huh, it's checking the same slot
[13:00:26] <Avenger> look at int Interface::CanUseItemType(int slottype, Item *item, Actor *actor, bool feedback, bool equipped) const too?
[13:00:34] <Avenger> it has some parts about twohandedness
[13:00:36] <lynxlynxlynx> shouldn't that ++i be an i+1?
[13:00:48] <Avenger> where
[13:00:49] <lynxlynxlynx> in Inventory::WhyCantEquip
[13:01:04] <lynxlynxlynx> it doesn't check the previous slot now
[13:01:44] <Avenger> it should be ++i, i think
[13:02:00] <Avenger> oh wait
[13:02:13] <lynxlynxlynx> now it checks if the just-added weapon matches
[13:02:14] <Avenger> meh
[13:03:11] <lynxlynxlynx> yeah, that fixes it
[13:03:41] <Avenger> but i should be increased by 2 in case of iwd2
[13:04:07] <Avenger> that ++i was intentionally there, so it is checking only every second index
[13:04:32] <Avenger> of course, TwoHandedInSlot should get the old value of i
[13:04:39] <Avenger> sux
[13:05:10] <lynxlynxlynx> it's cleanest if we just do the extra loops
[13:05:26] <Avenger> not sure
[13:05:31] <Avenger> it would cause another bug
[13:05:42] <Avenger> it would cause one weapon set disable the other
[13:06:09] <lynxlynxlynx> if a 2h weapon was in the shield slot, which can't happen
[13:06:38] <Avenger> well
[13:07:25] <Avenger> also, TwoHandedInSlot doesn't decrease the refcount to item
[13:07:49] <Avenger> ahh that is not a real item, just a slot
[13:09:00] <lynxlynxlynx> yes
[13:09:33] <lynxlynxlynx> so, should i commit the i+1 or do you want something else?
[13:10:22] <Avenger> it will be definitely better, i'm still not sure if it is entirely correct, but would be an improvement
[13:11:39] <lynxlynxlynx> ok
[13:12:22] <Avenger> and i'm happy you started to work on iwd2 inventory gui :)
[13:13:07] <Avenger> now gotta merge in my changes
[13:13:10] <-- Avenger has left IRC (Quit: bye!)
[13:13:56] <CIA-28> GemRB: 03lynxlupodian * rf08390346c3e 10gemrb/gemrb/core/Inventory.cpp: iwd2: WhyCantEquip was checking the wrong slot for 2handedness
[13:14:00] <CIA-28> GemRB: 03lynxlupodian * r26bebb1908ad 10gemrb/gemrb/core/Inventory.cpp: iwd2: fixed equipping twohanded weapons
[13:14:00] <CIA-28> GemRB: 03lynxlupodian * rea215698e985 10gemrb/gemrb/override/iwd2/slottype.2da: iwd2: allow equipping of weapons in the shield slots
[13:14:21] <lynxlynxlynx> huh
[13:14:53] <lynxlynxlynx> ah
[13:15:12] <lynxlynxlynx> well, i wanted to check if proficiency setting works and boom
[13:22:47] <CIA-28> GemRB: 03avenger_teambg * r733d489c71ab 10gemrb/gemrb/core/IniSpawn.cpp: implemented time_of_day correctly (as in original)
[13:30:45] <CIA-28> GemRB: 03avenger_teambg * r86e74d6c7fc0 10gemrb/gemrb/core/EffectQueue.cpp: improved BonusAgainstCreature (faction/team/classmask)
[13:32:22] <wjp> oh, cute. Our BMPImporter is actually converting things _to_ 24bpp (with an actual 3 bytes per pixel)
[13:32:41] <wjp> and here I was wondering why portrait rendering was behaving strangely :-)
[13:34:39] <CIA-28> GemRB: 03avenger_teambg * r9d0bb46fcdc3 10gemrb/gemrb/core/EffectQueue.cpp: forgot that classmask is a bitmask
[13:50:33] <wjp> anyone know how EndianSwitch should behave with BMP files?
[13:50:46] <wjp> it seems a bit strange that it has an effect
[13:53:10] <wjp> (i.e., I'd expect those BMP files to be standard windows BGR BMP files on any platform)
[13:53:30] <fuzzie> not sure of the question
[13:53:34] <fuzzie> i mean, the BMP files are the same, of course
[13:53:50] <wjp> BMPImporter acts on EndianSwitch
[13:53:55] <fuzzie> yes, it changes the mask
[13:54:00] <wjp> ah
[13:54:03] <wjp> silly me
[13:54:17] * wjp will go make coffee now
[13:54:45] <fuzzie> well maybe I miss something.. :)
[13:54:54] <wjp> no :-)
[13:55:07] * wjp has been making silly mistakes all day
[13:55:19] <wjp> maybe I should just go read a book or something :-)
[13:56:33] <wjp> the plan is to convert them to standard platform-specific RGB on import
[13:57:17] <fuzzie> sounds sane
[13:58:11] <wjp> somewhere in the middle of refactoring the endian switch got lost, and I was stupidly misremembering what it did...
[14:10:08] --> SiENcE has joined #gemrb
[14:19:32] <CIA-28> GemRB: 03avenger_teambg * rb7799f9e4e91 10gemrb/gemrb/core/Scriptable/ (Actor.cpp Actor.h): fixed monk apr hack
[14:33:00] <lynxlynxlynx> nice
[15:12:15] --> edheldil_ has joined #gemrb
[15:20:15] <-- edheldil_ has left IRC (Ping timeout: 260 seconds)
[15:26:57] <CIA-28> GemRB: 03avenger_teambg * r9ce9b605fb0a 10gemrb/gemrb/core/Scriptable/Actor.cpp: use kit usability instead of unreliable kit index to determine special cases (barbarian/swashbuckler)
[15:32:21] <CIA-28> GemRB: 03avenger_teambg * r04e59ec4dec6 10gemrb/gemrb/core/Scriptable/Actor.cpp: fixed some derived stat calculations
[15:32:22] <CIA-28> GemRB: 03avenger_teambg * r61fd350b7131 10gemrb/gemrb/core/Scriptable/ (Actor.cpp Actor.h): cleared up the difference between internal class id (isclass) and class numbers
[15:35:24] <CIA-28> GemRB: 03wjpalenstijn * rb982ab9c9993 10gemrb/gemrb/plugins/SDLVideo/SDLVideo.cpp: Clean up BlitSpriteRegion
[15:35:31] <CIA-28> GemRB: 03wjpalenstijn * r13dce14333aa 10gemrb/gemrb/plugins/BMPImporter/BMPImporter.cpp: Convert BGR BMPs to platform RGB format on import
[15:37:18] <CIA-28> GemRB: 03avenger_teambg * r7d356d8cfa15 10gemrb/gemrb/plugins/ (BMPImporter/BMPImporter.cpp SDLVideo/SDLVideo.cpp): Merge branch 'master' of ssh://gemrb.git.sourceforge.net/gitroot/gemrb/gemrb
[15:37:28] <CIA-28> GemRB: 03avenger_teambg * r2c87099a5644 10gemrb/gemrb/core/GameScript/Triggers.cpp: use proper level stats in level triggers
[15:39:28] <CIA-28> GemRB: 03wjpalenstijn * r2b9517ca8d36 10gemrb/gemrb/core/GUI/Button.cpp:
[15:39:28] <CIA-28> GemRB: Properly stop overlay colour updates
[15:39:28] <CIA-28> GemRB: This function currently isn't being called, though.
[15:39:38] <CIA-28> GemRB: 03wjpalenstijn * ra69f3809d175 10gemrb/gemrb/ (GUIScripts/GUICommon.py core/GUI/Button.cpp):
[15:39:38] <CIA-28> GemRB: Change button overlay effect to tinting.
[15:39:38] <CIA-28> GemRB: This is used to show damage. The tint 120,30,30 for the final
[15:39:38] <CIA-28> GemRB: colour matches the original BG1. The 210,30,30 for the (disabled) flash
[15:39:39] <CIA-28> GemRB: effect is a guess. The greyscale effect for dead party members isn't
[15:39:39] <CIA-28> GemRB: properly implemented yet.
[15:59:28] <lynxlynxlynx> avenger: are you sure the change in CreateDerivedStatsBG is fine? You use the iwd2 specific levelslotsiwd2 there
[16:01:14] <lynxlynxlynx> the kit change is more suspicious: 1. GetKitIndex doesn't look safe to use by itself anymore, 2. backstab max is at 7 for assassins
[16:01:46] <lynxlynxlynx> iwd2 has sneak attack instead, but the monk and bard additions look wierd
[16:10:34] <CIA-28> GemRB: 03wjpalenstijn * rb89764d56bd3 10gemrb/gemrb/ (3 files in 2 dirs): Rename BLIT_RED to BLIT_SEPIA
[16:48:58] <wjp> bah, weird crashes and asserts in some projectile rendering
[16:51:03] --> spike411 has joined #gemrb
[16:54:18] <fuzzie> wjp: alpha?
[16:55:09] <wjp> I get it reproducible at the start of some fight when all enemies are casting buffing spells all at once
[16:55:13] <wjp> s/ble/bly/
[16:55:21] <wjp> not sure yet which one it is :-)
[16:59:11] <fuzzie> the lights caused issues for me historically
[17:01:45] <wjp> yes, they are non-standard sprites, IIRC
[17:03:00] <wjp> huh
[17:03:13] <wjp> surprisingly explicitly passing 0 as a sprite pointer doesn't work
[17:03:19] * wjp wonders where that came from
[17:08:06] <wjp> I wish debugging info would contain "fake" backtraces for inlined functions
[17:10:10] <-- wrotek has left IRC (Read error: Connection reset by peer)
[17:15:08] <-- kida_laptop has left IRC (Ping timeout: 252 seconds)
[17:22:06] <wjp> now we just need to figure out if MSVC6 supports this :-)
[17:25:22] <fuzzie> you've just got to make sure that it's not specialising on types anywhere
[17:28:02] <fuzzie> so
[17:28:09] <fuzzie> all good otherwise? :)
[17:32:56] <wjp> is that only for functions? (not for classes?)
[17:34:50] <fuzzie> um
[17:35:36] <tomprince> I think so.
[17:35:58] <tomprince> And, from the current code, only on types that aren't reflected in the signature.
[17:36:39] <fuzzie> yes.
[17:37:38] <wjp> then I should have all the required dummy arguments, I think
[17:58:10] --> Avenger has joined #gemrb
[17:58:10] --- ChanServ gives channel operator status to Avenger
[17:58:42] <Avenger> lynx: i'm 100% sure that monk/bard levels count in the backstab multiplier, i found that yesterday
[17:59:54] <Avenger> what's wrong with getkitindex?
[18:00:02] <lynxlynxlynx> but iwd2 doesn't have a backstab multiplier
[18:00:17] <lynxlynxlynx> gki: you removed the base class mask check
[18:00:21] <Avenger> well, the code has it
[18:01:01] <Avenger> iwd2 still collects the backstab modifier, in the same stat
[18:01:07] <lynxlynxlynx> how actually had sneak attack already, but you had to enable it separately
[18:01:09] <Avenger> it could be that it doesn't use that stat for anything
[18:01:39] <Avenger> it is something different then
[18:02:07] <Avenger> i didn't remove the base class mask from gki
[18:02:38] <Avenger> if ((kit&BG2_KITMASK) == KIT_BASECLASS) {
[18:03:26] <Avenger> kitindex remains 0 after that only if it is exactly 0x4000
[18:04:08] <Avenger> the barbarian value is 0x40000000, not 0x4000
[18:04:27] <Avenger> the confusion comes from the swapping of the low and high words of the kit dword
[18:04:43] <Avenger> which we did wrong (incomplete) originally
[18:05:37] <Avenger> so, GetKitIndex should either return the row number in kitlist, or 0.
[18:05:50] <Avenger> GetKitUsability always returns a bitmask
[18:06:27] <Avenger> hmm i see one bug in here
[18:06:38] <Avenger> return atoi(tm->QueryField(kitindex, 6) ); is wrong,i thought i fixed it :(
[18:07:03] <Avenger> it should be strtol or something like that, because the usability value is hexadecimal
[18:07:21] --> haad1 has joined #gemrb
[18:08:11] <lynxlynxlynx> what about the other two comments?
[18:09:27] <Avenger> i don't know how the assassin thing works
[18:09:44] <Avenger> the backstab.2da file has no large values than 5
[18:09:46] <Avenger> so...
[18:10:19] <Avenger> the 5 max. is only to have a maximum value in case the file is not there
[18:10:33] <Avenger> the file is used by both tob and iwd2, and they are the same
[18:10:39] <Avenger> so, i wonder...
[18:11:08] <Avenger> i can accept that the backstab multiplier for assassins works somehow, but i don't see how
[18:11:19] <-- haad has left IRC (Ping timeout: 276 seconds)
[18:11:56] <Avenger> probably in bg2, there is a condition, but still the file contains values no bigger than 5
[18:12:31] <Avenger> what was the last issue?
[18:13:28] <CIA-28> GemRB: 03avenger_teambg * r1ce1fcf3fcb3 10gemrb/gemrb/core/Scriptable/Actor.cpp: use strtol, because the usability is a hex number
[18:13:47] <Avenger> i will look at the tob engine code
[18:13:58] <lynxlynxlynx> why is any table important, it is just a multiplier?
[18:14:18] <lynxlynxlynx> it should be changed in tob or they couldn't get it
[18:14:32] <lynxlynxlynx> soa assassins didn't have it to 7 iirc
[18:14:58] <lynxlynxlynx> the other one was: are you sure the change in CreateDerivedStatsBG is fine? You use the iwd2 specific levelslotsiwd2 there
[18:15:46] <lynxlynxlynx> maybe they get it as clabs though
[18:16:06] <Avenger> that is most likely wrong
[18:16:53] <Avenger> yeah, i was eager to lessen the gap between the two functions
[18:17:43] <Avenger> it won't work, because the paladin level stat is probably not updated
[18:19:22] <Avenger> it should be GetClassLevel(i)
[18:19:36] <Avenger> if i want them the same ;)
[18:20:10] <Avenger> which i want. I hope i can make at least half of them the same code
[18:22:04] <Avenger> of course, i want to keep them correct, even with the assassin multiplier, which i forgot about. But i still need to know how is it handled
[18:23:20] <CIA-28> GemRB: 03avenger_teambg * rfd83371d4c31 10gemrb/gemrb/core/Scriptable/Actor.cpp: use the correct levels for turn undead level calculation
[18:25:59] <Avenger> the code in tob which gets the backstab multiplier, doesn't care about assassin, only swashbuckler
[18:26:40] <lynxlynxlynx> you do know there is a common function first? :)
[18:26:41] <gembot> build #202 of cmake g++-4.4 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.4/builds/202 blamelist: avenger_teambg@sourceforge.net
[18:27:03] <Avenger> ?
[18:28:30] <Avenger> i don't understand the question
[18:28:43] <lynxlynxlynx> i meant CreateDerivedStats
[18:28:53] <lynxlynxlynx> it can house the common code without duplication
[18:28:53] <Avenger> ahh, yes, the common parts will be moved there
[18:29:12] <Avenger> but first i wanted to keep them in place, for discussion like this
[18:29:50] <Avenger> there is an opcode to modify the backstab multiplier
[18:30:05] <Avenger> maybe the assassins get the plus values through it?
[18:30:15] <Avenger> is there any clab for assassin
[18:30:59] <Avenger> that could settle this problem
[18:34:21] <Avenger> yeah :P
[18:34:27] <Avenger> spcl332
[18:35:12] <Avenger> it is in clabth02
[18:35:31] <lynxlynxlynx> [19:13:54] <lynxlynxlynx> maybe they get it as clabs though ;)
[18:36:17] <lynxlynxlynx> on an unrelated note, how will we handle all the ac types?
[18:36:27] <lynxlynxlynx> natural, general, armor ...
[18:36:42] <lynxlynxlynx> we don't have enough stats already
[18:36:45] <Avenger> oh you said that
[18:36:47] <Avenger> ?
[18:36:53] <lynxlynxlynx> yes
[18:37:10] <lynxlynxlynx> doning armor now makes your ac worse, since it overrides the 10 natural
[18:37:32] <Avenger> there is already something about that
[18:37:35] <lynxlynxlynx> the opcode doesn't know the difference (using the same stat)
[18:37:55] <Avenger> return FX_INSERT;
[18:38:12] <Avenger> that is my attempt to make this right
[18:38:26] <Avenger> in int fx_ac_vs_damage_type_modifier (Scriptable* /*Owner*/, Actor* target, Effect* fx)
[18:39:38] <lynxlynxlynx> but it is using base_set for armor, not add/sub
[18:39:52] <lynxlynxlynx> that's why it ignores natural ac
[18:40:17] <lynxlynxlynx> oh, on armor bypassing, i think those weapons just ignore the armor+shield ac bonus
[18:40:41] <lynxlynxlynx> the *penalty* you added is surely wrong
[18:40:48] <Avenger> it could be
[18:41:13] <Avenger> it is confusing to implement all this pile of boni, especially having both engines in mind
[18:41:59] <lynxlynxlynx> the others are just a subset
[18:42:03] <Avenger> there are two armor countering bits on weapons: keen and bypass armor
[18:42:35] <lynxlynxlynx> nah, keen increases the critical threat range
[18:43:01] <Avenger> ahh yes, ok
[18:43:04] <gembot> build #203 of cmake g++-4.4 is complete: Success [3build successful] Build details are at http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.4/builds/203
[18:43:08] <Avenger> you are right
[18:43:53] <lynxlynxlynx> in iwd2 there's an actual proper moonblade
[18:44:14] <Avenger> but the bypass armor flag really ignores wspecial
[18:44:25] <lynxlynxlynx> and i think also the short sword of brilliance has it
[18:44:35] <Avenger> it is ignoring a lot of stats,
[18:44:55] <lynxlynxlynx> that's an original engine bug then, since you don't receive the penalty for not being proficient that way
[18:45:24] <Avenger> that's why there is that -4
[18:45:44] <Avenger> i didn't just put that there on whim :)
[18:45:48] <Avenger> let me look at the code, though
[18:45:54] <lynxlynxlynx> but you add that always
[18:46:28] <Avenger> THAT could be, you can even read it in the comment
[18:46:55] <Avenger> there are so many negations and conditions, a sign can get lost easily
[18:47:02] <Avenger> though BAB is like the more the better
[18:47:10] <Avenger> so negative is definitely a penalty, no?
[18:47:37] <Avenger> thac0bonus seems to be the bigger the better too
[18:48:15] <Avenger> or maybe not, but that is your doing :P
[18:48:49] <Avenger> in that case this line is wrong too: THAC0Bonus += rangedheader->THAC0Bonus;
[18:49:39] <lynxlynxlynx> in some tables it is stored positive, in some negative, thus the confusion
[18:50:20] <Avenger> lets handle it the positive the better for the attacker way
[18:50:36] <Avenger> just because it is a 'bonus'
[18:51:24] <wjp> higher BAB is better
[18:51:34] <wjp> (assuming we're talking 3rd ed)
[18:52:09] <wjp> (for context, fighters get roughly 1 per level, other classes have a slower progression)
[18:52:13] <Avenger> wjp: we talk about gemrb, in which we can go both ways, if we use it consistently and negate one of them in the end
[18:52:33] <Avenger> we gotta support both in the same code, with lots of conditions and flags
[18:52:44] <Avenger> 'reversetohit' for example
[19:05:28] --> alx3apps has joined #gemrb
[19:08:08] <Avenger> my luck abandoned me with heretics bane, it is only a single point of improvement :(
[19:09:27] <fuzzie> this is all going completely over my head
[19:09:37] <fuzzie> maybe i should play iwd2 a bit someday
[19:10:21] <Avenger> fuzzie i can explain if you want ;)
[19:11:10] <Avenger> heretics bane is a feat to give +1 to hit bonus vs. any druid/cleric. But the bonus against creature effects need to be an 'eff file' to have the bonus other than 2
[19:11:22] <Avenger> so, sucks
[19:11:32] <fuzzie> ah.
[19:11:53] <Avenger> i really consider having spells with effv2 blocks :)
[19:12:02] <fuzzie> would that be bad?
[19:12:12] <Avenger> i just need to code dltcep :(
[19:12:17] <fuzzie> oh right :)
[19:12:29] <fuzzie> so that is not something we can help with I guess
[19:12:29] <Avenger> and of course no other tool would understand those files
[19:13:08] <Avenger> ok, i will hack this into submission, but keep the option open
[19:14:14] <lynxlynxlynx> btw, doesn't it also give +1dmg?
[19:15:33] <Avenger> i don't know
[19:15:46] <Avenger> where did you see that
[19:16:58] <Avenger> hmm its description definitely writes that
[19:19:37] <Avenger> meh fiendslayer too
[19:19:59] <Avenger> actually, heretics bane gives +1 to hit, and +3 damage!
[19:20:16] <Avenger> they really mess with me :)
[19:20:45] <Avenger> i gotta duplicate the fiendslayer spell block too
[19:24:06] <CIA-28> GemRB: 03avenger_teambg * r131e0ddab284 10gemrb/gemrb/override/iwd2/ (feat18.spl feat1c.spl feat1c1.eff feat1c2.eff): fiendslayer and heretics bane feats
[19:24:49] <Avenger> improved initiative is just giving some physical speed, right?
[19:25:08] <Avenger> and casting speed
[19:25:11] <Avenger> hmm, not bad
[19:28:09] <CIA-28> GemRB: 03avenger_teambg * r45fd775a8419 10gemrb/gemrb/override/iwd2/feat20.spl: improved initiative feat
[19:30:40] --> wrotek has joined #gemrb
[19:35:34] --> edheldil_ has joined #gemrb
[19:39:41] <lynxlynxlynx> so, do we have all feats now?
[19:42:15] <Avenger> no
[19:42:30] <Avenger> i just consider how to implement the 'extra *' feats
[19:42:56] <Avenger> there is no simple function in spellbook that returns the number of known spells of a given resref
[19:43:32] <Avenger> i think i need to add it
[19:49:11] <lynxlynxlynx> the whole spellbook interface is kludgy
[19:49:31] <lynxlynxlynx> was pretty annoying to port the action bar part
[19:53:00] <-- spike411 has left #gemrb
[19:57:35] <Avenger> huh, i think i found a pretty nasty bug
[19:57:46] <Avenger> bool Spellbook::KnowSpell(int spellid)
[19:57:59] <Avenger> for (unsigned int k = 0; k < sm->memorized_spells.size(); k++) {
[19:58:00] <Avenger> CREKnownSpell* ks = sm->known_spells[k];
[19:58:07] <Avenger> this seems to be totally crashy :)
[19:59:08] <tomprince> Yes.
[19:59:15] <-- edheldil_ has left IRC (Ping timeout: 244 seconds)
[19:59:39] <tomprince> I want 'for (spell : sm->known_spells)'.
[20:00:21] <Avenger> yeah, i know
[20:00:31] <lynxlynxlynx> luckily only one trigger uses it
[20:01:21] <Avenger> yep, lynx, but i'm not sure if that's a luck :) luckily i found the bug, hehe
[20:01:22] <tomprince> And, for everything but bards/sorcerers, probably won't trigger a crash, but just give wrong results.
[20:02:01] <Avenger> knownspell is mostly a combat ai function, and there are few sorcerer/bard opponents
[20:02:13] <Avenger> so it probably never crashed
[20:03:08] <Avenger> actually, foreach is one of the high level stuff i like
[20:03:25] <tomprince> C++0x has it.
[20:03:49] <Avenger> yeah, please go back in time and implement it in '98 :P
[20:04:00] <Avenger> or whatever is the date of msvc 6
[20:04:41] <tomprince> Did you see that link about usinc intel's compiler with msvc6?
[20:04:50] <Avenger> no
[20:05:11] <Avenger> even the debugger would work?
[20:05:23] <tomprince> http://software.intel.com/en-us/articles/intel-c-compiler-for-windows-compatibility-with-microsoft-visual-c-60/#2
[20:05:37] <tomprince> DOn't know.
[20:05:58] <tomprince> I thought there was a posibility that it might.
[20:06:08] <Avenger> ok, when i got some time, i'll try this
[20:06:17] <tomprince> Thanks. :)
[20:07:04] <tomprince> Hopefully it isn't bug for bug compatible though. ;)
[20:07:12] <Avenger> lol
[20:07:44] <Avenger> any of your buildbots can run this intel compiler?
[20:08:48] <Avenger> lynx, a question: shall i implement an opcode (enhancement to Learnspell) or a guiscript interface for this count spells stuff?
[20:09:06] <Avenger> i think probably guiscript is better
[20:09:24] <Avenger> it means one less feat spell, but some guiscript code needed for the extra_* feats
[20:10:06] <Avenger> but it would be less strain on opcode binary compatibility
[20:10:59] <lynxlynxlynx> guiscript
[20:11:09] <lynxlynxlynx> isn't it just increasing the memorisable count?
[20:11:17] <lynxlynxlynx> for new forms, learn spell
[20:13:02] <Avenger> no, each memorizable spell is a new entry
[20:13:13] <Avenger> the memorisable count is only for type/levels
[20:17:27] <Avenger> btw, you don't need to 'make room for one more memorization' in guicommon.py
[20:17:48] <Avenger> the code increases those numbers on its own in case of innates
[20:22:55] <Avenger> a python question: what would range(-10) do?
[20:24:30] <wjp> empty list
[20:25:12] --> edheldil_ has joined #gemrb
[20:25:32] <edheldil_> hi
[20:25:34] <edheldil_> Avenger: is there an easy way to fix FFG's avatar? Walking animation is ok, but standing one has skewed colors
[20:25:37] <edheldil_> I have tried numbers 56 - 60 in avatars.2da, but none was ok
[20:26:03] <Avenger> i've no idea what's wrong
[20:27:37] <edheldil_> Do you mean I should provide a sceenshot or that you do not know the source of the error?
[20:28:57] <Avenger> a screenshot would be good to see if i have this problem too
[20:29:25] <Avenger> i didn't notice any color problems, except when i loaded a gemrb game back into original
[20:29:59] <Avenger> i will fix that, but it is not pressing, as it is not a crash bug
[20:30:36] <Avenger> but i guess you have a problem with gemrb only game
[20:36:35] <edheldil_> the save was made in original
[20:36:37] <edheldil_> http://imgur.com/ZFbTS
[20:38:52] <edheldil_> as far as I can see, only ffg does that, but I have not checked npcs
[20:41:02] <Avenger> it is weird
[20:42:26] <Avenger> i didn't notice this before, but now i see it too
[20:42:39] <Avenger> walking anim is ok, standing anim isn't
[20:45:36] <edheldil_> it almost looks like a negative
[20:45:57] <Avenger> yes
[20:46:05] <wjp> huh
[20:46:15] <Avenger> something for wjp?
[20:46:33] <Avenger> i just don't understand why only ffg is affected by it
[20:46:53] <wjp> she has a custom palette I suppose?
[20:47:03] <edheldil_> (it's not inverted)
[20:47:31] <wjp> could it be we assume the palettes of some sprites are the same while they're not?
[20:49:37] <Avenger> yes, that could be
[20:51:30] <Avenger> i'm pretty sure that's the case
[20:52:25] <Avenger> ffg has no custom color slots
[20:52:29] <Avenger> dakkon got some
[20:53:16] <Avenger> that's for dakkon's weapon
[20:54:17] <Avenger> ffg's color can only be affected by global rgb mods
[20:58:42] <wjp> we do seem to have only one palette per actor
[20:59:17] <wjp> set when its first animation is loaded by CharAnimations::GetAnimation
[21:02:05] <Avenger> so, what to do, clear palettes at stance changes?
[21:14:29] <-- alx3apps has left IRC (Quit: Leaving.)
[21:15:15] <Avenger> lynx, i think the feat stuff is not working correctly
[21:16:06] <lynxlynxlynx> i know of a few problems
[21:16:30] <lynxlynxlynx> in cg we display things correctly, but in guirec a lot of proficiencies are missing
[21:16:54] <lynxlynxlynx> haven't had a chance to test the stat setting stuff, since i couldn't equip the weapon ;)
[21:16:56] <Avenger> i think setfeat itself will set the proper value
[21:17:09] <Avenger> no need of setplayerstat, especially not this way
[21:17:28] <lynxlynxlynx> doesn't it just set into a 3-field-wide bitfield?
[21:17:46] <Avenger> the stat assigned to the feat is listed in the first column (if it is a multiple feat)
[21:18:41] <Avenger> the 3 bit stuff is only for bg (where dual classing needs to temporarily disable proficiencies)
[21:19:29] <Avenger> so, i think you don't need any of the 'set proficiencies' part
[21:19:45] <Avenger> SetFeat will automagically set the stars in the right stat :)
[21:21:10] <Avenger> anyway, i will handle this, i need to tweak this code for the extra* feats
[21:23:45] <lynxlynxlynx> ok
[21:24:02] <lynxlynxlynx> by 3 i meant the IE_FEATS1-3 thing
[21:24:09] <lynxlynxlynx> but iirc you changed it recently
[21:24:22] <Avenger> i fixed that too yes
[22:05:12] <Avenger> i don't know how extra wild shapes work :(
[22:05:34] <Avenger> i didn't find the code that handles this feat
[22:46:26] <-- Avenger has left IRC (Quit: bye!)
[22:49:22] <CIA-28> GemRB: 03avenger_teambg * r2a3f2812f4b5 10gemrb/gemrb/GUIScripts/ (GUICommon.py iwd2/CharGen9.py iwd2/GUIREC.py): set up rage/smiting/turning innates (use feats)
[22:49:27] <CIA-28> GemRB: 03avenger_teambg * ra94200e28c72 10gemrb/gemrb/ (core/Spellbook.cpp plugins/GUIScript/GUIScript.cpp): countspells
[23:03:33] <gembot> build #178 of osx-xcode-binary is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/osx-xcode-binary/builds/178 blamelist: avenger_teambg@sourceforge.net
[23:04:43] <gembot> build #199 of osx-test is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/osx-test/builds/199 blamelist: avenger_teambg@sourceforge.net
[23:23:19] <-- Yoshimo has left IRC (Quit: Yoshimo)
[23:23:21] <gembot> build #591 of cmake clang++ is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/cmake%20clang%2B%2B/builds/591 blamelist: avenger_teambg@sourceforge.net
[23:24:02] <gembot> build #534 of mingw32 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/mingw32/builds/534 blamelist: wjpalenstijn@users.sourceforge.net, avenger_teambg@sourceforge.net, lynxlupodian@users.sourceforge.net
[23:25:20] <gembot> build #202 of cmake g++-4.2 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.2/builds/202 blamelist: avenger_teambg@sourceforge.net
[23:27:17] <gembot> build #205 of cmake g++-4.4 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.4/builds/205 blamelist: avenger_teambg@sourceforge.net
[23:27:55] <gembot> build #521 of msvc++6 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/msvc%2B%2B6/builds/521 blamelist: wjpalenstijn@users.sourceforge.net, avenger_teambg@sourceforge.net, lynxlupodian@users.sourceforge.net
[23:28:23] <lynxlynxlynx> uhh, isn't that the same as GemRB.GetKnownSpellsCount?
[23:29:24] <gembot> build #204 of cmake g++-4.6 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.6/builds/204 blamelist: avenger_teambg@sourceforge.net
[23:31:23] <gembot> build #196 of cmake g++-4.5 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.5/builds/196 blamelist: avenger_teambg@sourceforge.net
[23:31:23] <gembot> build #294 of nmake-msvc++6 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/nmake-msvc%2B%2B6/builds/294 blamelist: wjpalenstijn@users.sourceforge.net, avenger_teambg@sourceforge.net, lynxlupodian@users.sourceforge.net
[23:31:25] <tomprince> Except special casing 0xF....F to bet GetTotalKnownSpells, or sth.
[23:31:42] <-- lynxlynxlynx has left IRC (Read error: Connection reset by peer)
[23:33:41] <tomprince> Actually it looks differnt.
[23:39:38] <-- SiENcE has left IRC (Quit: cya)