#gemrb@irc.freenode.net logs for 27 Jan 2013 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:03:41] <Seniorita> [commit] Jens Granseuer: add string entry for "Weapon Ineffective" http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=3abadb02416fe30a34ad25ea249a690966464454
[00:03:42] <Seniorita> [commit] Jens Granseuer: also show immunity feedback in games without a corresponding verbal constant http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=a9725fff166e4f8d8f759df1591d4152ca4669b2
[00:05:30] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[00:07:13] <-- fizzle has left #gemrb
[00:14:56] <-- Cable_ has left IRC (Ping timeout: 252 seconds)
[00:19:46] --> Cable_ has joined #gemrb
[00:24:07] <-- Cable_ has left IRC (Read error: Operation timed out)
[01:09:27] <-- brada has left #gemrb
[01:30:13] <-- miha has left IRC (Quit: Lost terminal)
[02:02:20] --> |Cable| has joined #gemrb
[02:03:23] <-- |Cable| has left IRC (Client Quit)
[02:46:57] --> |Cable| has joined #gemrb
[02:46:57] <-- |Cable| has left IRC (Client Quit)
[02:47:33] --> |Cable| has joined #gemrb
[02:53:21] <-- |Cable| has left IRC (Ping timeout: 245 seconds)
[03:06:28] --> |Cable| has joined #gemrb
[03:17:14] <-- |Cable| has left IRC (Ping timeout: 256 seconds)
[03:30:01] --> |Cable| has joined #gemrb
[03:36:16] <-- edheldil_ has left IRC (Ping timeout: 245 seconds)
[03:38:48] <-- |Cable| has left IRC (Ping timeout: 252 seconds)
[03:51:53] --> |Cable| has joined #gemrb
[03:53:33] --> Cable_ has joined #gemrb
[03:55:05] --> Cable__ has joined #gemrb
[03:56:53] <-- |Cable| has left IRC (Ping timeout: 252 seconds)
[03:58:16] <-- Cable_ has left IRC (Ping timeout: 240 seconds)
[04:00:03] <-- Cable__ has left IRC (Ping timeout: 252 seconds)
[04:06:05] --> Cable__ has joined #gemrb
[07:59:46] --> lynxlynxlynx has joined #gemrb
[07:59:46] <-- lynxlynxlynx has left IRC (Changing host)
[07:59:46] --> lynxlynxlynx has joined #gemrb
[07:59:46] --- ChanServ gives channel operator status to lynxlynxlynx
[08:19:44] --> edheldil_ has joined #gemrb
[08:55:33] --> fizzle has joined #gemrb
[09:52:40] <Seniorita> [commit] Jaka Kranjc: Actor: split out IWD2GemrbQslot converter function http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=8ec2dc99c4e2b07ba1d1ed443a9e6122f753cbd3
[09:52:41] <Seniorita> [commit] Jaka Kranjc: fixed iwd2 quickslot lookups http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=dadcc952a6400fb51a670847e8192422fece55e9
[10:01:04] <-- edheldil_ has left IRC (Ping timeout: 276 seconds)
[12:01:51] --> Yoshimo has joined #gemrb
[12:11:20] --> rocket_hamster has joined #gemrb
[12:21:27] <-- rocket_hamster has left IRC (Read error: Connection reset by peer)
[12:31:33] --> kida has joined #gemrb
[12:33:03] <-- kida has left IRC (Client Quit)
[12:33:14] --> kida has joined #gemrb
[12:33:54] <fizzle> hm, I found the kaishas door bug
[12:34:10] <fizzle> not sure what the best fix is here
[12:35:00] <fizzle> apparently, TotSC doesn't come with an updated triggers.ids so 0x4076 is unknown and unhandled
[12:35:31] <fizzle> adding it to gemtrig.ids fixes it but I'm not sure what (if anything) that would do to other games that already do have the trigger
[12:36:14] <lynxlynxlynx> which trigger is that?
[12:36:41] <fizzle> OpenState
[12:36:42] <lynxlynxlynx> anyway, the safe approach is to only add it to bg1's gemtrig.ids
[12:37:21] <fizzle> individual files override shared?
[12:38:05] <lynxlynxlynx> yep
[12:38:12] <lynxlynxlynx> plenty of uses in bg2 and iwd2, 2 in how
[12:38:19] <fizzle> okay
[12:38:29] <lynxlynxlynx> i'd check first that the 3 ids don't interfere
[12:38:44] <lynxlynxlynx> if they don't, you can add it to the shared file without problems
[12:38:59] <lynxlynxlynx> you can get the ids on iesdp the fastest
[12:39:54] <fizzle> well, pst is different
[12:40:45] <fizzle> the other games apparently are all have OpenState as 0x4076
[12:40:55] <lynxlynxlynx> eeh
[12:42:05] <lynxlynxlynx> btw, iesdp does have openstate for bg1
[12:42:27] <fizzle> yes, i saw, but triggers.ids doesn't...
[12:43:39] <lynxlynxlynx> indeed, ends at 75 here too
[12:43:42] <lynxlynxlynx> i'll report it
[12:44:20] <lynxlynxlynx> since you have to make a special case for one game, it's better to do it for bg1 then
[12:44:33] <fizzle> okay
[12:45:43] <fizzle> UsedExit is a gemrb extension, I suppose, so bg1 doesn't need that?
[12:46:45] <lynxlynxlynx> not sure what you're talking about
[12:46:59] <fizzle> the trigger that's in the shared gemtrig
[12:47:06] <lynxlynxlynx> how did the original work though, i doubt they hardcoded these extra triggers
[12:47:49] <lynxlynxlynx> fizzle: why remove it? it's probably crucial for some movement code
[12:49:26] <fizzle> if it's unused, because keeping several lists synced is going to break sooner or later
[12:49:38] <fizzle> if it's used, then that's a different matter, of course
[12:51:44] <lynxlynxlynx> we use it only in pst
[12:52:04] <lynxlynxlynx> in that case it is better to add the override to pst
[12:52:18] <lynxlynxlynx> reinstating 4076
[12:52:55] <fizzle> bg2 and iwd supposedly already have that in their original data, don't they?
[12:55:20] <fuzzie> the original engines hardcoded *all* actions and triggers
[12:55:53] <fizzle> what do they use triggers.ids for, then?
[12:56:00] <fuzzie> the script compiler.
[12:56:10] <fuzzie> and dialog compilation.
[12:56:30] <fizzle> oh, and the engine itself doesn't use it?
[12:56:32] <fuzzie> but there's plenty of stuff which is engine-internal only.
[12:56:50] <fuzzie> the dialog stuff isn't compiled, so the engine does use it for that
[12:57:24] <fuzzie> but they're only accurate enough that the compilation works, they're not good for anything except that :)
[12:58:39] <fuzzie> so, please don't remove anything from gemrb .ids files unless you're 100% sure it's not used by anything, but it's not a problem adding things which are used.
[12:59:55] <fizzle> the trigger id is used by pst for a different trigger, though
[13:01:04] <fizzle> so we need to either override bg1 only, or edit shared and override it in pst
[13:01:30] <fuzzie> yes, I don't have an opinion on which of those is better
[13:01:54] <fuzzie> but do you mean that UsedExit is conflicting?
[13:02:07] <fizzle> no
[13:03:00] <fizzle> I was just saying that if we choose to override in bg1 and the trigger is not used there keeping it in the override file is probably more confusing than helpful
[13:03:10] <fuzzie> yes, I think it doesn't matter
[13:03:53] <fuzzie> was mostly just replying to lynx's question about hardcoding here
[13:04:49] <fuzzie> It does look like UsedExit is very much gemrb-specific and pst-only so that is fine.
[13:05:17] <fuzzie> It's just that it'd be really easy to say "hey, this stuff in gemact.ids is unused by the original games" too, and that would be bad.
[13:05:45] <fuzzie> Maybe we'd better look into picking up *both* files.
[13:05:52] <fuzzie> Tricky though.
[13:06:08] <fizzle> wasn't doing anything of the sort :)
[13:09:10] <fizzle> if we suppose that the original game files are *normally* fine and complete (cough) I'd prefer adding OpenState as a bg1 override only
[13:10:20] <fuzzie> well, that seems a pretty reasonable first thing to do
[13:10:58] <fuzzie> minimal change and it can always be moved 'up' later
[14:01:12] <Seniorita> [commit] Jaka Kranjc: iwd2::cg: correctly set the selected skills http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=060436e1a32af728c19d39706bff4e0c4503bb6a
[14:01:13] <Seniorita> [commit] Jaka Kranjc: iwd2: no need to re-set the skills at the end of cg http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=b4e80e14f8021c0e03aa0eed43e40c6ffddb680f
[14:01:14] <Seniorita> [commit] Jaka Kranjc: iwd2::guirec: only show skills that either don't require training or had it already http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=0ff98b1bf9e3bd938568efacb452c60a3f3fafe8
[14:01:16] <Seniorita> [commit] Jaka Kranjc: iwd2::cg: randomize starting portrait http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=705d707b53609cedbe93859aae793f47051a2e99
[14:07:25] <Seniorita> [commit] Jens Granseuer: pause game when opening options http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=cef8d826abdbe4489cc03a811f922be2c3716441
[14:07:27] <Seniorita> [commit] Jens Granseuer: bg1: add OpenState trigger override http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=ce970795205725d06e0cf1560719f73e47c08c94
[14:32:08] <Seniorita> [commit] Jaka Kranjc: iwd2: marked FOOD2 as usable in the hypothetical potion slot http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=0063ae8cad3915139de02512aab9665b2d2c460a
[14:51:18] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[15:44:56] --> lynxlynxlynx has joined #gemrb
[15:44:56] <-- lynxlynxlynx has left IRC (Changing host)
[15:44:56] --> lynxlynxlynx has joined #gemrb
[15:44:56] --- ChanServ gives channel operator status to lynxlynxlynx
[15:59:54] <fizzle> lynxlynxlynx: I think your iwd quickslot changes broke bg1
[16:00:50] <fizzle> Actor::GetActionUttonRow looks suspicious
[16:01:06] <lynxlynxlynx> huh
[16:04:28] <lynxlynxlynx> so what's the problem you are seeing?
[16:04:55] <lynxlynxlynx> i tried bg2 before pushing and the quickslots seemed to work as before
[16:06:21] <fizzle> all my party gets messed up Priest action bar
[16:06:51] <fizzle> plus rogue outfit
[16:08:04] <lynxlynxlynx> rogue outfit?
[16:08:19] <fizzle> hide in shadows, pick locks, etc
[16:10:45] <lynxlynxlynx> ah
[16:10:50] <lynxlynxlynx> i have problems in bg1 too
[16:11:08] <lynxlynxlynx> let me recheck that refactor
[16:12:26] <lynxlynxlynx> wrong return
[16:16:21] <Seniorita> [commit] Jaka Kranjc: fixed my regression from 8ec2dc99c http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=3ebc470062f62d8efaff9845378026b63859e500
[16:17:16] <lynxlynxlynx> interesting alignment
[16:18:39] <fizzle> i like the normal one better :-P
[16:36:00] <-- Yoshimo has left IRC (Quit: Yoshimo)
[16:38:45] --> brada has joined #gemrb
[16:39:45] <brada> lynx: freetype does do AA, but it gives a poor result with the palettes
[16:40:00] <brada> we would have to manipulate the greyscale values in some fashion
[16:41:04] <lynxlynxlynx> http://www.gemrb.org/wiki/lib/exe/fetch.php?media=fonts.png <-- why does this one look so good?
[16:41:17] <lynxlynxlynx> was it a bam font?
[16:41:43] <brada> no
[16:42:11] <brada> you can play around with the ttf plugin
[16:42:26] <brada> should just be passing a new value to the bitmap render call
[16:47:02] <lynxlynxlynx> the demo font is about the same size, let's see if it is any better bold
[16:47:09] <lynxlynxlynx> it is clearly thinner
[16:48:00] <brada> i dont think that the styles work at all anymore
[16:48:06] <lynxlynxlynx> they don't
[16:48:17] <lynxlynxlynx> i thought that commit near the end of your queue fixed it
[16:48:53] <brada> no it fixed the ability to create new fonts with the same name as long as the style or size differed
[16:57:01] <brada> anyway what we need to do should be trivial. i should just need a way to get a text palette.
[17:03:03] <-- brada has left IRC (Quit: brada)
[17:05:23] <lynxlynxlynx> i can't reproduce that screenshot with exocet
[17:07:34] <lynxlynxlynx> it was at size 20
[17:07:50] <lynxlynxlynx> the demo has an inversed contrast, but that can't be it
[17:24:18] <lynxlynxlynx> looks like it play a part though, exocet in iwd looks ok
[17:31:04] --> i30817 has joined #gemrb
[17:42:14] <-- kida has left IRC (Ping timeout: 255 seconds)
[17:44:14] <-- i30817 has left IRC (Read error: Connection reset by peer)
[18:59:59] <Seniorita> [bug] 3602298 - BG2: attacking wyvern causes crash http://sourceforge.net/tracker/?func=detail&atid=110122&aid=3602298&group_id=10122
[19:04:36] --> miha has joined #gemrb
[19:17:17] <lynxlynxlynx> that's odd, it should crash in bg1 too then
[19:17:22] <lynxlynxlynx> same data
[19:18:04] <lynxlynxlynx> fizzle: did you have any problems while playing?
[19:18:41] <lynxlynxlynx> i see we have two wyvern types in there and the other one is using IE_ANI_SIX_FILES
[19:20:20] --- ermo^ is now known as ermo
[19:46:57] <fizzle> lynxlynxlynx: no, no problems here
[19:50:43] <fizzle> 16 is sleep, though, so that seems rather uncommon
[19:52:16] <lynxlynxlynx> maybe he got lucky with power word
[20:12:07] <-- Cable__ has left IRC (Ping timeout: 246 seconds)
[20:23:21] <lynxlynxlynx> yeah
[20:26:01] --> Cable__ has joined #gemrb
[20:32:38] <Seniorita> [commit] Jaka Kranjc: CharAnimations::AddFFSuffix: also cover sleep http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=398d3a1390b2892d268af737e17e3c0abb413257
[20:40:47] --- ermo is now known as ermo^
[20:52:30] <-- miha has left IRC (Quit: Lost terminal)
[22:08:19] <fizzle> damn
[22:08:49] <fizzle> I have probably grown quite a few gray hairs recently
[22:09:09] <fizzle> does this look like a correct change? http://nopaste.me/paste/10664089445105a5438e481
[22:10:17] <fizzle> the problem I was seeing and this is supposed to fix:
[22:10:49] <fizzle> if an actor dies out of view it can happen that it never drops its items
[22:11:24] <fizzle> my test case never showed that behaviour in 100% of the cases
[22:11:43] <fizzle> but I've now run 10 tests with the change, and it hasn't occured once
[22:15:22] <lynxlynxlynx> but inventory dropping is not scripted, why would that affect it?
[22:17:56] <fizzle> removal of IF_JUSTDIED is scripted
[22:18:14] <fizzle> and without that CheckOnDeath never gets to the dropping part
[22:18:22] <fizzle> is my guess
[22:18:47] <fizzle> lightly educated
[22:34:35] <lynxlynxlynx> something for fuzzie to comment on
[22:34:42] <lynxlynxlynx> that's the main loop
[22:35:48] <lynxlynxlynx> hmm, we don't set trigger_died anywhere
[22:35:59] <lynxlynxlynx> any Died call would fail unless negated
[22:36:56] <lynxlynxlynx> it's not used that much - only one script in bg1 for example
[22:37:29] <lynxlynxlynx> (for someone called Husam)
[22:39:43] <lynxlynxlynx> and it's the only one potentially touching that bit i think
[22:41:28] <fuzzie> that url isn't loading for me.
[22:42:52] <fuzzie> ah, it does eventually.
[22:43:24] <fuzzie> fizzle: this is bg1?
[22:43:29] <fizzle> yes
[22:45:26] <fuzzie> do you know why that happens?
[22:46:07] <fizzle> I guess the scripts are stopped because the actor is offscreen
[22:46:08] <fuzzie> oh, because IF_JUSTDIED stays set forever
[22:46:17] <fizzle> right
[22:47:21] <fuzzie> but why is the actor not active?
[22:49:48] <fuzzie> IF_ACTIVE should be set on everyone in bg1 who doesn't start as a corpse.
[22:50:46] <fuzzie> ah.
[22:51:14] <fuzzie> 4378428f5f1811e14b84674092dc55b6044a528b sets startActive /after/ startActive is used.
[22:52:26] <fuzzie> but that doesn't matter here because startActive==false in bg1 and I am being confused by old commits.
[22:52:32] <fuzzie> fizzle: is the actor in question dead before you ever see them?
[22:52:42] <fizzle> no
[22:53:13] <fizzle> although I think I've seen that happen, too
[22:53:19] <fuzzie> I actually sabotaged IF_ACTIVE a while ago, because it was really buggy.
[22:53:32] <fuzzie> So IF_ACTIVE shouldn't ever get *un*set.
[22:54:07] <fuzzie> So it's weird that you'd reach that case, you'd expect the other one to be a problem (above there, in the IE_ANI_TWITCH bit of the IF_ACTIVE block).
[22:54:46] <fuzzie> So I worry that you're just hiding one case of some really weird bug here.
[22:55:13] <fizzle> but as long as ACTIVE is set the actor script is running, isn't it?
[22:55:16] <fuzzie> It seems harmless though, if it really fixes some problem. Please do add a comment with an explanation+test though.
[22:55:22] <fuzzie> no
[22:55:31] <fuzzie> well, it means that the actor script gets checked.
[22:55:34] <fuzzie> so it is 'live'.
[22:56:05] <fizzle> so JUSTDIED still can become unset?
[22:56:19] <fuzzie> yes
[22:56:25] <fizzle> which is why the problem only manifests in the !Active case
[22:56:27] <fuzzie> it might not though.
[22:56:35] <fuzzie> yes, but the IF_ACTIVE case should never happen :P
[22:57:00] <fuzzie> Because IF_ACTIVE should never ever get unset.
[22:57:23] <fizzle> the ~IF_ACTIVE case you mean?
[22:57:28] <fuzzie> erm, yes
[22:57:36] <fuzzie> sorry
[23:00:48] <fuzzie> I'm pretty tired so I might be missing something, it just seems really weird.
[23:01:07] <fizzle> I'll poke around a bit more
[23:01:11] <fuzzie> Your change is probably still good though, since we don't handle dying like the original engine does yet.
[23:01:27] <fuzzie> It's just that I'm confused as to why it would help you, unless the actor was already dead when you entered the area.
[23:02:24] <fizzle> hrm
[23:02:27] <fizzle> I know why
[23:02:39] <fizzle> because it doesn't
[23:03:12] <fizzle> of course it only fails to work the 11th time you try it...
[23:03:53] <fuzzie> It might help to put the check in the similar bit above it which only checks TWITCH though.
[23:05:22] <fuzzie> Although then it would be smarter to just make Die() unset IF_IDLE.
[23:05:58] <lynxlynxlynx> where would be the correct place to set trigger_died?
[23:06:24] <fuzzie> let me check
[23:07:55] <lynxlynxlynx> we set trigger_die in Actor::Die, so this one is a candidate for after the cleanup
[23:08:34] <fuzzie> the original does set trigger_die in the death opcode
[23:09:01] <fuzzie> not died
[23:10:42] <fizzle> fuzzie: looks pretty good with that change
[23:10:44] <lynxlynxlynx> the opcode calls died, so there shouldn't be much difference
[23:11:09] <fuzzie> died is 0x4a?
[23:11:56] <lynxlynxlynx> yes
[23:12:18] <lynxlynxlynx> *the opcode calls actor::die
[23:15:07] <fuzzie> oh I remember
[23:16:24] <fuzzie> so the on-death-or-equivalent triggers are a bit trickier
[23:16:39] <fuzzie> they're sent by the imprisonment/petrification opcodes too
[23:17:07] <lynxlynxlynx> no problem
[23:17:55] <fuzzie> my notes claim that trig_died goes to everyone in visual range without a LOS check, and trig_killed goes to killer (I guess?) if not dead/frozen/petrified
[23:18:38] <fuzzie> the trigger handler for killed deals with morale/fist/rep/XP/etc so the not-dead makes no sense.
[23:18:54] <fuzzie> probably I misremember that.
[23:19:15] <lynxlynxlynx> maybe it's there to prevent pingponging
[23:20:08] <fuzzie> in any case, the important thing about trig_died in the original engine is that it's used internally to reduce morale if your friends die
[23:20:22] <fuzzie> so it's probably pretty irrelevant where it goes in gemrb
[23:24:07] <lynxlynxlynx> heh, i'll stick where we reduce morale due to death then
[23:25:21] <fizzle> removing IDLE in die looks good, too
[23:29:21] <lynxlynxlynx> ok, reacttodeath wasn't such a good idea, only party members get that
[23:29:35] <lynxlynxlynx> something for tommorow
[23:52:31] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[23:56:07] <-- fizzle has left #gemrb