[01:04:55] <-- Lightkey has left IRC (Read error: 60 (Operation timed out))
[01:05:35] --> Lightkey has joined #GemRB
[04:14:17] * mattinm reads over the chat log :)
[04:35:04] <mattinm> if the ROUND_SIZE is indeed different for each game, then perhaps we should make ROUND_SECONDS dynamic depending on the game?
[04:35:41] <mattinm> and simply make ROUND_SIZE = (AI_UPDATE_TIME*ROUND_SECONDS)
[04:37:04] <mattinm> on another note: i was testing damage spells, and the effects op of damage (0x0c) doesn't take into account dice rolls; only the roll modifier
[04:37:21] <mattinm> as far as i could tell at least :/
[04:41:37] --> jdm has joined #gemrb
[04:57:21] <pupnik__> poke fuzzie
[04:58:41] <mattinm> perhaps it does take into account rolls; the effect code is a mine-field :/
[05:00:30] <mattinm> yay! i found what was messing up the per-round delay for acid arrow (and similar effects)
[05:01:20] <pupnik__> \o/
[05:03:20] <CIA-2> gemrb: 03mattinm * r6366 10/gemrb/trunk/gemrb/plugins/Core/EffectQueue.h: PrepareDuration should be fx->Duration*AI_UPDATE_TIME + GameTime
[05:03:51] <mattinm> acid arrow was absolutely devastating when it did damage every ~1/3 round
[05:04:55] <pupnik__> hahaha
[05:05:34] <pupnik__> so many special case things...
[05:06:08] <mattinm> we're going to have a slight problem on our hands if the round timings are indeed different in each game :/
[05:06:43] <mattinm> brb... i need some tea :)
[05:15:09] <mattinm> still wading through the code, but it does indeed appear that the dice are being rolled for acid arrow
[05:15:23] <mattinm> it's 2d4 and did 7, 6, and 2 damage
[05:29:39] <mattinm> EffectQueue:221-230 - any obvious reason i'm missing on why we can't do that outside of the for loop?
[05:29:52] <mattinm> *EffectQueue.cpp
[05:41:22] <mattinm> sweet heaven's i found it after some ack-grep following :)... the dice roll is added in check_level
[06:32:34] <mattinm> from all the spells i looked at, the damagetype is actually going to be fx->Parameter2>>16 as it is doing to be contained in the upper word
[06:45:39] <mattinm> (this is for BG2 [EFF v2] and BG1 [EFF v1]
[06:49:23] <mattinm> nix that last comment; i was looking at BG1 ToSC, which has EFF v2 as well?
[07:17:54] --> lynxlynxlynx has joined #gemrb
[07:17:54] --- ChanServ gives channel operator status to lynxlynxlynx
[07:18:24] <mattinm> hi lynx
[07:22:17] <lynxlynxlynx> moo
[07:25:17] <mattinm> if ps:t rounds are indeed 2 seconds, i wonder if the same basic "hours" function is the same, whereby 1 hour = 50*ROUND_SECONDS = 100s in this case?
[07:26:08] <lynxlynxlynx> should be easy to check
[07:26:28] <mattinm> yep; i just can't check it ;)
[07:27:51] <lynxlynxlynx> me neither, it doesn't run in my current wine
[07:28:15] <lynxlynxlynx> need to update and bug (verb-wise)
[07:29:19] <mattinm> yeah, wine can be finicky sometimes
[07:31:17] <lynxlynxlynx> oh, if you're looking for combat things to do, we don't handle dual wielding yet ;)
[07:31:55] <mattinm> yeah, that's what my CombatCounter meant to refer to
[07:32:11] <mattinm> :)
[07:32:27] <lynxlynxlynx> cool
[07:32:29] <mattinm> do you know which games allow dual-wielding?
[07:32:56] <lynxlynxlynx> bg2 is the only one with styles
[07:33:16] <lynxlynxlynx> but i could swear i remember annah dualwielding daggers in pst
[07:33:21] <mattinm> ok; i'm just trying to think of potential problems with the shield slot
[07:38:01] <CIA-2> gemrb: 03lynxlupodian * r6367 10/gemrb-launcher/autorun-gemrb: gemrb-launcher: removed a stale file
[07:40:37] <-- Gekz has left IRC (Read error: 60 (Operation timed out))
[07:58:24] --> Gekz has joined #GemRB
[08:06:00] <-- barra_library has left IRC ("Verlassend")
[08:36:13] <-- |Cable| has left IRC ("Leaving")
[08:42:03] <mattinm> there we go, basics in place
[08:42:11] <CIA-2> gemrb: 03mattinm * r6368 10/gemrb/trunk/gemrb/plugins/Core/ (Actor.cpp Actor.h Inventory.cpp):
[08:42:11] <CIA-2> gemrb: dual-wielding attacks and +1apr for dual-wielding
[08:42:11] <CIA-2> gemrb: also, using a shield won't stop you from attacking now
[08:47:41] <mattinm> for sanity and calculator speed, only the main hand speed factor is used
[08:48:48] <mattinm> as that really is the only speed factor that matters (first attack)
[09:04:52] <fuzzie> mattinm: the round timings differing per-game shouldn't be a problem, i think
[09:04:57] <fuzzie> only ROUND_SIZE etc differ
[09:05:12] <mattinm> yep, which would mean we just have to define ROUND_SECONDS per game
[09:05:52] <fuzzie> my original patch actually did #define ROUND_SIZE (AI_UPDATE_TIME*ROUND_SECONDS, but i wanted to make the patch minimal
[09:06:11] <mattinm> yeah, that's what we're going to have to do eventually though :/
[09:06:46] <fuzzie> but it all seems normal otherwise; 1-10 speeds accounting for 0-2s in a round, etc
[09:07:08] <mattinm> yeah
[09:08:21] <fuzzie> the effects/etc are a bit stranger, because i think their timing is mostly in AI updates.
[09:08:37] <fuzzie> so they last a lot longer in pst, relatively.
[09:09:03] <mattinm> hmm
[09:09:46] <fuzzie> the rounds seem to affect combat and spell-casting, and that's it.
[09:09:58] <mattinm> yeah, that would be about it
[09:10:04] <mattinm> and how long an effect stays for
[09:10:33] <fuzzie> well, i'm not sure about that bit :)
[09:11:38] <mattinm> well, from reading the site that you linked to, and referencing to BG .spl files, it would seem time duration (for spells like blind) = TIME/ROUND_SECONDS rounds, from what i looked at at least
[09:11:55] <fuzzie> yes, 'spell duration' is in rounds, but it's set by the spell-casting code i think
[09:12:06] <fuzzie> anything in the *effects* is in seconds
[09:12:53] <mattinm> yeah, that would be the same from what i've seen too
[09:12:56] <fuzzie> perhaps an arbitary split there, but it helps me keep things together :)
[09:13:54] <fuzzie> the iwd2 timing thread i linked to above talks about it a bit.
[09:21:36] <fuzzie> PrepareDuration is meant to be in AI updates? it does look like it :)
[09:22:30] <mattinm> certainly does :)
[09:23:09] <fuzzie> so thanks for that one, my greps don't find those hard-coded numbers everywhere
[09:24:06] <mattinm> that iwd2 thing is a nice read, but i can't cross reference anything with it, which kind of sucks :(
[09:24:25] <mattinm> plus, non-iwd2 spls only go up to 0x70, so they don't have the modifiers per level
[09:24:50] --> barra_library has joined #gemrb
[09:25:27] <fuzzie> mmhm, but it gives an idea of how things work, anyway
[09:25:59] <fuzzie> i actually have iwd2 installed, but only for gemrb, and the game GUI doesn't work when you start a gemrb game, so heh :)
[09:26:03] <fuzzie> must look at that
[09:27:05] <fuzzie> can't say it's worth spending the money on [i paid 12eur for iwd+iwd2 on amazon] unless you really like BG-style combat without any real plot, but it's pretty, at least :)
[09:27:27] <mattinm> well, there is always icewind gate :D
[09:29:03] <mattinm> the sucky thing with that guys write-up is he doesn't even test the four spells that "should all be 10 minutes/level"
[09:29:51] <fuzzie> well, if you can write some coherent questions about timings in the games, a forum thread might help to clarify things
[09:30:18] <fuzzie> my only question is "Blah, are PS:T rounds really 2 seconds and IWD2 ones really 7? Save me from my despair!", which is perhaps not worthy of a whole thread.
[09:30:18] <mattinm> true; i just like seeing things myself :), plus, i'd feel like somewhat of a leech if i don't do the work
[09:30:27] <mattinm> hahaha
[09:31:06] <mattinm> i think i'll just buckle and go out and buy iwd2 today; it shouldn't be too hard to find
[09:33:14] <-- pupnik__ has left IRC (Remote closed the connection)
[09:33:55] <mattinm> my gut with the 4 spells he didn't look at (that had the effects header in them) is that it's the divisor multiplier
[09:34:06] <mattinm> so that it is TIME/(divisor*7)
[09:34:16] <mattinm> where 7 is the seconds per round
[09:34:26] <fuzzie> it's not already implemented in gemrb? avenger decoded a lot of this stuff originally
[09:34:38] <mattinm> oh, that i'm not sure of
[09:34:59] <mattinm> i'm just thinking out loud to his confusion
[09:35:16] <mattinm> i have learned to not trust descriptions for anything in the game so much
[09:35:35] <fuzzie> yes, they are often lying in some way
[09:36:12] <mattinm> likely the effects got changed to balance the game and the descriptions got left as were
[09:36:19] <lynxlynxlynx> iwds have nice plots, but they're linear
[09:36:23] <fuzzie> but it's a good idea to check gemrb+iesdp+google "keywords site:gibberlings3.net" before trying to work things out
[09:44:19] <fuzzie> lynxlynxlynx: could you reproduce the inventory items being unequipped in pp bug?
[09:44:28] <fuzzie> i removed some other fixed things
[09:44:33] <lynxlynxlynx> i could yes
[09:44:48] <lynxlynxlynx> if you think something recent could have fixed it, i can retry again
[09:45:09] <fuzzie> no, i just couldn't reproduce, perhaps I am missing what the bug is :)
[09:46:42] <lynxlynxlynx> when you're done talking with sarevok, check your inventory
[09:46:50] <lynxlynxlynx> ac 10, no portrait effect icons
[09:47:03] <lynxlynxlynx> even reequipping stuff only helps partially
[09:47:21] <fuzzie> Oh, strange.
[10:13:33] --> pupnik has joined #gemrb
[13:20:26] <-- jdm has left IRC ("http://www.mibbit.com ajax IRC Client")
[13:42:22] * pupnik can do little but cheer
[14:33:17] <lynxlynxlynx> SIGFPE :/
[14:35:52] <pupnik> div by zero?
[14:37:36] <lynxlynxlynx> yep
[14:39:04] <pupnik> black holes are where God div'd by zero, you know...
[14:39:09] <pupnik> fix!
[14:47:22] <fuzzie> attacksperround looks like it could be 0 if slowed, certainly
[14:47:32] <lynxlynxlynx> you don't even need to be slowed
[14:47:43] <lynxlynxlynx> a bandaid is to initialise it as 2
[14:48:12] <lynxlynxlynx> it looks like PerformAttack can be called before InitRound
[14:48:31] <lynxlynxlynx> but there could be an actor confusion in there
[14:48:49] <fuzzie> mattinm patched it recently to add the 'attackcount--;', and that could lead to disaster
[14:49:34] <lynxlynxlynx> attackcount and attacksperround are two variables
[14:50:21] <fuzzie> PerformAttack doesn't execute if attackcount is 0, though, and attacksperround is initialised to attackcount at the end of InitRound, and attackcount is 0 in the constructor
[14:50:52] <fuzzie> but if you do attackcount-- then attackcount is no longer 0, and then you might get a 0 attacksperround in a PerformAttack run?
[14:51:02] <fuzzie> this is just me glancing at the code, got to run home now
[14:52:34] <lynxlynxlynx> attackcount starts of as IE_NUMBEROFATTACKS, which was 5
[14:53:14] <lynxlynxlynx> which turns into 2
[14:53:47] <lynxlynxlynx> even if slowed, it would still be positive
[15:30:31] <lynxlynxlynx> yep, Actor::PerformAttack gets called before InitRound
[15:32:08] <lynxlynxlynx> could be my midcombat save
[15:37:42] <lynxlynxlynx> nope, happens in normal circumstances too
[15:57:53] <lynxlynxlynx> bleh, now a segfault somewhere else
[15:59:27] <lynxlynxlynx> wtf, now an invalid free
[16:00:06] <lynxlynxlynx> haha
[16:01:13] <lynxlynxlynx> http://lynxlynx.info/bugs/tile.foo.chateau.jpg
[16:01:48] <wjp> pretty :-)
[16:04:51] <lynxlynxlynx> http://pastebin.ca/1453829 <-- this was the segfault one
[16:04:58] <lynxlynxlynx> looks like most of my saves are bad now
[16:28:36] <fuzzie> ye, gemrb was corrupting wallgroups/tiles in AREs
[16:28:50] <fuzzie> that was the cause of the challenge floor problem
[16:29:09] <fuzzie> i have a few bad saves, i should make it error out nicely
[16:31:06] <fuzzie> although i only experienced the loader segfaults, not crazy tiles :)
[16:34:44] <fuzzie> so perhaps worth putting the other saves up somewhere?
[17:17:51] <lynxlynxlynx> sure
[17:18:00] <lynxlynxlynx> you want these funky ones?
[17:18:44] <lynxlynxlynx> ok
[17:20:37] <lynxlynxlynx> http://lynxlynx.info/ie/000000008-gem.tar.gz
[17:23:17] --> barra_away has joined #gemrb
[17:40:14] <-- barra_library has left IRC (Connection timed out)
[17:40:20] <CIA-2> gemrb: 03avenger_teambg * r6369 10/gemrb/trunk/gemrb/plugins/Core/Projectile.cpp: implemented PSF_IGNORE_CENTER
[17:44:01] <fuzzie> hooray, more projectile work :)
[17:57:21] <fuzzie> lynxlynxlynx: that one seems fine here, reproduction recipe?
[17:59:55] <lynxlynxlynx> load game
[18:00:04] <fuzzie> strange :)
[18:01:02] <lynxlynxlynx> Corrupt WED file encountered; couldn't find any more tiles at tile 4398
[18:01:28] <lynxlynxlynx> twice, but that's it
[18:01:51] <fuzzie> "[WEDImporter]: Found door without WED entry!" is the sign of the corrupt games I know about
[18:06:02] <lynxlynxlynx> no messages from WEDImporter
[18:09:20] <fuzzie> valgrinding it
[18:10:35] <fuzzie> which is just adding to my buglistr
[18:10:48] <fuzzie> it finds nothing relevant, though :/
[18:14:33] <lynxlynxlynx> could it be endianess related?
[18:15:58] <fuzzie> there's all kinds of dumb code here which assumes resrefs are null-terminated
[18:16:18] <fuzzie> going to be a pain to fix.
[18:17:58] <fuzzie> SPLImp.cpp:87 and Interface.cpp:4367 (indirectly) are two examples
[18:19:38] <fuzzie> I think that savegame probably has some corrupt resref in the Actor somewhere, but it's difficult to tell.
[18:21:31] <lynxlynxlynx> how come it works for you?
[18:21:51] <lynxlynxlynx> maybe i should clear my cache
[18:22:34] <lynxlynxlynx> didn't help
[18:23:41] <fuzzie> The shared x86 machine is back in my hands, will try it on that.
[18:24:23] <lynxlynxlynx> i tried to levelup and that triggered another glibc crash
[18:24:31] <lynxlynxlynx> *** glibc detected *** /lgames/gemrb/gemrb/trunk/gemrb/.libs/lt-gemrb: realloc(): invalid next size: 0x0bf2fc90 ***
[18:24:40] <fuzzie> Have you tried building a clean gemrb?
[18:24:43] <lynxlynxlynx> something is messing with my memory :/
[18:25:02] <lynxlynxlynx> ok, let's see if that helps
[18:25:06] <fuzzie> valgrind *does* show some Actor stuff poking in memory it shouldn't, but I think those bugs have been there for a long time.
[18:25:06] <lynxlynxlynx> some areas do work btw
[18:29:45] <fuzzie> It seems okay on the x86 machine too, but these are patched ToB installs.
[18:30:03] <lynxlynxlynx> nope
[18:36:07] <fuzzie> but it works fine on new games?
[18:43:17] <-- barra_away has left IRC ("Verlassend")
[18:44:21] <-- Gekz has left IRC (Read error: 60 (Operation timed out))
[18:46:10] <lynxlynxlynx> nope
[18:46:32] <fuzzie> i mean, it is entirely possible that i've broken something
[18:46:53] <lynxlynxlynx> Corrupt WED file encountered; couldn't find any more tiles at tile 4398 <-- same error
[18:47:16] <fuzzie> that's the first area?
[18:51:49] <fuzzie> 4311 is the last tile present, so that's correct.
[18:52:29] <lynxlynxlynx> yes, first soa area
[18:52:39] <fuzzie> Oh, it's not, the TIS has 4398 tiles.
[18:56:41] <fuzzie> I've changed *two* pieces of code in that file recently..
[18:56:59] <fuzzie> .. and one of them introduces an obvious bug. Blah.
[18:57:35] <fuzzie> I broke standalone .tis file reading and you probably have one in your override/.
[18:58:50] <fuzzie> Try removing the str->Seek call from Open() in TISImp.cpp.
[19:03:22] --> Gekz has joined #GemRB
[19:04:06] <lynxlynxlynx> yep, that was it
[19:05:11] <CIA-2> gemrb: 03fuzzie * r6370 10/gemrb/trunk/gemrb/plugins/TISImporter/TISImp.cpp: hopefully fix standalone TIS reading, broken by r6364
[19:05:17] <fuzzie> Sorry. :/ Would appreciate you making sure that commit works.
[19:10:06] <lynxlynxlynx> yeah, that fixes it
[19:13:50] --> Edheldil has joined #gemrb
[19:13:50] --- ChanServ gives channel operator status to Edheldil
[19:15:09] <Edheldil> Hi!
[19:15:12] <lynxlynxlynx> oj
[19:15:30] <lynxlynxlynx> fuzzie: do you think it would be bad to change that apr default to 2, so it doesn't crash?
[19:21:22] <fuzzie> if it fixes it, go ahead
[19:21:41] <fuzzie> someone can always change it back if they find a better change
[19:23:31] <lynxlynxlynx> ok
[19:23:41] <lynxlynxlynx> & nice, first time i see sahuagin in ch1
[19:24:00] <fuzzie> if PerformAttack is being called before InitRound then that's certainly the real bug :/
[19:25:44] <lynxlynxlynx> ScriptAction (or something like that) was calling it
[19:26:01] <fuzzie> Did you try removing the attackcount--?
[19:27:36] --> Hak`M has joined #gemrb
[19:28:13] <fuzzie> Hm, yes, Game::UpdateScripts() calls Map::UpdateScripts() before InitRound, and the actors are updated in Map::UpdateScripts. not sure how that ever worked. bit too tired to make sense of a fix now.
[19:28:37] <lynxlynxlynx> the predefinition nicely hides it
[19:29:12] <lynxlynxlynx> but since these are called all the time, it sounds like a bad way
[19:30:24] <fuzzie> in Game::UpdateScripts(), you could try moving the Maps[idx]->UpdateScripts(); to *after* the while() loop there
[19:30:28] <fuzzie> that would be the 'obvious' fix
[19:30:36] <lynxlynxlynx> removing that attackcount-- prevents the crash too
[19:32:34] <fuzzie> I would remove the attackcount-- for now, then. That is the 'real' bug, I think.
[19:33:05] <fuzzie> And then the ordering in Game::UpdateScripts() seems like it *might* be wrong, but I have no idea how exactly this scripting/round stuff interacts.
[19:35:07] --> Darklock has joined #GemRB
[19:35:10] --> Avenger has joined #gemrb
[19:35:12] <fuzzie> Actually, the real solution is just to move all of that code.
[19:35:24] --- ChanServ gives channel operator status to Avenger
[19:35:26] <Avenger> hello
[19:35:33] <fuzzie> Hi Darklock, Avenger, everyone else :)
[19:35:57] <lynxlynxlynx> i'll leave it be then
[19:39:47] <fuzzie> Avenger: any more luck with projectile flags?
[19:40:12] <Avenger> well, i'm still in windows
[19:40:30] <Avenger> i added one today, after seeing how it was implemented
[19:40:52] <Avenger> i'm curious about those i don't know at all
[19:42:26] <Avenger> the problem is, i think the hardcoded effects use a different projectile class, i guess it is an inherited class. And we cannot do that because of hardcoding
[19:43:09] <fuzzie> wow, combat really is working now
[19:43:26] <fuzzie> Avenger: well, if you want someone to do the hard work of reworking projectiles, it could be done
[19:43:40] <Avenger> at least now i have a complete mapping of the .pro file and the internal structs. And i know which parts are used
[19:43:53] <Avenger> whom do you mean?
[19:44:25] <fuzzie> lynxlynxlynx: does http://fuzzie.org/nfs/gemrb/attackcount_fixes.txt work for you?
[19:44:28] <Avenger> and what kind of work? the really hard work would be to create .pro files
[19:45:12] <fuzzie> Avenger: Is creating the .pro files so much work? Just working out what should be inside from the .exe?
[19:45:13] <lynxlynxlynx> trying
[19:45:51] <-- Lightkey has left IRC (Success)
[19:46:27] <Avenger> 1. it needs to be determined what the current .pro isn't capable of, i'm still doing that. 2. all of these specials need to be merged into our one single projectile class, and added to the .pro file struct
[19:46:36] <Avenger> 3. create all missing .pro files
[19:46:44] <Avenger> i think 3. is the really really hard part
[19:46:54] <Avenger> ok, not hard, but time consuming
[19:47:09] --- Darklock is now known as Lightkey
[19:47:33] <lynxlynxlynx> huh
[19:47:40] <Avenger> i would be happy if someone implements a better projectile path
[19:48:00] <fuzzie> with the projectile moving as the actor moves? or do you need curves and things?
[19:48:52] <lynxlynxlynx> arbane's sword haste ability is pickable from the item ability menu
[19:49:42] <Avenger> i think it shouldn't precalculate the path. we need these: 1. simple straight path (with moving target point), 2. continue path after target reached. 3. bounce from walls. 4. curved path like magic missile. 5. sinuous path still generally heading towards the target.
[19:50:28] <Avenger> 5. is needed for pst's snake :)
[19:51:27] <fuzzie> Ok, I don't think any of those are too difficult, just a bit time-consuming.
[19:51:28] <Avenger> that's one hell of a projectile. considering the poor computing abilities of 98's computers.
[19:51:40] <fuzzie> Avenger: do you know if pst rounds are 2 seconds long?
[19:51:58] <Avenger> no, i don't know anything about round lengths
[19:52:05] <fuzzie> i was hoping for clues in the opcodes but i guess they're all done in AI updates like all the effects :)
[19:52:38] <Avenger> i'm glad combat is improving, but i didn't even check it out
[19:52:47] <Avenger> what about normal game time?
[19:53:01] <Avenger> is it fixed now?
[19:53:07] <fuzzie> I *hope* so.
[19:53:29] <fuzzie> It matches what I could check from the original engine, but I haven't really looked into the time-of-day things.
[19:54:56] <lynxlynxlynx> time appears fine now
[19:55:03] <Avenger> lynx: arbane's sword is fine
[19:55:13] <Avenger> it truly has an extended header for the haste effect
[19:55:24] <lynxlynxlynx> yes
[19:55:50] <Avenger> its only free action when equipped
[19:55:51] <lynxlynxlynx> but it should only be available through the bag actionbar icon, not in inventory
[19:56:28] <Avenger> you mean, item abilities are available when they are in the inventory?
[19:56:44] <lynxlynxlynx> yes
[19:58:35] <lynxlynxlynx> the easiest way to win in tough fights is to get charmed
[19:58:48] <lynxlynxlynx> nobody attacks you while you still have all the control >>
[19:59:03] <lynxlynxlynx> and permanent red markers
[20:00:14] <pupnik> doh
[20:00:26] --> barra_library has joined #gemrb
[20:00:29] <pupnik> how does bg2 handle charming
[20:00:34] <lynxlynxlynx> your patch works fine fuzzie
[20:00:42] <fuzzie> lynxlynxlynx: great
[20:00:51] <lynxlynxlynx> pupnik: it is a gemrb bug if that wasn't obvious
[20:01:02] <pupnik> ya
[20:01:35] <pupnik> just seems charmed party members arent fighting to full capacity
[20:01:35] <lynxlynxlynx> fuzzie: but it looks like i found a new ch1 bug
[20:02:00] <lynxlynxlynx> weren't you supposed to get the goto-pp innate when completing it?
[20:02:11] <fuzzie> yes
[20:02:59] <-- mattinm has left IRC (Read error: 60 (Operation timed out))
[20:03:01] <CIA-2> gemrb: 03fuzzie * r6371 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: move round autopause into InitRound
[20:10:44] <CIA-2> gemrb: 03lynxlupodian * r6372 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: only break items on double critical misses
[20:11:03] <fuzzie> mattinm was saying in backscroll that he couldn't reproduce the critical miss <-> breaking thing at all
[20:11:21] <fuzzie> he spent a while testing in bg1 and it only broke on hits
[20:12:23] <fuzzie> oh, i guess he probably added the comment above
[20:15:58] <lynxlynxlynx> i have experienced it a number of times already
[20:16:13] <fuzzie> i mean, this in the original game
[20:16:20] <lynxlynxlynx> while never in the original bg2
[20:16:22] <lynxlynxlynx> yeah
[20:16:31] <Avenger> can weapons break in bg2?
[20:16:45] <fuzzie> <mattinm> well, i had quite a few critical misses with no problem, then my sword broke on about the 100th swing
[20:16:51] <fuzzie> <mattinm> (not a critical miss), so i don't think it's tied to critical miss, but some random roll
[20:16:58] <fuzzie> this being in bg1
[20:17:16] <lynxlynxlynx> bg1 has more breakables
[20:17:16] --- barra_library is now known as barraAway
[20:17:31] <lynxlynxlynx> i guess a lot of magic weapons are immune
[20:17:59] <fuzzie> Those darn kobolds!
[20:18:38] <lynxlynxlynx> made it through ch1 with only sarevok and charname :)
[20:18:57] <lynxlynxlynx> the drow priests with flamestrikes are the worst
[20:19:14] <fuzzie> the script adjusts the wave numbers/difficulty to the number of chars in the party and the party level, which helps a lot
[20:27:38] <lynxlynxlynx> i don't see where the ability is given - it doesn't look like it is in gavid's dialog (chalsp01)
[20:27:52] <fuzzie> oh, i thought it was
[20:27:54] <fuzzie> let me find it
[20:28:16] <lynxlynxlynx> the end node just sets a var
[20:28:33] <fuzzie> it's in AR4500, triggered by that var setting
[20:28:52] <fuzzie> the action is AddSpecialAbility("SPIN649")
[20:29:29] <fuzzie> the script also re-opens the door to the challenge so you can leave, so easy to see if it ran
[20:29:45] <Avenger> exit4500 surely gives it
[20:30:32] <fuzzie> yes, although the area script should give it first.
[20:31:06] <Avenger> yes, it gives it too
[20:31:47] <fuzzie> is the exit4500 script actually used?
[20:31:57] <fuzzie> the infopoint uses ITPPLANE
[20:32:26] <fuzzie> anyway, i guess it is a red herring, that AddSpecialAbility must be failing
[20:32:30] <Avenger> i don't know
[20:32:42] <Avenger> addspecialability should be pretty trivial
[20:33:45] <lynxlynxlynx> maybe the spell is to be blamed
[20:34:07] <lynxlynxlynx> the first effect is remove spell on itself
[20:34:18] <lynxlynxlynx> if we have the wrong ordering it may give and remove it
[20:35:11] <lynxlynxlynx> s/effect/casting feature/
[20:36:36] <fuzzie> but it should still appear the first time
[20:36:50] <Avenger> yes, the casting feature is used only after you clicked on it
[20:37:09] <Avenger> you get the xp for the challenge?
[20:37:32] <lynxlynxlynx> will have to retry
[20:43:28] <-- Gekz has left IRC (Read error: 104 (Connection reset by peer))
[20:45:38] <lynxlynxlynx> Map::PlayAreaSong gets called very often once you start fighting
[20:45:55] <lynxlynxlynx> at least 10Hz here
[20:46:52] <lynxlynxlynx> i got the xp for the last kill, then the cutscene and dialog started
[20:46:54] <fuzzie> yes, it is not an ideal bugfix
[20:47:03] <fuzzie> i think the comments note that it should be pre-parsing the tables
[20:47:16] <fuzzie> lynxlynxlynx: you should get xp after the dialog
[20:47:22] <lynxlynxlynx> something played a few fx over the actor and that's it
[20:47:38] <lynxlynxlynx> fuzzie: yes they do
[20:47:46] <lynxlynxlynx> i'll try moving it out
[20:48:09] <lynxlynxlynx> oh
[20:48:32] <fuzzie> specifically you should gain 30k XP
[20:48:38] <lynxlynxlynx> nope
[20:48:40] <fuzzie> but AddXPObject doesn't give you any kind of feedback
[20:48:44] <fuzzie> it just directly adds the XP
[20:48:51] <lynxlynxlynx> 12k was the last one for killing the fake sarevok
[20:48:57] <lynxlynxlynx> oh
[20:49:19] <lynxlynxlynx> bah, crash
[20:49:23] <fuzzie> oh :(
[20:49:32] <lynxlynxlynx> i was just about to head out to see if i get the innate this time
[20:50:06] <lynxlynxlynx> we need an aoe ^y cheat
[20:52:25] --> Gekz has joined #GemRB
[20:54:27] <fuzzie> i am trying to hunt down another bug..
[20:55:54] <lynxlynxlynx> looks like the reward was 50k
[20:58:58] <lynxlynxlynx> no crash this time, but no pp gadget either
[20:59:28] <lynxlynxlynx> hmm, the actor knows the spell though, but resting doesn't help
[20:59:46] <fuzzie> oh, well, that's hopeful :)
[21:00:21] <Avenger> fuzzie, did you mean you want to help me with the projectiles?
[21:00:32] <Avenger> or that zefklop would work on them?
[21:00:38] <fuzzie> Avenger: the paths certainly sound like something I could do
[21:00:43] <Avenger> ok
[21:00:50] <fuzzie> but i am stuck in a pile of bugfixes right now
[21:01:36] <Avenger> well,once you got far enough in toB, go back to bg2 :) then you can call it bugfixing the lightning machine
[21:02:11] <fuzzie> do you think the lightning machine projectile bouncing is handled by a special path?
[21:02:28] <Avenger> i think the bounce thing and the continue after trigger is done by separate projectiles
[21:02:40] <Avenger> no, it is simple bouncing lightning bolt
[21:03:14] <Avenger> but the lightning bolt is not a single projectile, there are 3 projectiles for it
[21:03:26] <fuzzie> one projectile destroyed per trigger?
[21:04:44] <Avenger> i think it goes this way:1, lightning bolt which explodes on target. 2. once it explodes, it continues on the previous path, until it hits a wall. 3. once it hit a wall it creates another type 2 lightning or grounds itself.
[21:05:18] <fuzzie> that seems relatively simple
[21:06:03] <Avenger> continuing on the original path (and affecting everything) and calculating the bouncing angle are the tough parts
[21:07:01] <Avenger> though the bouncing angle shouldn't be geometrically correct
[21:07:24] --> mattinm has joined #GemRB
[21:07:32] --- ChanServ gives channel operator status to mattinm
[21:07:34] <Avenger> it could pick one from the 16 basic orientations
[21:09:26] <fuzzie> the angle is easy to fix after something works, anyway
[21:10:23] <mattinm> hello everybody
[21:10:36] <CIA-2> gemrb: 03fuzzie * r6373 10/gemrb/trunk/gemrb/plugins/Core/Interface.cpp: fix hiding/showing GUI for cutscenes
[21:10:51] <fuzzie> mattinm: hi
[21:13:26] <fuzzie> mattinm: your spam fix was not so clever :) i moved the code instead.
[21:13:47] <mattinm> fuzzie: i noticed :)... a little oversight on my part
[21:13:57] <mattinm> thanks for the fix
[21:14:09] <fuzzie> feel free to move it back, but i think it's better there
[21:15:13] <mattinm> i do too
[21:17:59] <lynxlynxlynx> looks like an off-by-one error currently
[21:18:29] <lynxlynxlynx> resting ends up in Spellbook::ChargeAllSpells and only the innates from before end up getting called with ChargeSpell
[21:22:41] <lynxlynxlynx> sm->memorized_spells.size () is still 6
[21:23:32] <fuzzie> the action which adds the innate looked like it was meant to add it to memorized spells, but there are a lot of checks along the way, printf()s might come i handy
[21:24:02] <lynxlynxlynx> yeah, i guess it lacks the LS_MEMO flag
[21:24:22] <lynxlynxlynx> it is clear that resting only recharges memorised spells
[21:25:16] <fuzzie> i guess you should do &LS_MEMO for the second param in AddSpecialAbility?
[21:25:21] <lynxlynxlynx> maybe we should force that
[21:25:34] <lynxlynxlynx> i want to check what it is actually passing first
[21:25:39] <fuzzie> it is passing 0
[21:25:45] <lynxlynxlynx> ok
[21:25:49] <fuzzie> because the action parameter is a non-standard gemrb thing
[21:26:17] <lynxlynxlynx> forcing it is
[21:26:22] <-- Hak`M has left IRC ()
[21:26:48] <CIA-2> gemrb: 03mattinm * r6374 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: if InitRound gets through, ensure at least 1apr (in case of slow)
[21:27:21] <fuzzie> :)
[21:28:43] <lynxlynxlynx> autosave is too late, time for another massacre
[21:29:30] <mattinm> hehe, my sorcerer can cast spells as soon as the last is finished... it's like always having improved alacrity on
[21:29:43] <fuzzie> mattinm: the next round fix? :)
[21:30:00] <fuzzie> they're definitely keyed to rounds; as soon as a priest/wizard starts a spell, their round starts [you get End Round in original engine]
[21:30:07] <lynxlynxlynx> i'm not sure we handle wspecial right
[21:30:20] <mattinm> fuzzie: yeah; 1 spell per round is the rule
[21:30:51] <lynxlynxlynx> sarevok has base 3 tohit and effective -3. He has a +3 STR bonus, +3 sword and 5 stars for it
[21:31:04] <mattinm> fuzzie: but, attacking has it's own rounds, at least in bg2 :/
[21:31:06] <lynxlynxlynx> so i'd expect a bigger bonus
[21:31:22] <fuzzie> mattinm: oh?
[21:31:40] <fuzzie> i mean, actors have individual rounds, and i thought you couldn't do combat and spellcasting in the same round
[21:31:58] <mattinm> fuzzie: certainly can... i haven't tested for any of the other games though
[21:32:16] <fuzzie> well, i didn't check that at all
[21:32:38] <fuzzie> All I checked in bg1/pst is that a new combat round starts when you cast a spell, if there's no existing combat round, but not if you're already in a new round.
[21:32:55] <fuzzie> So that seems to imply that they're the same rounds, but honestly I didn't pay a lot of attention.
[21:33:27] <mattinm> yeah; it's a trick i use all the time in bg2; cast a spell, fling melf's meteors for 6 seconds, then cast another spell
[21:33:58] <fuzzie> If you have some time, try it with autopause and see if you can work out if the spells fit anywhere?
[21:34:21] <mattinm> lynx: what is sarevok's strength?
[21:34:29] <mattinm> ok
[21:34:30] <lynxlynxlynx> 18/something
[21:35:05] <lynxlynxlynx> 00 :)
[21:35:41] <mattinm> could it bee that the base to hit already includes the thac0 from the sword?
[21:35:50] <lynxlynxlynx> no
[21:36:01] <mattinm> hmmm
[21:36:11] <lynxlynxlynx> maybe the strength bonus isn't counted, since it is displayed separately lower
[21:36:21] <lynxlynxlynx> need to check an original
[21:36:37] <mattinm> well, it should be -3 for the sword and -2 for the 5stars
[21:37:25] <mattinm> 18 str gives -1 as well, which would get us to -3 overall
[21:37:35] <mattinm> perhaps the extra strength isn't being done correctly?
[21:37:54] <mattinm> it is 100 in the strmodex table after all, not 0
[21:38:48] <mattinm> and 0 is 0 naturally; that begs the quetion: is it stored as 0 or 100?
[21:38:50] <lynxlynxlynx> the info says it should be +3tohit and +6damage
[21:39:44] <mattinm> that's what the strmod(ex) tables say too; i'm just concerned that we don't do strextra 00 as 100
[21:39:52] <lynxlynxlynx> guirec gets that by looking at the table
[21:39:57] <lynxlynxlynx> yeah
[21:41:44] <mattinm> well, looking at it in NI, it *looks* like it's stored as 100
[21:41:57] <fuzzie> doon't trust the editing tools :/
[21:42:28] <fuzzie> but, yes, 18 is 0, 18/00 should be 100
[21:42:47] <mattinm> yeah, i can double check within the game
[21:44:20] <mattinm> yep, it's stored as 100
[21:45:27] <lynxlynxlynx> teleporting back to pp doesn't work though
[21:45:35] <CIA-2> gemrb: 03lynxlupodian * r6375 10/gemrb/trunk/gemrb/plugins/Core/Actions.cpp: always memorize granted special abilities
[21:47:10] <fuzzie> hm, GetStrengthBonus looks okay too
[21:49:32] <mattinm> yeah, i just added some printf's and it's calculating fine for my 18/00 char
[21:50:34] <lynxlynxlynx> fx_npc_bump <-- interesting name
[21:55:02] --- barraAway is now known as barra_library
[21:56:17] <mattinm> lynx: i got it :/
[21:57:11] <mattinm> the wspecial bonus was being added to tohit, instead of THACOBonus, and tohit gets overridden by THACOBonus in the GetToHit call
[21:57:40] <lynxlynxlynx> ah
[21:58:14] <lynxlynxlynx> good night
[21:58:22] <-- lynxlynxlynx has left IRC (Remote closed the connection)
[21:59:37] <CIA-2> gemrb: 03mattinm * r6376 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: fixed proficiency based to hit bonus
[22:01:02] <Avenger> bye
[22:01:09] <-- Avenger has left IRC ("ChatZilla 0.9.84 [Firefox 3.0.10/2009042316]")
[22:01:32] <mattinm> okay, so the goals for tonight: spell rounds (double-check functionality) and weapon styles (notably two-weapon penalties)
[22:01:49] <mattinm> i've just been holding off on the styles until i can find 2da's for them
[22:02:50] <fuzzie> you found them?
[22:03:07] <mattinm> i wish; i'm just going to google/hunt harder today
[22:03:19] <mattinm> likely, nothing will be gained, but it can't hurt
[22:03:46] <mattinm> i'm thinking we might have to make one
[22:08:09] <fuzzie> certainly the only 2DA files with '2HANDED' present are the stat list and weapprof
[22:08:36] <fuzzie> nothing likely-looking after cross-checking with the id, either
[22:08:45] <mattinm> yeah
[22:10:07] <mattinm> i'll make a provisional 2da tonight then, if (after) i search for a little while longer
[22:10:18] <fuzzie> it's TWO_HANDED in iwd2, but a completely different prof table there
[22:10:22] <mattinm> i won't commit, but i'll put it up somewhere for people to review
[22:10:29] <mattinm> yeah
[22:15:03] <fuzzie> what would such a 2da contain?
[22:16:51] <fuzzie> heh, googling for this comes up with the NWN 2da :)
[22:29:58] --- barra_library is now known as barraAway
[22:33:13] --> mattinm1987 has joined #GemRB
[22:33:23] <-- mattinm has left IRC (Read error: 110 (Connection timed out))
[22:35:47] --- mattinm1987 is now known as mattinm
[22:35:53] --- ChanServ gives channel operator status to mattinm
[22:36:00] <mattinm> that was odd
[22:40:28] --> barra_away has joined #gemrb
[22:42:56] <-- barraAway has left IRC (kornbluth.freenode.net irc.freenode.net)
[22:43:16] --> barraAway has joined #GemRb
[22:52:55] <fuzzie> sigh, there's so much hardcoded into bg2
[22:53:15] <mattinm> i know :/
[22:54:53] <mattinm> it's the checks that i'm worried about more than anything
[22:55:33] <mattinm> because i can't very well but IsDualWielding or "only 2handed melee weapons, NO BOWS!" in a 2da
[22:56:59] <-- barraAway has left IRC (Connection timed out)
[22:58:09] <fuzzie> i think it might make more sense to hard-code for now, which is why i was asking what'd go in a 2da
[23:00:43] <mattinm> ahhhh... dual wielding is even more difficult in iwd2 :/
[23:02:26] <mattinm> i'm not sure how the feat system works, but perhaps it takes care of itself
[23:02:54] <mattinm> all except the small off-hand weapon reducing the penalty by 2, that's tricky
[23:08:51] <mattinm> i wonder if IE_MELEEHIT and IE_HITBONUSLEFT/RIGHT do actually stack
[23:09:39] <mattinm> it would make sense that IE_MELEEHIT would be use if not dual wielding, and the specifics otherwise
[23:10:09] <fuzzie> hm, if i save an iwd2 game in gemrb then it won't load it again :)
[23:10:20] <mattinm> that's not good :)
[23:15:27] <pupnik> gurps was simple
[23:17:06] <fuzzie> i think anything except D&D 2e would seem simple at this point
[23:33:31] <fuzzie> well, the effect code for the style proficiencies is certainly identical to any other proficiency
[23:48:09] --> mattinm1987 has joined #GemRB
[23:49:40] <-- mattinm has left IRC (Read error: 110 (Connection timed out))
[23:50:10] <-- Edheldil has left IRC ("Really?")