#gemrb@irc.freenode.net logs for 3 May 2011 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[01:10:28] <-- mihairu has left #gemrb
[01:11:25] --> mihairu has joined #gemrb
[01:46:09] <-- mihairu has left IRC (Remote host closed the connection)
[02:51:05] <-- Maighstir has left IRC (Quit: ~ Trillian Astra - www.trillian.im ~)
[03:04:02] --> mihairu has joined #gemrb
[07:08:20] --> lynxlynxlynx has joined #gemrb
[07:08:20] <-- lynxlynxlynx has left IRC (Changing host)
[07:08:20] --> lynxlynxlynx has joined #gemrb
[07:08:20] --- ChanServ gives channel operator status to lynxlynxlynx
[07:09:14] --> Bo_Thomsen has joined #gemrb
[07:10:29] <dhewg> moin
[07:14:57] --> adominguez has joined #gemrb
[07:27:07] --> lubos has joined #gemrb
[07:37:02] <fuzzie> lynxlynxlynx: i can't force-attack with summons, no quick weapon?
[07:42:56] <lynxlynxlynx> yeah, sometimes we don't do it
[07:43:02] <lynxlynxlynx> i had the same issue with a npc
[07:43:14] <lynxlynxlynx> (init all the quickweapons)
[07:43:35] <fuzzie> keldorn's sword works though
[07:50:33] <fuzzie> efreeti too
[07:54:17] <-- Bo_Thomsen has left IRC (Quit: Leaving.)
[08:07:46] <fuzzie> i'd like to test contingencies before committing
[08:07:50] <fuzzie> but are they even working?
[08:10:08] <fuzzie> ah, they are
[08:11:21] <fuzzie> and my portrait icon is good too!
[08:16:56] <CIA-52> GemRB: 03fuzzie * r2b127b251e41 10gemrb/gemrb/ (4 files in 2 dirs):
[08:16:56] <CIA-52> GemRB: Improve fx_cast_spell_on_condition triggering.
[08:16:56] <CIA-52> GemRB: This isn't quite perfect yet, but should fix the major problems with it.
[08:47:12] * dhewg pokes fuzzie
[08:47:53] <fuzzie> bit too late now :p
[08:48:24] <dhewg> its a prepoke so i can continue playing in ~6h :P
[08:49:17] --> SiENcE has joined #gemrb
[08:49:25] <-- |Cable| has left IRC (Remote host closed the connection)
[08:53:24] <fuzzie> i squeezed in that last commit just to see if anyone can test it, but anything else waits until i have time late
[08:53:27] <fuzzie> r
[08:59:41] <dhewg> sounds good to me :)
[09:00:13] <dhewg> did i mention that the hunt for a nice hashmap is no fun?
[09:00:17] <fuzzie> yes
[09:00:24] <dhewg> oh, i did, eh?
[09:00:26] <dhewg> :)
[09:00:27] <fuzzie> we're all glad it's your problem :p
[09:00:35] <dhewg> hehe
[09:00:45] <fuzzie> we can write something if need be
[09:00:58] <dhewg> well, i found a couple that are not tightly integrated into something else
[09:01:06] <dhewg> but they all suck on some level
[09:01:28] <dhewg> so maybe a nice start would be to just cleanup+template the current one
[09:01:31] <fuzzie> we just want a template which takes a key, a hash function and some bucket params, i assume
[09:01:39] <fuzzie> so, yes, might be a plan
[09:03:12] --> SiENcE_ has joined #gemrb
[09:04:14] <-- SiENcE has left IRC (Ping timeout: 260 seconds)
[09:08:16] <fuzzie> i'm curious why nothing uses trees for the buckets, but i suppose that falls under 'doing it wrong'
[09:09:32] <dhewg> i wondered that myself
[09:12:45] <fuzzie> it seems i have absolutely no data structures books here at all
[09:12:55] <fuzzie> too lazy to look further than that
[09:20:26] <wjp> the wikipedia entry does mention it, but as something rarely worth the trouble
[09:22:02] <dhewg> i was reading this http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
[10:12:10] <edheldil> if anyone's interested: hash fn for all resrefs in PST: w1, w2, w3, w4 = struct.unpack('hhhh', s) ; h = (((w1 ^ ~w3)<<3) ^ (w2 ^ ~ w4)) % (2**16) ;
[10:12:26] <edheldil> Total: 11338
[10:12:26] <edheldil> #hashes: 10175
[10:12:26] <edheldil> Most freq: H: 39625 C: 4
[10:12:26] <edheldil> 1 9123
[10:12:26] <edheldil> 2 947
[10:12:27] <edheldil> 3 105
[10:13:18] <fuzzie> that is a pretty expensive hash function, though
[10:14:03] <edheldil> due to shift?
[10:14:39] <fuzzie> i was mostly thinking of the divide
[10:15:06] <edheldil> it's mod 2^16, so it's almost free
[10:15:08] <fuzzie> but i guess you can just store in uint16
[10:15:36] <fuzzie> but there are, what, 5 bit ops in there? :) i wonder how well it works for other games
[10:16:29] <fuzzie> (and I guess your unpack is '<hhhh'?)
[10:17:30] <edheldil> SE? it is. It's just an 8th random attemp I made on a fn
[10:20:16] <fuzzie> but i guess the variables are maybe more annoying
[10:20:35] <fuzzie> they are easy to check in pst i suppose, since there is a list of variables you're allowed to use :P
[10:20:49] <edheldil> this is bg2:
[10:20:52] <edheldil> Total: 36828
[10:20:52] <edheldil> #hashes: 25478
[10:20:52] <edheldil> Most freq: H: 59644 C: 11
[10:20:52] <edheldil> 1 17962
[10:20:52] <edheldil> 2 5096
[10:20:53] <edheldil> 10-19 8
[10:20:55] <edheldil> 3,4 2115
[10:20:57] <edheldil> 5-9 297
[10:21:22] <edheldil> but of course feel free to come with st. better - there are probably better ones in CS books
[10:21:33] <fuzzie> well i guess someone will probably work one out
[10:23:19] <fuzzie> my next thing is probably to see if i can fix round times
[10:23:44] <fuzzie> the attack anims are getting on my nerves, but they can't be fixed if rounds are the wrong length
[10:23:51] <edheldil> if anyone wants to play with it, it's at www.eowyn.cz/gemrb/hashfn.py
[10:27:44] <fuzzie> but i guess we could just take the round times directly from the attack anim data..
[12:01:18] <-- lynxlynxlynx has left IRC (Ping timeout: 240 seconds)
[12:21:50] --> lynxlynxlynx has joined #gemrb
[12:21:50] --- ChanServ gives channel operator status to lynxlynxlynx
[13:20:27] <lynxlynxlynx> can't wait to test
[13:58:21] <fuzzie> when can you? :p
[14:10:09] <-- mihairu has left IRC (Remote host closed the connection)
[14:34:28] <lynxlynxlynx> later :P
[14:35:10] <fuzzie> the fact that it's limited to one-per-frame made it a lot easier than i'd tried to write it at first
[15:38:26] <lynxlynxlynx> fireshield blue and the armor of thorns seem to work fine
[15:39:33] <lynxlynxlynx> globe of blades suffers from bad targetting
[15:39:57] <lynxlynxlynx> (only the caster gets hurt)
[15:40:47] <fuzzie> which resref?
[15:41:17] <lynxlynxlynx> sequencer seems fine too
[15:41:32] <lynxlynxlynx> sppr725
[15:41:49] <lynxlynxlynx> but this didn't work before either afair, so it may be a projectile issue
[15:43:00] <fuzzie> umm
[15:43:22] <fuzzie> intrsting
[15:43:47] <lynxlynxlynx> sppr603 has the same issue - blade barrier
[15:44:26] <lynxlynxlynx> i'll try olihydra, but i don't expect any problems
[15:44:29] <lynxlynxlynx> good job!
[15:45:31] <fuzzie> both of them are doing the same thing, which is casting the damage spell at themselves with target of TARGET_CREA
[15:47:06] <fuzzie> i don't even see how we handle that
[15:47:42] <fuzzie> we just completely ignore spell targets unless they come from the GUI? that's right?
[15:48:29] <lynxlynxlynx> olyhidra works fine too :)
[15:49:08] <lynxlynxlynx> something like that, yes
[15:50:40] <fuzzie> the function used is CGameAIBase::FireSpell
[15:51:45] <fuzzie> which checks *some* targeting, but i guess probably just the effects
[15:53:39] --> Maighstir has joined #gemrb
[15:53:43] <fuzzie> but there must be something weird here because param1=0 means set obj=1 means cast at Myself
[15:54:00] <-- lubos has left IRC (Quit: Leaving.)
[15:54:51] <lynxlynxlynx> blade barrier doesn't affect anyone but the caster; the projectile has the ignore center flag set; (maybe the original caster is not properly propagated) <-- old notes
[15:55:09] <fuzzie> oh, right, projectile
[15:55:16] <fuzzie> ok, i will stay far away :P
[16:09:22] --> Beh0lder has joined #gemrb
[16:09:31] <Beh0lder> hello all
[16:09:58] <edheldil> Hi
[16:13:07] <-- SiENcE_ has left IRC (Quit: @all: cya)
[16:25:51] <Beh0lder> Can I test current GIT on android? Is it stable/complete?
[16:26:08] <fuzzie> it is better than 0.6.4
[16:26:20] <fuzzie> much faster for loading games, too
[16:26:45] <Beh0lder> OK. Drizzt bug is fixed?
[16:26:57] <fuzzie> it works fine for me
[16:27:09] <fuzzie> saving works fine for me too
[16:27:51] <Beh0lder> OK, I'll build new version and test it again
[16:28:17] <Beh0lder> What bugs from my list are fixed now?
[16:29:21] <fuzzie> i'm not sure if any are, maybe the bg2 ones
[16:31:32] <CIA-52> GemRB: 03fuzzie * r66773e27b9d2 10gemrb/gemrb/core/GameScript/Actions.cpp: fix 0 param case of PlayDead actions
[16:32:13] <dhewg> weeee
[16:32:16] * dhewg tests
[16:32:28] <fuzzie> i thought you already had that
[16:32:32] <dhewg> *cough*portalplz*cough*
[16:32:34] <fuzzie> still haven't fixed your portal :P
[16:32:39] <dhewg> yeah that :P
[16:33:00] <dhewg> well, i dont keep temp hacks in my tree
[16:33:12] <dhewg> i can not judge if a fix is good or not
[16:33:26] <dhewg> so i use it just to overcome the situation, then revert it
[16:33:30] <fuzzie> i have one fix of yours still around, some gui pause thing
[16:33:41] <dhewg> oh?
[16:33:52] <fuzzie> unless it got committed in the meantime
[16:34:09] <fuzzie> http://pastie.org/private/v7qjah5i6jbnhmilzzikg
[16:34:30] <dhewg> oh, keldorn
[16:34:45] <dhewg> yeah well, that prolly needs to be applied to alot of other places
[16:35:20] <fuzzie> i thought you gave me a save for the portal thing, but i don't see one
[16:36:09] <dhewg> its called "muh"
[16:37:00] <dhewg> does a deque prealloc like a vector or suckalloc like a list?
[16:37:00] <fuzzie> i do have a muh save, but it's not even in right area
[16:37:37] <dhewg> which area is it?
[16:37:46] <fuzzie> i think spellhold
[16:37:53] <dhewg> oh
[16:37:57] <dhewg> k, i confused it
[16:38:32] <dhewg> i dont think i gave you one for the portal?
[16:38:38] <dhewg> iirc you teleported there
[16:38:50] <dhewg> want one?
[16:39:05] <fuzzie> if you could
[16:39:20] <dhewg> always
[16:39:21] <fuzzie> i am slow and incapable of summoning items
[16:39:42] <dhewg> yeah, gemrb needs a telnet python shell interface
[16:39:47] <fuzzie> i don't know what the underlying implementation of deque is
[16:39:50] <dhewg> with readline support and history saving
[16:40:59] <fuzzie> i imagine the STL implementation would do it using multiple arrays in circular fashion
[16:41:26] <dhewg> http://static.hackmii.com/dhewg/portal.tgz
[16:41:28] <fuzzie> since it promises (amortized) constant access time
[16:41:37] <fuzzie> random access time, i should say
[16:43:44] --> Avenger has joined #gemrb
[16:43:44] --- ChanServ gives channel operator status to Avenger
[16:43:48] <Avenger> hi
[16:44:05] <Avenger> fuzzie: 0xe8 param3 is also responsible for a portrait icon
[16:44:21] <fuzzie> yes
[16:44:22] <Avenger> if it is nonzero, then 0x4b portrait icon is displayed
[16:44:25] <fuzzie> i implemented it :P
[16:44:30] <Avenger> ahh
[16:44:39] <Avenger> you checked all the stuff?
[16:44:41] <fuzzie> i didn't do the strings though, if you're bored!
[16:44:53] <Avenger> hmm, the resistance string?
[16:45:10] <fuzzie> there's quite a few different strings, for the contingencies
[16:45:21] <fuzzie> and there's the resistance to source spell, which i just put a TODO for
[16:45:32] <Avenger> yes, i thought about that
[16:45:37] <Avenger> it is a bit complicated
[16:45:41] <fuzzie> but if you want to fix something, lynxlynxlynx has a projectile bug :p
[16:45:56] <fuzzie> well, i think we copy the Source spell into the effect nowadays, so i hope it's not too hard..
[16:46:10] <dhewg> if you're looking for bugs: turn undead is broken
[16:46:37] <fuzzie> do you know how it's broken?
[16:47:02] <fuzzie> it looked ok, except for the fact it's using an IWDOpcodes-only effect...
[16:47:03] <dhewg> one part is that party members flee, the other that it crashes because of anims/stance
[16:47:11] <Avenger> i loaded into ida for today so, i would rather answer questions :) but i guess fuzzie looked for all of them already
[16:47:27] <fuzzie> well, i always have questions :-p
[16:47:27] <lynxlynxlynx> dhewg: same here, but it was the first time i tried it in bg2 - it was implemented in iwd
[16:47:49] <Avenger> fuzzie, do you know what exactly 639FD5 do?
[16:47:54] <lynxlynxlynx> there were a few changes since i last tried it though
[16:48:02] <Avenger> it looks up some entries from conttarg.2da
[16:48:12] <lynxlynxlynx> but i don't have iwd handy to check if it is a regression or if something is amiss in bg2
[16:48:14] <fuzzie> Avenger: it looks up the entries and returns them in the parameters, right?
[16:48:17] <Avenger> but ... would it just look for the existance of an entry?
[16:48:18] <lynxlynxlynx> technically it is all the same code though
[16:48:30] <fuzzie> Avenger: it is passed two pointers, if it's the function i think of
[16:48:32] <dhewg> lynxlynxlynx: dunno, i just tried it on bg2
[16:48:32] <Avenger> the entries are strrefs
[16:48:45] <fuzzie> it stores two strrefs in those two pointers
[16:48:53] <Avenger> but i wonder why...
[16:48:53] <fuzzie> but i don't have IDA to check, so .. i can only go from memory
[16:48:57] <Avenger> i see
[16:49:09] <fuzzie> but if this is the one called near the end of the e8 opcode, that is the one
[16:49:13] <Beh0lder> Current GIT does not compile for Android
[16:49:16] <Avenger> those strings are used in the setup of the spell
[16:49:30] <Avenger> yes, it is in the end
[16:49:30] <fuzzie> there's an identical one for contcond too
[16:49:35] <fuzzie> displayed on first apply, for Param3
[16:50:07] <fuzzie> hmm
[16:50:19] <fuzzie> one useful thing would be, working out which effects work for scriptables..
[16:50:25] <Avenger> hmm it stores the strref in one of the sequencer fields...
[16:50:31] <fuzzie> yes
[16:50:38] <fuzzie> then the sequencer apply function uses it
[16:50:45] <fuzzie> but i put *all* the code in the effect
[16:51:04] <Beh0lder> Control.cpp:133 error: invalid use of incomplete type 'struct Variables'
[16:51:22] <fuzzie> oh, you added android hacks..
[16:51:25] <fuzzie> why add android hacks there :(
[16:52:41] <fuzzie> anyway, i guess you need a Variables.h for android, then
[16:59:26] <Avenger> fuzzie, the resistance is also only effective for sourcerestype = 1
[16:59:35] <fuzzie> Avenger: yes
[16:59:44] <Avenger> complicated stuff :)
[16:59:46] <fuzzie> but do we store that?
[16:59:49] <Avenger> yes
[17:00:06] <fuzzie> "ieDword SourceType; //1-item, 2-spell" says Effect.h
[17:00:10] <fuzzie> but that is wrong, surely
[17:00:31] <fuzzie> but i really decoded the whole function there'
[17:00:34] <Avenger> yes, it seems 1 is spell
[17:00:38] <fuzzie> and also the ones which apply contingencies
[17:00:41] <fuzzie> and then i implemented in gemrb
[17:00:45] <fuzzie> so i ruin everything :P
[17:01:32] <fuzzie> hmm
[17:01:40] <Avenger> i need some confirmation on 1=spell though
[17:01:42] <fuzzie> i *don't* understand how all of that though
[17:02:02] <fuzzie> it sets some spell resist param to -1 if EA > PARTYEA, or 0x806c otherwise?
[17:02:10] <Avenger> no
[17:02:27] <Avenger> it sets a resistance if it is a contingency, against its resource
[17:02:30] <Avenger> always
[17:02:32] <Avenger> but...
[17:02:46] <Avenger> the strref for the resistance is either -1, 0r 0x806c
[17:02:51] <fuzzie> ah
[17:02:53] <Avenger> that is, the strref is displayed only for players
[17:02:55] <fuzzie> so, that is the param i mean :)
[17:03:20] <Avenger> this is the 'you cannot have the same contingencies twice' or like that
[17:03:35] <Avenger> You cannot cast multiple instances of the same contingency spell on yourself.
[17:03:37] <fuzzie> ok, that is really helpful to know
[17:03:56] --> mihairu has joined #gemrb
[17:03:58] <fuzzie> the rest of the stuff is pretty simple
[17:04:00] <Avenger> it is displayed only for pcs, that's why it checks partyea
[17:04:32] <fuzzie> field at +6 is the object for the trigger, field at +70 is target object, field at +90 is flags (1 is contingency)
[17:04:44] <Avenger> yes
[17:04:55] <fuzzie> 0x4xxx triggers are checked every 100 ticks, normal triggers are checked in SetTrigger
[17:04:56] <Avenger> but we don't maintain this struct
[17:04:58] <Avenger> do we
[17:05:18] <fuzzie> no, but i implemented it in the effect instead in gemrb, this morning :)
[17:05:29] <Avenger> good
[17:05:51] <Avenger> the resistance part needs to be implemented elsewhere
[17:06:02] <fuzzie> i am confused a bit by trigger types 8/9
[17:06:23] <Avenger> personalspace distance
[17:06:25] <fuzzie> which seem to do PersonalSpace([ANYONE], 4 or 10) because the obj isn't inited
[17:06:40] <Avenger> one is 4, the other is 10
[17:06:42] <fuzzie> maybe that is fine, lynx's notes say that the problems there are a projectile target bug
[17:06:49] <Avenger> oh
[17:07:15] <fuzzie> the projectile for the relevant spells has 'ignore center', but the projectile hits the caster instead?
[17:07:54] <Avenger> that's weird
[17:08:09] <Avenger> ignore center, should really be named ignore caster ;)
[17:08:20] <Avenger> and of course, it should work like that
[17:08:23] <fuzzie> ok. so you already know how it works, no useful RE? :)
[17:08:34] <Avenger> i know how it supposed to work
[17:08:51] <fuzzie> ok. i dare not look at projectile code
[17:09:05] <fuzzie> dhewg: portal fixed
[17:09:26] <CIA-52> GemRB: 03fuzzie * r72f4933c34d9 10gemrb/gemrb/plugins/FXOpcodes/FXOpcodes.cpp: fix fx_apply_effect for scriptables
[17:09:32] <dhewg> woo, thx!
[17:10:18] <CIA-52> GemRB: 03wjpalenstijn * r9b2be2beb6d3 10gemrb/gemrb/ (5 files in 2 dirs): Implement grey/sepia tones for BlitTile
[17:10:19] <Avenger> fuzzie, which projectile/spell?
[17:10:26] <Avenger> woo wjp!
[17:10:29] <Avenger> nice
[17:10:35] --> barra_home has joined #gemrb
[17:10:39] <Avenger> we'll have pretty timestop now
[17:10:39] <wjp> Avenger: old feature request :-)
[17:10:51] --> Bo_Thomsen has joined #gemrb
[17:10:57] <wjp> Avenger: can you take care of passing the right flags to BlitTile at the right times?
[17:11:11] <fuzzie> that is trivial to do
[17:11:13] <Avenger> maybe... if someone won't do it before i reboot
[17:11:14] <Avenger> :)
[17:11:27] <fuzzie> but i have lots on the todo list still
[17:11:29] <-- barra_home has left IRC (Read error: Connection reset by peer)
[17:11:33] --> barra_home has joined #gemrb
[17:12:11] <Avenger> fuzzie, which projectile/spell?
[17:12:25] <fuzzie> um
[17:12:32] <Avenger> the personalspace thingie
[17:12:34] <fuzzie> lynx is the expert
[17:12:36] <fuzzie> i assume it is 0xd8
[17:12:51] <Avenger> 0xd8 is the projectile?
[17:13:08] <fuzzie> which is TRAPGLPN?
[17:13:10] <Avenger> its name is small area ignore center
[17:13:21] <fuzzie> oh, off-by-one
[17:13:22] <Avenger> 217
[17:13:33] <Avenger> 0xd8 has ignore center
[17:13:34] <fuzzie> so, well, that sounds like the right one :-)
[17:13:42] <lynxlynxlynx> blade barrier
[17:13:42] <Avenger> but the trap has no party
[17:13:53] <Avenger> hmmm that is more like smallarea ignore center :)
[17:14:19] <Avenger> and which spell?
[17:14:25] <Avenger> ahh blade barrier
[17:14:27] <Avenger> ok
[17:14:30] <fuzzie> sppr725d.spl for example
[17:14:38] <fuzzie> i fixed the contingency, but then it hurts the caster.. :P
[17:14:45] <-- adominguez has left IRC (Quit: Saliendo)
[17:15:00] <Avenger> are you sure, we apply the spell with the right projectile?
[17:15:15] <Avenger> because if the spell is just applied on the target then it will affect the target
[17:15:26] <fuzzie> i have no idea
[17:16:09] <fuzzie> doesn't look like we do
[17:16:40] <fuzzie> someone should really rewrite the spell cast stuff
[17:16:51] <Avenger> applyspell applies the spell on the target
[17:16:56] <Avenger> doesn't create a projectile
[17:16:58] <Avenger> that's the problem
[17:17:01] <fuzzie> yes, ApplySpell should die
[17:17:07] <Avenger> no
[17:17:10] <fuzzie> is it good for anything except Projectile?
[17:17:11] <Avenger> it is used sometimes
[17:17:17] <Avenger> iwd effects
[17:17:25] <fuzzie> oh, our modal spell hacks, too
[17:17:27] <fuzzie> sigh :P
[17:17:32] <Avenger> some iwd effects apply whole spells, not just simple effects
[17:17:45] <fuzzie> anyway, ok, complex problem..
[17:18:08] <Avenger> not so complex, we just need another layer there, who woulda think 0xe8 creates a projectile
[17:18:20] <lynxlynxlynx> we use it for levelup too
[17:18:29] <fuzzie> well, our current way of casting spells 'properly' is very silly
[17:18:52] <lynxlynxlynx> i hate geteffectsblock and its name
[17:18:55] <Avenger> so, you want to refactor it?
[17:19:03] <fuzzie> i want to just rewrite like the original
[17:19:11] <Avenger> because then i happily let it all to you ;D
[17:19:16] <fuzzie> but my next TODO item is to refactor the infopoint hacks
[17:19:38] <lynxlynxlynx> my next one is to make use of wjp's gray tinter
[17:20:07] <wjp> my next one is going running; see you later :-)
[17:20:35] <fuzzie> although i guess fixing action running would be cleverer
[17:20:41] <Avenger> calling Scriptable::CreateProjectile(const ieResRef SpellResRef, ieDword tgt, int level, bool fake) would probably be fine in 0xe8
[17:20:54] <Avenger> i just don't think it should trigger autopause
[17:21:09] <fuzzie> it also shouldn't check wild surge
[17:21:12] <Avenger> oh
[17:21:31] <fuzzie> and it shouldn't set the triggers and it shouldn't mess with invis
[17:21:45] <fuzzie> and it should basically do none of the stuff in there :P
[17:21:47] <Avenger> ouch ouch
[17:21:47] <lynxlynxlynx> e8 was very abusable in the original btw
[17:22:06] <fuzzie> see, this is why a refactor would be nice, but there's too much to do
[17:22:27] <lynxlynxlynx> you could cast chain contingency and that didn't even took part of the round to do - you could use it while paused!
[17:22:44] <lynxlynxlynx> used with the see-enemy trigger, it was an insta triple cast
[17:23:09] <Avenger> well, that's the goal of chain contingency :D
[17:23:11] <fuzzie> hehe
[17:23:15] <fuzzie> that doesn't work in gemrb, sadly
[17:23:45] <lynxlynxlynx> one of the ultimate cheeses, cast it during combat and put three wiltings in there
[17:23:48] <lynxlynxlynx> boom
[17:23:55] <fuzzie> but i have notes for all of the spell casting stuff now
[17:24:42] <fuzzie> except, not for pst
[17:25:16] <fuzzie> and i guess iwd2 will be weird too..
[17:26:10] <fuzzie> if you want contingencies to work instantly, i guess you have to abuse one of the effect fields for a timer, ToBEx does that already with Param4
[17:26:48] <Avenger> we could do some of the tobex stuff
[17:26:59] <fuzzie> yep
[17:27:22] <fuzzie> but, enough work just keeping up with bg2 :)
[17:27:32] <fuzzie> dhewg: works?
[17:27:49] <dhewg> yeah
[17:28:17] <dhewg> well there's that weird issue on this playdead scene, but i think the conclusion was that the script is broken there
[17:28:22] <fuzzie> Avenger: i don't suppose you have any idea about the VVC positioning bugs?
[17:28:33] <fuzzie> dhewg: well, i mean, the portals :)
[17:28:40] <Avenger> no, except that i'm sure they exist
[17:29:00] <dhewg> fuzzie: yeah, looks good :)
[17:29:20] <Avenger> there are a number of vvc flags that affect y pos
[17:29:21] <fuzzie> hmm, what else
[17:29:36] <fuzzie> CreateCreatureObjectDoor is buggy in gemrb
[17:29:38] <Avenger> heightmap, cg height of actor, etc
[17:29:50] <fuzzie> maybe you know how it's meant to work?
[17:30:03] <Avenger> it should really just play the dimdoor animation
[17:30:07] <fuzzie> yes
[17:30:15] <fuzzie> but the creature is created instantly
[17:30:19] <Avenger> oh
[17:30:19] <fuzzie> which is wrong
[17:30:26] <Avenger> meh,i just exited ida
[17:30:31] <dhewg> although there's an unrelated pit fiend animation issue :P
[17:30:31] <fuzzie> any idea if it's meant to have SummonDisable, or if it's meant to wait?
[17:30:34] <fuzzie> but, not important :P
[17:30:38] <Avenger> i guess it is using summondisable
[17:30:53] <fuzzie> it just makes for some really weird cutscenes
[17:30:54] <Avenger> but summondisable exists only in bg2
[17:32:25] <fuzzie> it is probably bg2-only anyway
[17:32:59] <fuzzie> i think most of the annoying questions i have are about PS:T, though
[17:33:06] <fuzzie> and best not to ask, maybe
[17:33:13] <fuzzie> it's still cool that the maze works :)
[17:33:48] <dhewg> fuzzie: although, while it talks to me, i cant see the djinn
[17:34:02] <fuzzie> hehe
[17:34:09] <fuzzie> not critical bug :) but weird
[17:34:25] <dhewg> is it supposed to hand over the amor like that?
[17:34:31] <dhewg> no fireballs?
[17:34:34] <fuzzie> nope
[17:34:37] <dhewg> awww
[17:34:38] <fuzzie> it is a nice djinn
[17:34:41] <fuzzie> it loves you very much
[17:34:46] <dhewg> consider me unimpressed
[17:34:59] <fuzzie> what's next bug? :P
[17:35:08] <dhewg> turn undead? :P
[17:35:28] <dhewg> oh lol
[17:35:33] <fuzzie> i will leave that to someone who knows what it's meant to be doing
[17:35:46] <lynxlynxlynx> getting charmed or dominated should cancel the current action, otherwise the charmed one may keep attacking the now friendly target. The actor needs to be assigned one of the general scripts, so it won't be useless to the ai. <-- maybe thoughts on this
[17:36:10] <fuzzie> um
[17:36:22] <fuzzie> there's a bunch of hardcoded CHARMED checks all over the scripting code
[17:36:23] <dhewg> try turn undead after killing the pit fiend at the portal
[17:36:35] <dhewg> it gets up and dances for you
[17:36:39] <lynxlynxlynx> dhewg: btw, i put the bugs found here: http://gemrb.sourceforge.net/wiki/doku.php?id=soa_playthrough_bugs#mod_run
[17:36:45] <fuzzie> but i have no idea about assigning scripts :)
[17:37:15] <lynxlynxlynx> too bad, i thought it could be done simply (assign agen)
[17:37:40] <fuzzie> definitely not agen
[17:38:00] <lynxlynxlynx> too /aggressive/?
[17:38:11] <fuzzie> wtasight maybe? probably easier for Avenger to take a look
[17:38:52] <fuzzie> oh, i forgot pst segfaulted quickly
[17:39:23] <Avenger> wtasight is hardcoded in some places, but i don't know much about this
[17:39:55] <Avenger> this may be something we need to be externalise
[17:40:01] <Avenger> -d
[17:40:04] <fuzzie> stupid ChangeAIScript function
[17:40:21] <fuzzie> must really fix scripting
[17:40:43] <Beh0lder> can you add '#include "Variables.h"' to Control.cpp?
[17:41:01] <fuzzie> i will do it in an android define
[17:41:12] <fuzzie> but is there no way you can avoid using letters for the volume control?
[17:43:03] <Beh0lder> no other way for current SDL port. I can change these letters for any other if you need to use it for hotkeys
[17:43:57] <fuzzie> i'm not sure what's unused
[17:44:00] <fuzzie> doesn't matter now, anyway
[17:44:02] <Avenger> fuzzie, actually, createcreature is blocking, and uses actiontime
[17:44:28] <fuzzie> Avenger: ok. easy to do :)
[17:44:30] <fuzzie> thanks!
[17:44:32] <Avenger> there seems to be the delay of 20
[17:44:40] <fuzzie> even better :)
[17:44:53] <Avenger> except for createcreatureoffscreen
[17:44:58] <Avenger> which seems to be instant
[17:45:06] <Avenger> that makes sense, right?
[17:45:11] <fuzzie> yes, perfect sense
[17:45:32] <Avenger> well, maybe i see this wrong,
[17:45:32] <fuzzie> we have some problems with wing buffer too, but IESDP seems to have it right
[17:46:47] <Beh0lder> you missing ';' in line 166 in Logging.h
[17:47:03] <Avenger> this is only to display this debug text: CreateCreatureObject : CAIACTION_CREATECREATUREOFFSCREEN && (m_actionCount % 20)
[17:47:10] <Avenger> meh
[17:48:58] <fuzzie> Beh0lder: anything else?
[17:49:21] <fuzzie> Avenger: so, no idea? :)
[17:49:33] <Avenger> i see more actiontime usage for 0xe8
[17:49:36] <tomprince> Can we move the sound stuff out of control.cpp?
[17:49:43] <Avenger> that is: CreateCreatureObjectDoor(S:ResRef*,O:Object*,I:Usage1*,I:Usage2*,I:Usage3*)
[17:50:04] <fuzzie> tomprince: it seems tricky to do, while android libSDL is so broken
[17:50:08] <Avenger> it does something only when actiontime==0
[17:50:08] <lynxlynxlynx> got the tiles tinted, only actors left
[17:50:13] <Avenger> so it is definitely blockig
[17:50:31] <fuzzie> and clearly we already broke the Android build here..
[17:50:53] <fuzzie> i just wait to hear about the other errors before committing fixes
[17:51:12] <Avenger> it creates the dimdoor at actiontime=0, of course
[17:51:48] <tomprince> I was just thinking of having an adjust volume function, that is called, rather than having that code inlined.
[17:52:08] <Avenger> ahh here we are
[17:52:20] <fuzzie> well, maybe set up an Android buildbot?
[17:52:30] <fuzzie> but the android libSDL is a huge mess
[17:52:42] <Avenger> adds 0x10f opcode onto the creature :)
[17:52:49] <fuzzie> Avenger: great
[17:53:18] <Avenger> timing is absolute: gametime + 45
[17:53:24] <Avenger> this is what you need
[17:53:25] <fuzzie> but then why block? :/
[17:53:33] <Beh0lder> >well, maybe set up an Android buildbot? - unlikely
[17:53:44] <Avenger> no idea, lets ignore the blocking
[17:54:26] <fuzzie> but anyway, if someone moves that code, please mark it as a super hack
[17:55:13] <tomprince> Beh0lder: If you can build me a vm for building android, and give me instructions on how to do the build, then I can set it up.
[17:55:23] <fuzzie> why a vm?
[17:56:30] <tomprince> My thought was that that would be easier to get all the paths and everything right for the build environment.
[17:56:44] <fuzzie> i think there's not much chance of someone else volunteering, anyway
[17:57:08] <fuzzie> but maybe i misinterpret how it all works
[17:57:38] <fuzzie> the android SDK/NDK are trivial, you just unpack them somewhere, but libSDL seems to need a lot of manual intervention
[17:57:56] <fuzzie> also pst 'reform party' dialog is completely broken :(
[17:58:05] <tomprince> Well, if somebody is willing to host a bot, don't need a VM.
[17:58:21] <tomprince> But I am not interested in figuring out the libSDL mess.
[17:58:28] <fuzzie> but in the absence of a buildbot, i would leave the android code alone
[17:58:57] <fuzzie> we still didn't look at that defined(__HAIKU__) stuff either
[17:59:42] --> |Cable| has joined #gemrb
[18:00:27] <fuzzie> i guess really all that sound stuff is trivial to do in guiscript land
[18:00:51] <fuzzie> so proper fix would be to make a move on the keybindings and move it there
[18:01:28] <fuzzie> or, maybe trying to get libSDL maintainer to use keysyms..
[18:02:25] <CIA-52> GemRB: 03fuzzie * r3c52b9691988 10gemrb/gemrb/core/ (GUI/Control.cpp System/Logging.cpp): Android build fixes via Beh0lder
[18:03:30] <dhewg> tomprince: because of its mess i stayed away from it too. but i bet you can grab a precompiled version for it?
[18:04:29] <fuzzie> somehow i doubt it
[18:04:44] <fuzzie> it is crazy mess with configs and etc
[18:04:53] <fuzzie> maybe it's easy to build enough of the C++ to see if it works though
[18:05:24] <dhewg> oh right, it uses crappy scripts to build all that crap
[18:05:38] <dhewg> yeah well, epic mess
[18:06:29] <Avenger> hmm tom, your buildbot has artificial intelligence?
[18:06:44] <fuzzie> i just don't want absurd hacks being built into the tree as if they're not hacks, please :P
[18:06:48] <Avenger> i'm looking at, http://buildbot.gemrb.org/console
[18:06:55] <fuzzie> going to go do other stuff for a bit, bbiab
[18:06:58] <Avenger> when i uploaded a python.supp, it tried to activate valgrind
[18:07:16] <Avenger> that's the closest thing to skynet i ever seen :)
[18:07:23] <dhewg> heh
[18:07:36] <fuzzie> it has not so much AI as a tomprince behind the scenes ;p
[18:07:43] <Avenger> oh, i see
[18:07:49] <dhewg> t2 proclaimed judgement day didnt happen too
[18:08:20] <Avenger> well, i'm less scared then :)
[18:09:39] <Avenger> the valgrind log says it cannot open the suppression file though
[18:10:12] <tomprince> I think I fixed that.
[18:10:18] <tomprince> It should work in later builds.
[18:10:33] <Avenger> i see, so when there is no 'valgrind' link, it means it was fine, not that you deactivated valgrinding
[18:10:50] <tomprince> No, that means it was before I was running valgrind.
[18:11:29] <Avenger> so it needs to be executed manually then?
[18:11:41] <tomprince> I just added valgrind support when you were adding the suppression file.
[18:11:51] <tomprince> Yes.
[18:12:08] <Avenger> i just ask because i don't see any 'normal' valgrind log
[18:12:27] <tomprince> 'normal'?
[18:12:50] <Avenger> something which doesn't have 'cannot open suppression file'
[18:14:06] <tomprince> http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.4.5/builds/92/steps/minimal%20test/logs/valgrind
[18:14:09] <Avenger> this thing is really cool
[18:16:58] <-- Avenger has left IRC (Quit: ChatZilla [Firefox 3.6.17/20110420140830])
[18:27:17] --> Avenger has joined #gemrb
[18:27:58] <Avenger> hmm, i wonder if enablecap was always a dead variable in Font::Print
[18:30:26] <CIA-52> GemRB: 03avenger_teambg * r3ce982b0b77c 10gemrb/gemrb/core/ (GameScript/GameScript.cpp Map.cpp): removed some dead variables
[18:30:46] <lynxlynxlynx> it wasn't
[18:36:44] <-- Beh0lder has left IRC (Quit: Beh0lder)
[18:38:30] <CIA-52> GemRB: 03avenger_teambg * r8925d2c543d7 10gemrb/gemrb/plugins/MVEPlayer/mve_player.cpp: removed dead variables from mveplayer
[18:40:09] <Avenger> hmm
[18:40:21] --- barra_home is now known as barraAway
[18:40:42] <Avenger> in void Door::UpdateDoor(), oval is not used, but i'm pretty sure it should be used in place of one of the cval parameters
[18:42:39] <-- mihairu has left IRC (Remote host closed the connection)
[18:42:48] <Avenger> or maybe it is really dead
[18:47:25] <CIA-52> GemRB: 03avenger_teambg * r6dafb519f2bb 10gemrb/gemrb/core/Scriptable/Door.cpp: removed dead variable from Door
[18:48:09] <lynxlynxlynx> too bad you're so fast
[18:48:17] <lynxlynxlynx> this is already fixed in one branch
[18:48:41] <lynxlynxlynx> the missing resource union is the only thing that prevented it from being applied
[18:55:02] <fuzzie> yes, don't touch Font.cpp
[18:55:29] <fuzzie> the capitals got broken enough already without people breaking them more :P
[18:55:56] <fuzzie> although i guess Avenger probably wrote the code occasionally, so might have a better chance of fixing it
[18:56:34] <lynxlynxlynx> i only added the three-line indent at some point
[18:58:33] <fuzzie> i think the broken case is intended for snaffling glyphs
[18:58:40] <fuzzie> as opposed to single capitals
[19:03:59] <fuzzie> and can we not apply fixes without the union thing?
[19:04:23] <lynxlynxlynx> sure, but i'm not sure anything is left except that and font
[19:05:05] <Avenger> i didn't touch the font
[19:05:12] <Avenger> that was suspicious ;)
[19:05:29] <lynxlynxlynx> any problems with pulling Game.h into TileOverlay? I need it for timestop, but could make a wrapper in core too
[19:05:32] <fuzzie> i don't suppose you know what it's meant to do?
[19:05:40] <fuzzie> lynxlynxlynx: why do you need it?
[19:05:49] <fuzzie> oh, you mean TileOverlay.cpp :P
[19:05:56] <lynxlynxlynx> yes :P
[19:06:00] <fuzzie> seems fine
[19:06:14] <lynxlynxlynx> ok
[19:06:42] <Avenger> i suppose it cannot be a parameter
[19:07:11] <Avenger> i mean, like call tileoverlay::Draw with bool timestop
[19:07:24] <fuzzie> well
[19:08:06] <fuzzie> at the moment, we do the tints by calling back into core, right?
[19:08:09] <fuzzie> i mean, from SDLVideo
[19:08:32] <Avenger> it would be cleaner, rain is also a parameter from game
[19:08:34] <fuzzie> that's not very nice either, because we can't exclude VVCs
[19:09:24] <fuzzie> but yes i agree that passing a parameter is much nicer
[19:09:38] <fuzzie> bbiab again
[19:16:09] <lynxlynxlynx> mnja, i'll take a look
[19:21:47] <lynxlynxlynx> it's only called from TileMap.cpp which also doesn't have Game.h, so there's not much to gain
[19:23:25] <CIA-52> GemRB: 03lynxlupodian * r22b6c00928a9 10gemrb/gemrb/core/TileOverlay.cpp: grayscale tiles when in timestop
[19:23:27] <CIA-52> GemRB: 03lynxlupodian * rc5abcaada34f 10gemrb/gemrb/core/Scriptable/Actor.cpp:
[19:23:27] <CIA-52> GemRB: DrawActorSprite: moved the flag setting out of the loop (local constant) and
[19:23:27] <CIA-52> GemRB: added grey blitting when in timestop
[19:23:27] <CIA-52> GemRB: 03lynxlupodian * r20c62664afc7 10gemrb/gemrb/core/Inventory.cpp: added a comment with the resolved value of ITM_STEALING
[19:23:28] <CIA-52> GemRB: 03lynxlupodian * rf6037a3a7d54 10gemrb/gemrb/core/ (Game.cpp Game.h Map.cpp Scriptable/Actor.cpp TileOverlay.cpp): added Game::IsTimestopActive()
[19:23:31] <CIA-52> GemRB: 03lynxlupodian * rc35c0a5e6cef 10gemrb/gemrb/core/Game.cpp: removed useless TimeStopTint; grayscaling can't be achieved via tinting
[19:26:11] <wjp> whee
[19:26:51] <lynxlynxlynx> :)
[19:27:32] <lynxlynxlynx> the vvc part is confusing from the videos, so i just left it for the time being
[19:40:26] <Avenger> lynx, i will move the tile grey thing out to Map.cpp
[19:40:45] <lynxlynxlynx> sure
[19:41:02] <Avenger> Map also has a flag for dream scenes, so another flag will be added, which is based on a map field
[19:41:11] <lynxlynxlynx> you can also do the sepia one for dreams
[19:41:13] <lynxlynxlynx> heh
[19:41:14] <Avenger> yep
[19:43:57] <wjp> my sprite renderer rewrite will also support sepia sprites, by the way
[19:46:04] <tomprince> I'd like to change functions returning -1/0 for failure/success to false/true. I noticed that we are quite inconsitent about this, when I started adding checkes prompted by WARN_UNUSED.
[19:47:03] <lynxlynxlynx> i use bools where possible
[19:47:25] <tomprince> That is what I would like to move to (and what I always use for new code).
[19:47:43] <tomprince> But there are a number of places using -1/0 instead.
[19:47:45] <Avenger> really?
[19:48:13] <tomprince> Yes, with -1 being failure.
[19:48:14] <Avenger> i prefer ints :) because they won't create extra conversions
[19:48:36] --> Cable_ has joined #gemrb
[19:48:38] <Avenger> i meant about the bools vs int
[19:48:56] <-- |Cable| has left IRC (Read error: Connection reset by peer)
[19:49:30] <tomprince> There shouldn't be extra conversions if bools are used consistently.
[19:49:36] <lynxlynxlynx> i prefer a bit better readability
[19:49:44] <tomprince> That too.
[19:50:03] <lynxlynxlynx> and the conversion overhead is miniscule at best
[19:50:28] <Avenger> anyone knows a dream area by chance?
[19:51:08] <lynxlynxlynx> i think they're amongs the first on the list
[19:51:20] <lynxlynxlynx> so ar00xx maybe
[19:53:27] <Avenger> bg2 has no such area?
[19:54:52] --> mihairu has joined #gemrb
[19:55:56] <lynxlynxlynx> sure it does, all those candlekeep ones
[19:57:04] <Avenger> well, it looks like these areas don't use the areaflag = 8 feature
[19:57:12] <Avenger> i think they are simply rendered sepia tinted
[19:57:23] <Avenger> no official area uses that feature
[19:57:29] <Avenger> but i know, it exists
[19:58:04] <Avenger> so, we just implemented an unused feature, it seems. At least, regarding sepia tinted tiles.
[19:58:23] <Avenger> sprites are different, i guess
[19:59:11] <fuzzie> oh, more conflicts :P
[20:02:41] <fuzzie> tomprince: are there that many functions which return int where only a bool is ever needed?
[20:03:06] <fuzzie> i know we have some, like that CheckSpecialSpell thing which should get renamed..
[20:03:33] <tomprince> I am going through them now, but I think there are probably quite a few. 222 'return -1;' but some of them have more than two values.
[20:03:48] <CIA-52> GemRB: 03avenger_teambg * rf198b81acbbd 10gemrb/gemrb/core/ (Map.cpp TileMap.cpp TileMap.h TileOverlay.cpp TileOverlay.h): added dream flag (which appears to be pretty much unused in the original game)
[20:04:08] <fuzzie> well, some of them are buggy because they should return multiple values and we don't bother, too
[20:04:29] <fuzzie> so was curious about examples
[20:04:36] <tomprince> InitDialog is one.
[20:04:52] <fuzzie> ah
[20:04:56] <fuzzie> InitDialog is totally totally broken
[20:05:24] <tomprince> check_type in EffectQueue.cpp
[20:05:49] <fuzzie> i think it should abort() in the only actual failure case there but i'm not sure
[20:05:54] <tomprince> Control::RunEventHandler.
[20:06:12] <fuzzie> and check_type returns -1/0/1 .. unnecessarily?
[20:06:45] <tomprince> No, I just missed the single 1 at the end.
[20:07:05] <fuzzie> RunEventHandler seems a very good example of a silly one :)
[20:09:06] <fuzzie> (for clarity, InitDialog is fine example too, no problem with it being bool-ed, it just needs a rewrite anyway)
[20:10:13] <tomprince> Although I am not sure way to put RunEventHandler. It returns whether the object got destroyed in the handler, which means the calling function should abort.
[20:11:11] <fuzzie> well
[20:11:18] <fuzzie> if you're going to propose a big patch, leave it as it is
[20:11:36] <fuzzie> if you want to prod at that in particular, it's a bit of an annoying problem
[20:12:29] <lynxlynxlynx> it's not really fatal
[20:12:45] <fuzzie> 'abort' in the sense of 'stop doing stuff'
[20:13:19] <tomprince> cause the this of the calling functions has been deleted.
[20:14:37] <fuzzie> which we shouldn't be doing at all, of course..
[20:15:37] <fuzzie> what on earth would be doing that
[20:16:58] <tomprince> I don't know, it logs '... destructed!' if it happens.
[20:17:09] <fuzzie> oh ugh, you can delete individual controls
[20:17:53] <fuzzie> but it doesn't look like it could possibly happen anywhere relevant, do we have a bug?
[20:21:29] <tomprince> I don't know, it calls into python there.
[20:21:45] <fuzzie> yeah, and it looks like python can actually delete controls, which is bad
[20:22:01] <fuzzie> but no relevant controls (had an opportunity to run event handlers) are ever deleted, as far as i can see
[20:22:14] <fuzzie> oh right
[20:22:14] <tomprince> Why is it bad?
[20:22:15] <fuzzie> i see
[20:22:48] <fuzzie> tomprince: because control deletion happens immediately, which is a bit crazy unpredictable
[20:22:51] <fuzzie> anyway i worked out why it happens
[20:24:34] <fuzzie> it's because the delayed window deletion is done in DrawWindows, and ShowModal helpfully calls that and deletes windows from under it
[20:24:55] <fuzzie> so my alternative proposal is to fix that and make the ".. destructed!" thing an abort()
[20:33:14] <fuzzie> i am not hearing the expected paniced objections here
[20:35:13] <lynxlynxlynx> there was a "fix it first" in there
[20:41:33] <fuzzie> hasn't abort()ed on me yet
[20:42:05] <fuzzie> although the code in question is icky
[20:47:38] <CIA-52> GemRB: 03fuzzie * r6b539a47671c 10gemrb/gemrb/core/ (Interface.cpp Interface.h):
[20:47:38] <CIA-52> GemRB: Don't delete windows while guiscript is running.
[20:47:38] <CIA-52> GemRB: The window deletion code is in DrawWindows(). This adds a parameter as a
[20:47:38] <CIA-52> GemRB: quick hack to stop it from deleting windows from outside the main loop.
[20:47:43] <-- mihairu has left IRC (Remote host closed the connection)
[20:48:17] --> mihairu has joined #gemrb
[20:52:37] <fuzzie> i will run with abort() in my local tree for a bit and see
[20:53:10] <tomprince> error() i hope? :)
[20:53:18] <fuzzie> not at all
[20:53:36] <fuzzie> i tried error("bleh"); and it doesn't work
[20:53:42] <fuzzie> so laziness won out
[20:53:54] <tomprince> error("GUI", "Bad destruction.")
[20:53:56] <tomprince> :)
[20:54:13] <fuzzie> well, it should probably be fancier than that if i actually commit something
[20:54:24] <fuzzie> but then i could make it void and everything :)
[20:59:49] <fuzzie> maybe if you make a list of bool exampels we can stomp on some more of them
[21:01:26] <tomprince> Control::SetText, but I have fixed that.
[21:02:25] <-- Avenger has left IRC (Quit: bye!)
[21:02:38] <tomprince> github -> bool
[21:03:35] <fuzzie> well, i meant 'stomp on' as in 'don't make them bool, make them void' :p
[21:04:21] <tomprince> We could almost stomp on that one, since the only thing the return is used for is to report an error to python.
[21:04:22] <fuzzie> and SetText seems a good example here of where to do that
[21:04:41] <fuzzie> the return is *never* reported back to python, right?
[21:04:52] <tomprince> It is as an error.
[21:04:58] <fuzzie> in what situation?
[21:05:08] <fuzzie> e.g. for which control type
[21:05:24] <fuzzie> oh i see
[21:05:27] <tomprince> TextArea.
[21:05:35] <fuzzie> when does that happen?
[21:05:48] <tomprince> When the position given is larger than the number of lines.
[21:05:58] <fuzzie> but the guiscript callers never give a position
[21:06:27] <fuzzie> so can be junked, right?
[21:06:37] <tomprince> Yes.
[21:06:42] <fuzzie> yay
[21:06:46] <tomprince> Should we log an error there, or just ignore it?
[21:07:27] <fuzzie> well
[21:08:00] <fuzzie> maybe it shouldn't take a pos param at all?
[21:08:32] <fuzzie> it seems only used so we can pass -1 for copying text areas
[21:08:53] <fuzzie> and CopyTo should really not exist
[21:09:00] <fuzzie> that data should be stored in the DisplayMessage class instead
[21:10:47] <fuzzie> in any case, it seems that the pos param can be removed from the shared virtual implementation
[21:11:09] <fuzzie> the textarea one can always call an overloaded version with 'pos' present, to make the commit simple for now?
[21:15:01] <tomprince> pushed the voiding bit to github.
[21:15:05] <fuzzie> <3
[21:17:30] <fuzzie> the InitDialog commit, on the other hand, is silly
[21:17:51] <tomprince> ?
[21:18:03] <fuzzie> - if (ret<0) {
[21:18:03] <fuzzie> + if (ret) {
[21:18:08] <fuzzie> ^- should be (!ret)
[21:18:54] <-- mihairu has left IRC (Remote host closed the connection)
[21:19:46] <tomprince> That is why
[21:19:54] <tomprince> I pushed to github. :)
[21:20:23] <fuzzie> sure, you're all organised and stuff :)
[21:24:03] <fuzzie> i poked through the games for a bit with the RunEventHandler thing set to abort, seems ok
[21:26:10] <tomprince> The only differnce I see between the regular SetText and SetText( , -1), is that the former clears the box on an empty string.
[21:26:26] <fuzzie> look later on down the function
[21:27:19] <fuzzie> as far as i can see, -1 is 'append raw line', which makes sense given the only caller is CopyTo
[21:27:39] <tomprince> I did. The only values it gets called with are 0 and -1 though.
[21:27:49] <fuzzie> sure
[21:27:58] <tomprince> And so the difference is that with -1, it will append empty lines as well.
[21:28:26] <fuzzie> with -1, it will append lines at all
[21:28:48] <fuzzie> without -1 it won't append lines, right?
[21:29:00] <tomprince> Yes. I was confusing myself.
[21:29:17] <fuzzie> but i think refactoring that is a bit silly since CopyTo shouldn't exist..
[21:29:22] <gembot> build #99 of cmake g++-4.4.5 is complete: Failure [failed compile] Build details are at http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.4.5/builds/99 blamelist: Alyssa Milburn <fuzzie@fuzzie.org>, Avenger <avenger_teambg@sourceforge.net>, Willem Jan Palenstijn <wjpalenstijn@users.sourceforge.net>, Jaka Kranjc <lynxlupodian@users.sourceforge.net>, Tom Prince <tom.prince@ualberta.net>
[21:29:51] <fuzzie> hence why i was suggesting that you just have SetText(const char* text), then have the TextArea implementation call the (const char* text, int pos) variant for now, and fix it properly later?
[21:30:39] <fuzzie> not that i object to you hacking it up further, just if you do, that is going to need testing before committing, i guess :-)
[21:31:14] <tomprince> Do you know a place that calls CopyTo?
[21:31:21] <fuzzie> the guiscript
[21:31:38] <fuzzie> it is used for only one purpose, which is to copy the contents of the message area around
[21:32:00] <fuzzie> which is horrible, because you don't necessarily *have* a message area
[21:32:11] <gembot> build #98 of autotools clang++ is complete: Failure [failed compile] Build details are at http://buildbot.gemrb.org/builders/autotools%20clang%2B%2B/builds/98 blamelist: Alyssa Milburn <fuzzie@fuzzie.org>, Avenger <avenger_teambg@sourceforge.net>, Willem Jan Palenstijn <wjpalenstijn@users.sourceforge.net>, Jaka Kranjc <lynxlupodian@users.sourceforge.net>, Tom Prince <tom.prince@ualberta.net>
[21:32:15] <fuzzie> so that is in the 'should die soon' column anyway
[21:32:27] <fuzzie> hence why i suggest a minimal-fiddling refactoring at this point
[21:32:46] <fuzzie> although maybe that is a silly thing to say
[21:33:09] <fuzzie> we're going to need *some* way of mass-dumping text into a TextArea, even if we refactor the store elsewhere
[21:33:13] <fuzzie> so maybe you have smart ideas here
[21:34:48] <fuzzie> but it is too late for me to think about it seriously, i think.
[21:35:04] <fuzzie> at a glance i am hoping AppendText is enough.
[21:35:35] <fuzzie> but again, that would need actual testing rather than being a mindless refactor :)
[21:35:55] <tomprince> I think I will just factor out the pos == -1 case into CopyTo, for now.
[21:36:11] <fuzzie> right
[21:36:17] <fuzzie> but in a seperate commit, i hope :)
[21:38:14] <fuzzie> this whole thing seems horrible anyway
[21:38:34] <fuzzie> lines.clear() on an array with malloc()ed pointers in it?!
[21:38:46] <fuzzie> that if block should really be calling Clear(); instead
[21:39:23] <fuzzie> but now I can't start rewriting things because it will collide with your changes, so I guess you get the fun here :-p
[21:49:02] <tomprince> gembot:mute
[21:49:02] <gembot> Shutting up for now.
[21:50:14] <tomprince> pushed but not tested.
[21:50:29] <tomprince> (to github)
[21:50:41] <fuzzie> it looks good at a glance
[21:53:11] <fuzzie> can't test it now though
[22:08:44] --> mihairu has joined #gemrb
[22:09:56] <tomprince> Talking to characters that are out of sight is broken.
[22:10:05] <fuzzie> yes
[22:10:26] <fuzzie> although what example are you looking at?
[22:13:06] <tomprince> I have a save 'done Trademeet quests' that I grabbed from somewhere. One of my PCs can see some actor. If I try to have another PC (that can't see that actor) talk to them, I get CanSee returns false, with a debug dump.
[22:13:17] <fuzzie> *nod*
[22:13:21] <fuzzie> it is a known issue
[22:13:30] <fuzzie> the BeginDialog function was put together by guesswork, again..
[22:15:09] <fuzzie> ugh, the original works by copying between TextAreas, too :-p
[22:15:16] <fuzzie> but i have no time to look at it seriously now
[22:15:16] <tomprince> Don't know why clang is segfaulting :(
[22:15:23] <tomprince> gembot:unmute
[22:15:24] <gembot> I'm baaaaaaaaaaack!
[22:15:34] <fuzzie> the original is definitely using the equivalent of MoveNearerTo, if you want to hack it temporarily..
[22:16:13] <tomprince> I don't care, I haven't been playing for quite a while now. :)
[22:16:33] <fuzzie> well I don't play for huge amounts of time at once, but it is fun sometimes :)
[22:17:00] <tomprince> At some point I will again.
[22:17:04] <fuzzie> someday i will have to try all the crazy mods, if we can fix up all the crazy unintentional bugs in the original they abuse
[22:17:50] <tomprince> Hopefully the new tile renderer will allow me to finish the tiz support. Then maybe I'll have a go at classic adventures again.
[22:18:33] <fuzzie> the new one as in, the one that's been around for a while?
[22:18:42] <fuzzie> just honestly asking, bit tired
[22:19:43] <tomprince> No, the templated one.
[22:20:32] <fuzzie> well, i'm just wondering if you missed the templated one being committed
[22:20:33] <tomprince> Or did I miss it growing support for 24bit tiles.
[22:20:47] <fuzzie> but there's no way any of us can test 24bit tile support :P
[22:22:16] <fuzzie> and i really imagine it's easier for you just to add it to the template, than to try going back/forth with wjp or me trying to fix it up enoug..
[22:24:23] <fuzzie> alternatively you can hand me whatever you have and i'll try patching it up
[22:30:42] <fuzzie> but i have remembered why i hated 24bit tiles, and it's because all the TIZ files i found had 8bpp source data anyway
[22:35:40] <fuzzie> but if you want to put it up somewhere i'm sure we can make both 8bpp and 24bpp work, and have it as an option
[22:35:44] <fuzzie> for now, going to sleep
[22:39:09] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[23:04:12] <tomprince> I just pushed tiz-merge, which is a (if I am lucky, correctly) merged version of my tiz branch.
[23:04:52] <tomprince> But I don't have an install with tiz files handy anymore.
[23:06:44] <-- Bo_Thomsen has left IRC (Quit: Leaving.)
[23:14:46] <CIA-52> GemRB: 03tom.prince * ra15905dcc39f 10gemrb/gemrb/ (3 files in 2 dirs):
[23:14:46] <CIA-52> GemRB: Remove Interface::SetText in favour of calling Control::SetText directly.
[23:14:46] <CIA-52> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[23:14:46] <CIA-52> GemRB: 03tom.prince * r548d45d28b54 10gemrb/gemrb/core/ (DialogHandler.cpp DialogHandler.h GameScript/GSUtils.cpp):
[23:14:46] <CIA-52> GemRB: Change DialogHandler::InitDialog to return a bool.
[23:14:47] <CIA-52> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[23:14:48] <CIA-52> GemRB: 03tom.prince * r2f00bef594aa 10gemrb/gemrb/ (13 files in 2 dirs):
[23:14:48] <CIA-52> GemRB: Make Control::SetText return void.
[23:14:49] <CIA-52> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[23:14:49] <CIA-52> GemRB: 03tom.prince * r1c6d930171b3 10gemrb/gemrb/core/GUI/TextArea.cpp:
[23:14:50] <CIA-52> GemRB: Fix memory leak in TextArea::SetText.
[23:14:50] <CIA-52> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[23:14:51] <CIA-52> GemRB: 03tom.prince * r5c79b049e516 10gemrb/gemrb/ (29 files in 4 dirs): Merge branch 'bool'
[23:14:52] <CIA-52> GemRB: 03tom.prince * r7eb84f0bf525 10gemrb/gemrb/core/ (13 files in 2 dirs):
[23:14:52] <CIA-52> GemRB: Remove unused parameter pos for Control::SetText.
[23:14:53] <CIA-52> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[23:17:08] <gembot> build #100 of cmake g++-4.4.5 is complete: Success [build successful] Build details are at http://buildbot.gemrb.org/builders/cmake%20g%2B%2B-4.4.5/builds/100
[23:17:33] <tomprince> help
[23:20:52] <gembot> build #99 of autotools clang++ is complete: Success [build successful] Build details are at http://buildbot.gemrb.org/builders/autotools%20clang%2B%2B/builds/99