#gemrb@irc.freenode.net logs for 18 Aug 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:04:52] --> raevol has joined #GemRb
[00:55:31] <raevol> gemrb forums died :(
[00:55:38] <raevol> looks like gibberlings 3 is gone
[02:40:13] --> nickdaly` has joined #GemRb
[02:40:34] --- nickdaly` is now known as nickdaly
[02:58:01] <-- nickdaly has left IRC (Quit: ERC Version 5.3 (IRC client for Emacs))
[03:46:44] --> tomprince_loki has joined #GemRb
[04:00:17] <tomprince_loki> or.cz/include: make include.py handling somewhat saner.
[04:07:34] <-- tomprince_loki has left IRC (Read error: Connection reset by peer)
[04:52:44] --> tomprince_loki has joined #GemRb
[05:54:00] <-- raevol has left IRC (Quit: Leaving.)
[06:17:16] --> deepinthewoods has joined #GemRb
[07:17:54] <-- |Cable| has left IRC (Remote host closed the connection)
[07:52:24] <fuzzie> tomprince_loki: i think running it every frame is deliberate
[07:52:29] <fuzzie> erm, for every command
[07:56:15] <fuzzie> although a near-identical "use PyRun_SimpleFileEx" patch would be good, at least
[08:00:46] <fuzzie> will dig in irc logs
[08:07:23] <fuzzie> http://www.shsforums.net/uploads/monthly_12_2007/post-3784-1197366507.jpg <- heh, hadn't seen this (XP madness)
[08:17:00] --> SiENcE has joined #GemRb
[08:44:55] <SiENcE> hey morning
[08:44:59] <fuzzie> hi
[08:45:19] <SiENcE> when you want todo release for next gemrb version?
[08:45:44] <fuzzie> i am working in a branch
[08:46:22] <SiENcE> i mean official next release?
[08:46:38] <SiENcE> or when do you say i should do an dingux release?
[08:46:41] <fuzzie> i think the todo list for friday is empty
[08:46:52] <fuzzie> oh, you mean, the time :) i think saturday
[08:46:53] <fuzzie> but ask lynx
[08:46:57] <SiENcE> ok
[08:47:51] <SiENcE> sounds good
[08:48:30] <SiENcE> but i assume no scrolling of textwindow via cursor keys and not text in textwindow at the top?
[08:49:48] --> lynxlynxlynx has joined #GemRb
[08:49:48] --- ChanServ gives channel operator status to lynxlynxlynx
[08:52:21] <fuzzie> well, i have to rewrite the textwindow anyway, so i don't really want to patch it seperately for the release
[08:52:25] <fuzzie> will see how it goes
[08:54:27] <Lightkey> separately! sheesh
[08:55:29] * fuzzie flails at Lightkey
[08:56:03] <Lightkey> harder?
[09:00:31] <Lightkey> oh, apparently it means fuchteln? there is no entry at dict.leo.org for just the verb
[09:02:41] <fuzzie> haha. yes. :)
[09:05:30] <fuzzie> i thought the verb would be obscure, but it is in my paper Dutch/English dictionary
[09:06:58] <Lightkey> it is there, but only with additional words like mowing
[09:09:05] <fuzzie> phft :(
[09:15:26] <Edheldil> do you mean "to flail"? It's a skill in some RPGs, "maces and flails"
[09:18:29] <Lightkey> no, that does not exist
[09:18:38] <fuzzie> Edheldil: "to flail" means to wave your hands about; "to move in the manner of a flail"
[09:19:10] <Lightkey> Edheldil: flail is a noun there
[09:19:40] <fuzzie> http://www.math.leidenuniv.nl/~amilburn/flail.html
[09:19:53] <Edheldil> btw, if anyone's interested, the IE tries to allocate memory (or at least some of it) padded to 40h, 80h, 100h, 200h bytes and they reuse released chunks, possibly in an attempt to keep memory fragmentation down
[09:19:56] <fuzzie> that is the OED entry, which is admirably out-of-date
[09:20:00] <Lightkey> who is amil?
[09:21:48] <Edheldil> fuzzie: yup, I know the meaning. Though IIRC Merriam Webster does not give the last meaning
[09:22:05] <fuzzie> i think the last meaning is the only important one! :(
[09:22:20] <Lightkey> fuzzie: wait, so the 1. meaning is indeed what I first thought?
[09:23:38] <Lightkey> Second Edition 1989, reminds me of another book :-D
[09:23:57] <fuzzie> Lightkey: probably :) but it's transitive, so only if you have a direct object ("/me flails Lightkey")!
[09:24:37] <Edheldil> Lightkey: it was in Wizardry series or perhaps in Dungeon Master
[09:25:39] * Edheldil flails Lightkey
[09:25:47] <Edheldil> yeah, it DOES work ;-)
[09:26:07] <Lightkey> there did exist a Dungeon Master before Dungeon Master II? :o
[09:26:32] <Lightkey> I thought that was just a myth
[09:27:09] <Edheldil> and before that was IF :-p
[11:35:05] <SiENcE> fuzzie, i did two new commits
[11:35:22] <SiENcE> i think you could savely include this one
[11:35:23] <SiENcE> http://github.com/SiENcE/gemrb/commit/a5ea819b213772ad6f962d8a5290279ef499c1f7
[11:35:36] <SiENcE> just adds includes to Makefile.am
[11:36:29] <SiENcE> the other commit is more dingux specific, but now i can build gemrb with autotools automatically without manual modifications
[11:36:30] <SiENcE> http://github.com/SiENcE/gemrb/commit/b22f3f6f5cf32aac2c6c47aa6eb93bd8119f1a48
[11:37:18] <SiENcE> i modified the Makefile.am from GUIScript and OpenAL because configure does not find python and openal
[11:37:44] <SiENcE> i also have to remove AC_FUNC_MALLOC & AC_FUNC_REALLOC from configure.in
[11:38:04] <SiENcE> and i enhanced my autogen_dingux.sh script
[11:38:38] <fuzzie> you're using cygwin/mingw?
[11:38:44] <SiENcE> cygwin
[11:38:59] <fuzzie> and you get undefined references if you leave those in?
[11:39:22] <SiENcE> alloc?
[11:39:49] <fuzzie> the malloc/realloc ones
[11:39:54] <SiENcE> no i get troubble with SDL
[11:41:17] <SiENcE> i have no other idea howto do the second commit more compatible for you
[11:41:24] <SiENcE> but the first one should be fine
[11:42:32] <fuzzie> ok. i can just take it as-is, the email/name is fine?
[11:44:06] <SiENcE> ok which email?
[11:44:19] <fuzzie> the one in your commits, F.Fischer <seabeams@gmx.de>
[11:44:39] <SiENcE> jep thats ok
[11:46:31] <CIA-26> GemRB: 03seabeams * r19f92114cc06 10gemrb/gemrb/plugins/ (SDLAudio/Makefile.am SDLVideo/Makefile.am): -SDL includes are not found while crosscompiling, so i need this INCLUDES parameter
[11:47:40] <SiENcE> do you also add the autogen_dingux.sh or merge it in autogen.sh ?
[11:54:17] <fuzzie> it looks like you should be running with --build=`admin/config.guess` --host=mipsel-linux-uclibc
[11:54:35] <fuzzie> for the crosscompile stuff to work
[11:57:26] <SiENcE> mh
[11:57:56] <SiENcE> can you tell me how to get the commits from your gemrb git into my gemrb?
[11:58:00] <SiENcE> pull request?
[11:58:21] <SiENcE> on github
[12:01:39] <fuzzie> i'm not sure it'll do it automatically if your changes are there
[12:02:48] <SiENcE> but "pull request" is the command on github website?
[12:02:59] <SiENcE> i dont know git very well
[12:04:37] <fuzzie> well, git is centered around the idea that your own repository is the most important one
[12:05:02] <fuzzie> so it's a bit inconvenient
[12:05:05] <fuzzie> i'll peer at it later
[12:05:11] <fuzzie> but am doing real work right now :/
[12:07:20] <SiENcE> ok. i also have todo something real
[12:07:25] <SiENcE> cu later
[13:23:59] --> Avenger has joined #GemRb
[13:24:03] --- ChanServ gives channel operator status to Avenger
[13:24:34] <Avenger> hi
[13:24:45] <fuzzie> hi
[13:25:34] <Avenger> fuzzie who told you g3 will be on soon?
[13:26:12] <fuzzie> a friend who used to be involved
[13:26:26] <fuzzie> since then i see very little
[13:27:25] <fuzzie> theacefes posted at some point about having phoned the host and it should be back soon, but that was a while ago
[13:30:24] <fuzzie> but, well, you'd think she'd know, so i assume this is an idiot webhost issue
[13:35:08] <Avenger> i have continued my explorations :)
[13:35:52] <Avenger> do you want the charm opcode notes?
[13:35:57] <Avenger> or some other part?
[13:36:09] <fuzzie> i'm a bit busy with real work today
[13:36:33] <fuzzie> any notes you think are finished would be appreciated, i guess
[13:36:50] <fuzzie> but i doubt i'll have time to make anything work, at the moment
[13:44:23] <fuzzie> did you decode anything used in the animation id functions?
[13:44:46] <fuzzie> i was going to manually go through and work out the ids, sometime later this week, so any help would be useful
[13:45:24] <fuzzie> i found two functions which were obviously taking an anim id and outputting the bam details
[13:45:46] <fuzzie> one making some tables and one doing it at runtime, maybe, but i didn't look too closely
[13:46:17] <Avenger> not much about animations
[13:47:06] <fuzzie> i made a list of "things which really annoy me when playing in gemrb"
[13:47:46] <fuzzie> things like the action bugs, trigger bugs, dialog bugs, hide/show gui bugs, animations being broken, sparkles looking awful, etc
[13:47:53] <fuzzie> so i am just going to concentrate on fixing those
[13:48:42] <fuzzie> but first i am fighting visual studio
[13:53:26] <fuzzie> oh, if you have notes on the panic stuff i guess that would be nice :)
[13:53:35] <fuzzie> i have what you said on irc already
[13:53:46] <fuzzie> and some other notes about the action clearing the queue
[14:03:21] <Avenger> ok
[14:08:46] <fuzzie> but i think if you want to be productive, just going through the opcodes is the most useful thing
[14:09:50] <lynxlynxlynx> nice list fuzzie :)
[14:10:37] <fuzzie> well, it doesn't include anything like spells or items or combat :p so it is a personal list
[14:11:44] <fuzzie> but there is not really that much
[14:15:33] <lynxlynxlynx> it's nice that you're optimistic ;P
[14:22:53] <fuzzie> well, there are no insolvable problems left? just annoying work
[14:23:10] <fuzzie> unsolvable?
[14:25:23] <lynxlynxlynx> left? unsolvable is a misnomer
[14:27:21] <fuzzie> well, on my own, i could never deal with the effects
[14:27:50] <fuzzie> and i could never do anything about all the game rules like levelling up, combat, chargen, kits, etc
[14:28:12] <fuzzie> so that is effectively 'unsolvable' for me :)
[14:28:13] <lynxlynxlynx> that's why we're a team
[14:28:43] <lynxlynxlynx> more or less plenty of bard levels in everyone then some specialisation
[14:28:54] <Avenger> ok, charm clears actions on first apply :)
[14:29:21] <lynxlynxlynx> that makes sense, atleast combatwise
[14:29:22] <Avenger> and it is a rather brutal clearing, nothing can save from it :)
[14:29:32] <fuzzie> randomfly? :)
[14:29:47] <lynxlynxlynx> guls are not valid targets
[14:29:48] <Avenger> it doesn't break actions, just clears the queue
[14:29:54] <lynxlynxlynx> gulls
[14:29:55] <fuzzie> aww
[14:30:02] <fuzzie> dialog does that too
[14:30:06] <fuzzie> they are real spoilsports at bioware
[14:30:28] <fuzzie> lynxlynxlynx: i bet they are if you script them by name :)
[14:30:47] <lynxlynxlynx> heh
[14:32:22] <Avenger> oh i misread, it is actually keeping actions that are flagged uninterruptable
[14:32:54] <fuzzie> ah
[14:32:59] <fuzzie> but it wipes the rest?
[14:34:02] <fuzzie> hey, this is not completely relevant, but what i wrote in my g3 post was something like "it seems SetInterrupt(TRUE) on an actor makes it so that any running blocking action isn't cleared by a queue clear, but everything else is"
[14:34:47] <fuzzie> which i found really weird, because i thought SetInterrupt was a different interrupt thing entirely
[14:34:55] <fuzzie> maybe you can clear that up for me?
[14:35:30] <Avenger> there are different things
[14:35:47] <fuzzie> this is the one in the creature flags
[14:35:48] <Avenger> each action can be flagged as 'safe from clear'
[14:35:53] <fuzzie> not the action one
[14:36:07] <fuzzie> although, maybe the one in the creature flags means that the action one is always set..
[14:36:33] <Avenger> the interrupt thing is different from the clear action thing
[14:36:46] <fuzzie> like i say, this is the one in the creature flags, set by SetInterrupt :)
[14:36:53] <Avenger> interrupt is about breaking the current action and going on to the next
[14:36:57] <fuzzie> you set it, and blocking actions don't get cleared by a queue clear
[14:37:22] <fuzzie> even if they are interruptible blocking actions
[14:39:05] <fuzzie> but i guess, you have no idea exactly what's going on there, still?
[14:41:46] <Avenger> no, even if you set interrupt, charm (or anything that calls [eax+64h]) will clear the queue, except actions that are flagged. Well, maybe when setinterrupt is set, it means it will add the actions by that flag...
[14:42:42] <fuzzie> if you do SetInterrupt(FALSE), then Wait(20), then something like DisplayString, then clear the queue by charm/dialog/something, then it will still wait, but the DisplayString never happens (only things queued after the clear happen)
[14:43:34] <-- tomprince_loki has left IRC (Read error: Connection reset by peer)
[14:44:09] <Avenger> what about this: setinterrupt(false); wait(20); displaystring(x); setinterrupt(true); displaystring(y);
[14:44:28] <Avenger> will it wash away displaystring(y) ?
[14:45:06] <fuzzie> it will wash away both
[14:45:44] <fuzzie> you lose everything after the wait, if the queue is cleared
[14:46:16] <Avenger> i'm not sure how setinterrupt works,
[14:46:25] <Avenger> what about this: setinterrupt(true); wait(20); displaystring(x); setinterrupt(true); displaystring(y);
[14:46:43] <Avenger> err, the second true is false...
[14:46:50] <fuzzie> setinterrupt is a normal action
[14:46:53] <Avenger> --> setinterrupt(true); wait(20); displaystring(x); setinterrupt(false); displaystring(y);
[14:46:59] <fuzzie> and if you do that, you lose the entire queue when it is wiped
[14:47:05] <fuzzie> that is no surprise, wait is interruptible :)
[14:48:09] <fuzzie> but you see how it is weird? because the interrupt state must be messing with the action interrupt state, as far as i can tell
[14:49:40] <fuzzie> hmm, i actually see nothing in 'setinterrupt' other than changing +366h
[14:49:55] <Avenger> which one you look at?
[14:50:08] <Avenger> the one for livings or the one for the scriptables
[14:50:20] <fuzzie> scriptables
[14:50:30] <fuzzie> living is 80000000h in mc_flag, right?
[14:50:31] <Avenger> that won't set the creature mc flag
[14:50:35] <Avenger> yes
[14:51:10] <Avenger> 008E2CF6
[14:51:40] <fuzzie> but my guess is: when an action is executed, the 'no interrupt' always gets set if the 'setinterrupt' state is set to no interrupt.
[14:53:20] <fuzzie> so if you look through the code, please look out for any evidence which might explain :)
[14:56:37] <Avenger> if you meant: the actions's no interrupt flag is set to whatever is the current interrupt state at the time the action is queued, then i said the same :)
[14:56:46] <fuzzie> no
[14:56:50] <fuzzie> well
[14:56:52] <Avenger> then meh :)
[14:56:55] <fuzzie> i'm not sure what you mean
[14:57:13] <fuzzie> define 'queued' :)
[14:57:19] <Avenger> put on the queue :)
[14:57:22] <fuzzie> if you mean 'gets to the top of the queue and is executed', then sure
[14:57:27] <fuzzie> if you mean 'added to the queue', then not sure :P
[14:57:43] <Avenger> i meant mostly the latter
[14:57:45] <fuzzie> all the later actions get wiped
[14:57:53] <fuzzie> doesn't matter what the state was when they were added
[14:58:02] <Avenger> i don't quite see that
[14:58:12] <Avenger> what i see is selective removal of actions from the queue
[14:58:22] <fuzzie> you do 'setinterrupt(false); wait(10); wait(10)' and then clear the queue, you lose the second wait
[14:58:53] <Avenger> then probably something else that sets this per action immunity flag
[14:58:57] <fuzzie> ok
[14:59:06] <fuzzie> so, if you see something else setting that flag, i would like to know!
[14:59:22] <fuzzie> it is always possible that i screwed up the scripts and my test results are wrong, too
[14:59:34] <fuzzie> but i was pretty sure when i did them, on monday
[15:02:21] <fuzzie> also, wait, do you see *anything* setting that flag on things which aren't at the top of the queue?
[15:02:59] <fuzzie> i know that actionoverride doesn't do it
[15:03:54] <fuzzie> but i wonder if you saw it anywhere? maybe some action does it when pushing another action on top of itself?
[15:07:58] <Avenger> well i don't know
[15:11:00] <fuzzie> sorry
[15:11:07] <fuzzie> i just wonder :)
[15:11:30] <fuzzie> if things don't do what i expect, i guess i will eventually see some script break
[15:11:56] <fuzzie> so i wouldn't worry about it
[15:12:08] <fuzzie> you just seem to know everything now :)
[15:21:18] <Avenger> at the moment i just look at the action execution stuff
[15:22:14] <fuzzie> no terrible surprises so far?
[15:22:35] <Avenger> tobex calls this function: //v84 ? all the script stuff starts here!
[15:22:41] <fuzzie> haha
[15:22:49] <Avenger> the virtual function 0x84 of actors
[15:23:07] <fuzzie> yes, i tried asking about script stuff, and i guess no-one knows much about it yet :)
[15:23:21] <Avenger> it seems to do two things: 1. sets up lots of crap on first load, 2. maintains the action queue
[15:23:34] <Avenger> it is probably the equivalent of our UpdateScripts thingie
[15:23:36] <fuzzie> but it's really not as complicated as people seem to think
[15:24:01] <fuzzie> you have any idea where instants are executed?
[15:24:02] <Avenger> it doesn't really help that the initial setup code is applied inside this loop :)
[15:24:21] <fuzzie> i execute them in our AddAction right now, in gemrb
[15:24:46] <Avenger> you ask if instants are executed instead of putting them on the queue if something is already there?
[15:24:54] <fuzzie> no
[15:25:01] <fuzzie> instants are not executed if something is already there :)
[15:25:06] <Avenger> well, ok
[15:25:15] <fuzzie> well, not in bg2
[15:25:26] <fuzzie> i guess you probably don't want to start looking at iwd2, so i don't discuss that :P
[15:25:46] <Avenger> so, what is the question, if there is nothing on the queue, it is irrelevant if it is executed immediately, or put on the queue and then executed in the same thread?
[15:25:54] <fuzzie> yes, it is irrelevant
[15:25:57] <fuzzie> i'm just curious
[15:26:31] <fuzzie> i think, really, most of it is irrelevant now
[15:26:46] <Avenger> my problem is, i found what adds to the queue and i found what clears the queue, but this v84 thingie is huge, and i still didn't see its end
[15:26:46] <fuzzie> the individual actions and the effects, they are difficult
[15:27:23] <fuzzie> the script updating, it is for curiousity :)
[15:27:25] <Avenger> when i see any action executed, it is 99% a message that adds it to the end of the queue
[15:28:31] <Avenger> but those are mostly interactive actions of actions triggered by other actions, i don't see where it executes a script
[15:28:46] <Avenger> s/of/or
[15:29:37] <Avenger> this initializing code in the middle of the script update loop sucks
[15:30:06] <Avenger> why couldn't they put it in a pretty separated call
[15:32:26] <fuzzie> you should tell them to be sure to consider reverse-engineers in their newer engines :)
[15:38:33] <Avenger> yep
[15:39:52] <Avenger> some stuff still confuses me, there is a message which calls a function with two virtual functions, i have absolutely no idea about the the object that owns them :) and i'm pretty sure this is an important function
[15:40:21] <fuzzie> no hints?
[15:40:37] <fuzzie> all their stuff for maintaining animations and stats and everything for multiplayer looked pretty complicated
[15:41:05] <Avenger> well the message calls this one: 69400F
[15:41:15] <Avenger> i have no idea about it, but it is a frequently used one
[15:41:43] <Avenger> the message is: 00AAB5B4
[15:42:39] <Avenger> actually, i believe it is to update the portraits window
[15:47:10] <fuzzie> haha
[15:47:11] <Avenger> ok, i skipped that, because it seems unrelated to scripting
[15:47:29] <fuzzie> you have some goal in mind, or just 'decode all the scripting'?
[15:48:17] <Avenger> well, if you didn't ask me about scripting, i would just leisurely go over the opcodes or actions, and rush through them, trying to understand what i can without too much focus
[15:48:30] <fuzzie> well, maybe that is more fun?
[15:48:34] <Avenger> it helps me to understand the most in the least time in the easiest way
[15:48:38] <fuzzie> i think you should do whatever you find fun :)
[15:48:55] <Avenger> this code is annoying, i admit
[15:49:07] <fuzzie> i like to hear new scripting stuff, but if this code is annoying, come back to it when you understand more, maybe?
[15:49:08] <Avenger> i'm at: 008E7E70
[15:49:17] <fuzzie> i have no disassembler here, so i can't look
[15:49:24] --> tomprince_loki has joined #GemRb
[15:49:28] <Avenger> well, let me quote to you :)
[15:51:07] <Avenger> the odd party is that 35fc field, which obviously instructs this script loop to clear the interruptable flag :)
[15:51:25] <Avenger> so, you see, it is complex
[15:51:32] <fuzzie> hehe, i got only one line :p
[15:51:37] <Avenger> uh
[15:51:51] <fuzzie> maybe pastebin it with some short time
[15:51:56] <fuzzie> that's what i usually do
[15:52:38] <Avenger> http://pastebin.com/RgHSAyty
[15:54:10] <Avenger> in itself it is nothing much, just something like if(f) then set_interruptable();
[15:54:19] <Avenger> but why do they need a separate field for this
[15:54:33] <Avenger> why can't they set the mc flag immediately
[15:54:55] <fuzzie> hmm
[15:54:58] <fuzzie> this is in a message?
[15:55:07] <Avenger> in the main script loop
[15:55:13] <Avenger> it is a virtual function of the actor
[15:55:33] <fuzzie> i would guess it is about synchronization or something
[15:55:38] <fuzzie> but that doesn't make much sense in the main script loop
[15:56:13] <fuzzie> well, wait: where the 35fc cleared? :) maybe it is a 'keep clearing interruptible' flag?
[15:56:21] <fuzzie> but i don't have enough context
[15:56:34] <Avenger> well, it just means, whenever i see 35fc, it means, a delayed enable interrupts
[15:56:59] <Avenger> tobex has no clue about this, so i have to see where it is used
[15:57:22] <Avenger> but the fields dealing with interrupts just keep growing :)
[15:57:36] <fuzzie> i usually just search the whole disassembly, for things like this
[15:57:41] <fuzzie> find all uses of the field
[15:57:55] <Avenger> oh nice, here is a more useful part
[15:57:57] <tomprince_loki> fuzzie: I don't see any point to running include.py just before every console command.
[15:58:20] <fuzzie> tomprince_loki: it is more, your patch only ever runs it once
[15:58:48] <fuzzie> so you can't change it while running
[15:59:03] <tomprince_loki> Well, unless the point of it is for something other than doing imports, I don't see the point of running it every console command.
[15:59:15] <fuzzie> well, it is general-purpose
[15:59:32] <fuzzie> otherwise the import could have just been added to the existing hard-coded imports in the C++ :)
[15:59:34] <Avenger> http://pastebin.com/Us1MnSX8
[16:00:09] <Avenger> that piece says: clear the not interruptable flag when you are out of actions
[16:00:21] <Avenger> and that IS an important piece
[16:00:40] <tomprince_loki> I seem to recall that the point was to not hardcode that import in C++. And I was thinking that some the other imports there could be moved into include.py eventually.
[16:00:41] <Avenger> whenever the actor runs out actions, it loses the uninterruptability
[16:01:09] <fuzzie> sure, moving all the other imports makes sense
[16:01:26] <tomprince_loki> I don't know, it was Avenger that added that bit, specifically to add another import. I just don't see the point of running it before every console command.
[16:01:34] <fuzzie> well, why not?
[16:01:47] <Avenger> include.py was added to include stuff before console commands
[16:01:57] <Avenger> if you want somethng else, use another file, i guess
[16:01:58] <fuzzie> but it's simple enough to change it back or forth
[16:02:00] <tomprince_loki> Why before every command?
[16:02:05] <fuzzie> just do it in two commits, if you could
[16:02:22] <fuzzie> i mean, it's not worth so much discussion on irc :)
[16:02:24] <Avenger> it is to include constants
[16:02:28] <fuzzie> nor so much worry
[16:02:45] <fuzzie> Avenger: is that a virtual function on scriptable?
[16:02:47] <Avenger> like SetPlayerStat(1,IE_XP,1000)
[16:02:47] <tomprince_loki> So, only needed once...
[16:03:13] <fuzzie> at the time, we thought it would be helpful to just have it always run, so people can fiddle with it as we go
[16:03:22] <Avenger> fuzzie: well, it is in the actor's vtable so i guess all scriptables got it...
[16:03:25] <fuzzie> but i really don't care this much
[16:03:42] <fuzzie> Avenger: well, you say "clear the not interruptable flag", is that for all scriptables?
[16:03:50] <Avenger> no
[16:03:55] <Avenger> only actors
[16:03:58] <fuzzie> because the defaults are different
[16:04:00] <fuzzie> for scriptables
[16:04:12] <Avenger> we talk about actors, and the mcflag :)
[16:04:34] <Avenger> the other interruptable flag(s) are ignored atm :)
[16:04:48] <fuzzie> so if you don't check the scriptable vtables too, then it is silly to ask why fields exist, i guess?
[16:05:16] <Avenger> but this field is surely an actor only field
[16:05:25] <fuzzie> the +35fc?
[16:05:29] <Avenger> yes
[16:05:32] <Avenger> and the mcflag too
[16:06:21] <fuzzie> but maybe the function does something else for non-actors?
[16:06:21] <Avenger> i'm not even sure regular scriptables got such a big vtable, this one is [ax+0x84], so
[16:08:02] <Avenger> ok, that is cleared, all scriptables got this
[16:08:11] <Avenger> now i just check if it is a stub or not
[16:09:09] <fuzzie> meh, still no G3
[16:09:29] <fuzzie> annoying
[16:10:01] <fuzzie> google cache is missing quite a lot of the recent threads
[16:10:53] <Avenger> ok, i think i go back to leisure mode
[16:11:25] <fuzzie> ok :)
[16:12:27] <Avenger> if you look at tobex' osprite.h and look at the virtual function table, it is teeming with all sorts of scripting
[16:34:12] <-- SiENcE has left IRC (Quit: @all: cya)
[16:39:53] <CIA-26> GemRB: 03tom.prince * rcf93e59a879e 10gemrb/gemrb/plugins/GUIScript/GUIScript.cpp:
[16:39:53] <CIA-26> GemRB: GUIScript: Process GUIScripts/include.py with PyRun_SimpleFileEx.
[16:39:53] <CIA-26> GemRB: This tells python where the code is coming from, and avoids creating
[16:39:53] <CIA-26> GemRB: a buffer by hand.
[16:39:53] <CIA-26> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[16:47:17] <CIA-26> GemRB: 03tom.prince * re214601e46d8 10gemrb/gemrb/plugins/GUIScript/GUIScript.cpp: GUIScript: Process GUIScript/include.py only once, at load.
[16:48:04] <fuzzie> thanks
[17:13:14] <tomprince_loki> fuzzie: You mentioned some time ago, a desire for better debugging tools. I was curious what you where after?
[17:16:23] <fuzzie> It's difficult to tell what I meant without context..
[17:17:38] <fuzzie> Recently I've been thinking about trying to cut down the debug output -- a proper logging framework would be great, so you could log most things to a file and select what went onto the console -- and then adding things like http://fuzzie.org/nfs/gemrb/var_debugging.txt which could be toggled on/off at runtime.
[17:18:26] <fuzzie> But I didn't get further than just commenting out some of the more excessive bits of startup logging.
[17:20:55] <tomprince_loki> The comment I was thinking of is from Aug6
[17:23:30] <fuzzie> ah. then yes, script/action debugging; things like the patch above, the ability to choose what ends up on the console and what ends up in the log, etc. i'm not quite sure what would be most helpful.
[17:25:32] <fuzzie> i'm sure it's the kind of thing that you could spend months on, adding debugging hooks everywhere etc
[17:25:59] <fuzzie> not very helpful :(
[17:27:03] <fuzzie> but at the moment it's difficult to work out anything which is going on with gemrb, since there's so much junk on the console; it's helpful all the time for bug reports, so i don't want to just make it all off by default, hence my thoughts/plans for logging
[17:27:47] <fuzzie> boring work :)
[17:29:08] <tomprince_loki> Matter of opinion ... the current logging macros rub me the wrong way ...
[17:30:24] <fuzzie> well, the fact that they're macros and the looming demon of vc++6 is motivation for me, too
[17:31:17] <fuzzie> no variadic macros in vc++6 (and some other idiotic embedded compilers etc), but with actual logging functions we could use varargs etc
[17:31:27] <tomprince_loki> particularly the #define printf cprint in logging.h
[17:31:58] <tomprince_loki> Which means that logging might break in weird ways if win32def.h isn't included :(
[17:32:07] <fuzzie> yes
[17:37:09] <CIA-26> GemRB: 03tom.prince * r6c96a6588cfe 10gemrb/gemrb/plugins/GUIScript/PythonHelpers.h:
[17:37:09] <CIA-26> GemRB: GUIScript: Add a missing Py_XDECREF.
[17:37:09] <CIA-26> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[17:39:24] <fuzzie> lynx was reporting crashes when removing multiple savegames at once
[17:39:49] <fuzzie> didn't look into it yet, so might not be a bug anywhere near that code
[17:51:39] <tomprince_loki> I get something similiar, crashing in opendir.
[17:51:45] <fuzzie> right, that one
[17:52:02] <fuzzie> ignore anything i said on irc at the time
[17:54:30] <CIA-26> GemRB: 03fuzzie * rdf4d680329c8 10gemrb/gemrb/core/GameScript/Actions.cpp: comment out broken GetTarget hack in Attack actions
[17:54:31] <CIA-26> GemRB: 03fuzzie * rf012ebb4aaf6 10gemrb/gemrb/ (14 files in 6 dirs): move most dialog handling code from GameControl into new DialogHandler class
[17:55:13] <fuzzie> that was irritatingly invasive
[17:57:01] <fuzzie> (it all needs rewriting, i just wanted it in a different file first)
[17:59:46] --> Maighstir has joined #GemRb
[18:03:04] <tomprince_loki> Much nicer this way.
[18:05:06] <lynxlynxlynx> i can't compile that, even after a make clean
[18:05:28] <fuzzie> so, what did i break? :)
[18:05:42] <lynxlynxlynx> you just forgot to add it to the link line
[18:05:52] <fuzzie> there's a link line?
[18:06:12] <lynxlynxlynx> not anymore :)
[18:06:50] <lynxlynxlynx> looks like cmake didn't detect the new files, it just needs a refresh
[18:06:56] <fuzzie> ah
[18:07:10] <fuzzie> maybe we need to get rid of that glob?
[18:07:28] <lynxlynxlynx> meh
[18:08:20] <Avenger> anyone up for a very small change? i don't want to reboot, look in: void Door::TryPickLock(Actor *actor)
[18:08:44] <fuzzie> as long as it's not XP hacks :)
[18:08:46] <Avenger> if lockdifficulty == 100, and there is a unique picklock fail string, print it instead of the generic message
[18:08:57] <fuzzie> how do you get the picklock fail string?
[18:08:59] <tomprince_loki> Git works fine under windows...
[18:09:03] <Avenger> it is in the door object
[18:09:27] <fuzzie> tomprince_loki: it is not exactly fun to use, though
[18:09:28] <Avenger> OpenStrRef i think
[18:09:58] <fuzzie> Avenger: and what's it by default, 0 or 0xffffffff?
[18:10:10] <Avenger> 0
[18:10:29] <Avenger> lemme find an area that has it
[18:10:42] <fuzzie> "console handling on Windows" is slowly moving towards #1 on my hate list
[18:10:47] <tomprince_loki> It wasn't so bad when I was using tortoisegit
[18:11:11] <fuzzie> at first it always seems like, well, it's a window, surely you can just replace the GUI
[18:11:17] <fuzzie> and then it turns out that, hey, the console window handling is in the kernel!
[18:11:39] <fuzzie> and then i cry.
[18:11:52] <Avenger> oops fuzzie, -1
[18:11:58] <fuzzie> tomprince_loki: ah, well, all i hear about tortoisegit is horror stories from #scummvm :)
[18:12:16] <fuzzie> but i expect that is git-svn's fault
[18:12:21] <Avenger> probably 0's should be replaced to -1 on load, though :)
[18:13:18] <Avenger> heh, i see some areas with 0 and some with -1
[18:14:46] <Avenger> btw, i think the two small unknowns in the door, 0x52/0x54 are the volume settings for open/close sounds
[18:14:53] <Avenger> they default to 20, if set to 0
[18:14:55] <fuzzie> and LockDifficulty is 100 for both types?
[18:14:56] <fuzzie> oh!
[18:15:04] <fuzzie> that has been bugging me :)
[18:15:33] <Avenger> if lockdiff is 100, then it overrides any picking attempts
[18:15:49] <fuzzie> i mean, for both the 0 and -1 strrefs
[18:16:46] <Avenger> yes
[18:16:52] <fuzzie> that is annoying
[18:17:07] <Avenger> the strref value is either handled at load time, or in the 'displayconstantstring' code
[18:17:14] <Avenger> we'll handle it at load time
[18:17:26] <Avenger> just set it to -1 if it was 0
[18:17:32] <Avenger> looks like the engine doesn't care
[18:18:20] <Avenger> i still want to find a test case
[18:18:25] <fuzzie> i don't suppose you have any idea how this actors-moving-with-area thing works?
[18:18:36] <fuzzie> a test case for what?
[18:18:43] <fuzzie> i have many for the strref being valid
[18:18:46] <Avenger> for this custom str
[18:18:50] <fuzzie> that isn't a problem :P
[18:20:21] <Avenger> ok
[18:20:28] <Avenger> ar0412 has one
[18:20:31] <fuzzie> how do i force-join people?
[18:20:58] <Avenger> ctrl-w ? or e?
[18:21:01] <fuzzie> ah, q
[18:21:06] <Avenger> hehe
[18:21:15] <fuzzie> strref works
[18:21:21] <fuzzie> (i had to join a thief ;p)
[18:22:02] <fuzzie> i commit this, and then you/lynx tell me what i did wrong :)
[18:22:38] <fuzzie> there's an OpenFail in Container, does it need the same thing?
[18:23:22] <fuzzie> that is .. the last dword before the 56 unknown bytes
[18:24:49] <fuzzie> iesdp says 'lockpick string'
[18:25:00] <Avenger> hmm, most likely yes
[18:25:05] <fuzzie> so i will commit this
[18:25:16] <fuzzie> this doesn't rewrite the 0s to -1s though, i didn't find any of those
[18:25:41] <Avenger> i will care about that in load
[18:26:03] <Avenger> if the engine doesn't care which value, then it is better to handle it once at load, and save it clean :)
[18:26:39] <fuzzie> sure
[18:26:53] <Avenger> dltcep says open fail is in container too
[18:27:04] <Avenger> i don't have the container struct in, only door
[18:27:27] <Avenger> tobex didn't come with one handy, so i first have to find the fields
[18:27:37] <fuzzie> i really should get those hard-coded colours out of the code
[18:27:38] <fuzzie> or someone should
[18:27:40] <Avenger> i already found the area loader, but didn't care about container
[18:27:48] <fuzzie> they are just hardcoded in the original exe?
[18:27:52] <Avenger> yeah
[18:28:03] <Avenger> all the code is full with rgb on dword values
[18:28:04] <fuzzie> so, we make a msgcolor.2da
[18:28:21] <Avenger> add a column to strings.2da ?
[18:28:33] <CIA-26> GemRB: 03fuzzie * rb8ddf3874e26 10gemrb/gemrb/core/Scriptable/ActorBlock.cpp: show custom lockpick fail strings
[18:28:39] <fuzzie> i don't think that is enough
[18:28:50] <fuzzie> well, i know it isn't enough
[18:29:19] <Avenger> you added this to container too?
[18:29:20] <fuzzie> there are colours for all kinds of custom strings too
[18:29:22] <fuzzie> yep
[18:29:55] <Avenger> all core strings should be in strings.2da, though
[18:30:08] <Avenger> and the rest is in guiscript
[18:30:10] <fuzzie> yes, but we want colours for other strings too
[18:30:48] <fuzzie> i don't have the list here, but there seemed to be hardcoded colours for strings which come from a strref in data files
[18:31:09] <fuzzie> and the rest being in guiscript doesn't help anyway, we still need colours for those :)
[18:31:31] <fuzzie> i mean, we could have a column of strings.2da which was a lookup into a msgcolor.2da
[18:31:35] <fuzzie> or maybe i am missing the obvious?
[18:31:36] <Avenger> i don't mind hardcoding in guiscripts :)
[18:31:53] <Avenger> well, that's good too
[18:32:03] <Avenger> it could be a simple color type value
[18:32:24] <fuzzie> i think there are only 10 or so different colours, hardcoded
[18:32:29] <fuzzie> i put some pictures somewhere
[18:32:50] <Avenger> yes, and each and every one of them is a literal in the IE :)
[18:32:56] <Avenger> actually that helps a lot
[18:33:14] <Avenger> it is easy to pick up the color code
[18:33:16] <fuzzie> don't suppose they're all in one place? :)
[18:33:23] <Avenger> and then you see that the value besides it is an strref
[18:33:28] <fuzzie> but i think bg2 is the easy case
[18:35:28] <fuzzie> Avenger: http://fuzzie.org/nfs/gemrb/openfail_rewrite.txt is what you want?
[18:35:43] <Avenger> exactly
[18:36:54] <CIA-26> GemRB: 03fuzzie * rcfc9342311cf 10gemrb/gemrb/plugins/AREImporter/AREImporter.cpp: rewrite lockpick fail strings from 0 to -1 at load time
[18:37:25] <fuzzie> otherwise i worry we'll forget
[18:56:00] <Avenger> another small fix: destroygold(0) would destroy all gold
[18:56:02] <fuzzie> i really don't know what to do about this TextArea thing
[18:56:51] <Avenger> what textarea thing
[18:57:12] <fuzzie> the TextArea control has a lot of bugs
[18:57:23] <Avenger> capitals
[18:57:28] <Avenger> and indentation
[18:57:40] <fuzzie> but mostly i just want message storage out of there
[18:58:41] <fuzzie> i guess splitting the data stuff into TextAreaData might help
[18:59:34] <Avenger> how does splitting an object into two with 1-1 connection help?
[18:59:45] <fuzzie> because then you can make it not 1-1 connection :)
[18:59:56] <Avenger> and why do you need that
[19:00:05] <fuzzie> we need somewhere to store the message window text
[19:00:19] <Avenger> ahh the transfer problem?
[19:00:31] <fuzzie> but mostly because i think splitting it into two is the only way i'll ever fix the bugs
[19:00:32] <Avenger> that is truly ugly
[19:00:56] <Avenger> yes, you need to split them if you don't want to transfer the text
[19:01:22] <Avenger> anyway, before we forget, can you fix the gold? ;)
[19:01:26] <fuzzie> sure
[19:01:53] <Avenger> it is much easier, and surely fixes at least one bug, if it is ever used that way
[19:02:58] <fuzzie> http://fuzzie.org/nfs/gemrb/fix_destroygold.txt maybe?
[19:03:45] <lynxlynxlynx> i see no use of it in bg1/ bg2/ how/ dialogs or any gametype scripts
[19:04:09] <fuzzie> yes, me neither, although that doesn't mean much for mods
[19:04:23] <lynxlynxlynx> if they know about it
[19:05:35] <fuzzie> if you google, you find .. Avenger :)
[19:06:37] <Avenger> very nice ;)
[19:08:06] <fuzzie> as usual, sf is being broken
[19:08:27] <CIA-26> GemRB: 03fuzzie * race9f5d516d7 10gemrb/gemrb/core/GameScript/Actions.cpp: handle DestroyGold(0) (according to Avenger)
[19:09:04] <Avenger> that was another small step for full compatibility
[19:09:06] <Avenger> :)
[19:09:35] <fuzzie> you have the Wait haste/slow stuff documented? does it happen in SmallWait too?
[19:10:16] <Avenger> lol, the Ally action removes charm effects
[19:10:25] <fuzzie> well, that makes sense :)
[19:10:33] <Avenger> i guess it is to avoid messing up the EA
[19:10:53] <Avenger> fuzzie: yes, smallwait is affected by haste/slow too
[19:10:59] <fuzzie> go make a 'research' page on the wiki and put all this stuff in it :)
[19:11:27] <fuzzie> i didn't bother to work out how the haste/slow stuff worked
[19:12:58] <Avenger> oh well, i will make an 'easy todo' page
[19:13:17] <fuzzie> twice as fast if slowed? that makes no sense
[19:14:57] <fuzzie> meh
[19:15:40] <Avenger> it is to compensate with the ai cycle speed?
[19:16:00] <fuzzie> but that means that hasted actors get 30 cycles per second?
[19:16:09] <fuzzie> that is terrible :P
[19:16:11] <Avenger> the script is updated faster/slower but the wait is constant
[19:16:13] <Avenger> yes
[19:16:28] <Avenger> i think you get more poisoning too
[19:16:38] <Avenger> so recurring effects happen faster too
[19:16:43] <fuzzie> yes, i guess you probably get everything done twice a frame
[19:16:46] <Avenger> yes
[19:16:56] <Avenger> err, no
[19:17:06] <Avenger> you get twice as many frames
[19:17:24] <fuzzie> well, i mean, you know what i mean, maybe :)
[19:17:38] <fuzzie> i guess this means that all these silly GameTime hacks have to be removed from the effect code
[19:18:01] <Avenger> well the engine does those too
[19:18:07] <Avenger> so...
[19:18:13] <fuzzie> using GameTime, though?
[19:18:15] <Avenger> maybe it is also bugged
[19:18:17] <Avenger> yes
[19:18:29] <fuzzie> i never saw any disasm of the timing code
[19:18:29] <Avenger> there are lots of 1dd0h's
[19:18:34] <fuzzie> it's all in recurrent effects in the original engine
[19:18:48] <Avenger> let me get a duration calculation for you
[19:19:07] <fuzzie> oh, well, duration is different :)
[19:19:17] <fuzzie> i mean the GameTime%15 stuff
[19:19:33] <fuzzie> which i think is wrong anyway, actors are not perfectly in sync in the original engine
[19:19:46] <fuzzie> but i never found the time to look at it in detail
[19:20:18] <Avenger> http://pastebin.com/KjZQ3Xte
[19:21:11] <fuzzie> i guess +4032h is nChitinUpdates, so GameTime
[19:21:31] <Avenger> ?
[19:21:48] <fuzzie> but then +1dd0h is nGameTime, also GameTime
[19:21:48] <Avenger> 1dd0h is the gametime
[19:21:51] <fuzzie> explain please :-)
[19:21:57] <fuzzie> what's 4032h :)
[19:22:30] <Avenger> never seen it in opcode code
[19:22:41] <fuzzie> it is in action code
[19:22:45] <fuzzie> i guess it is a global timer
[19:22:47] <Avenger> opcode always uses 42ba's 1dd0
[19:22:57] <fuzzie> and 1dd0 is the game timer
[19:22:59] <Avenger> yes
[19:23:17] <Avenger> didn't even know about the other time
[19:23:20] <fuzzie> and, well, the only important opcode code is in the recurrent queue
[19:23:27] <fuzzie> and i've never seen the recurrent queue
[19:23:45] <Avenger> the snippet i provided is from setting up a poison recurrent effect
[19:23:59] <fuzzie> sure, but where's the "how often does this happen"?
[19:24:42] <fuzzie> the effect itself does nothing useful but add itself back to the recurrent list, right?
[19:25:03] <fuzzie> so you're stuck with that duration, but i guess there's nothing you can do about that
[19:25:35] <fuzzie> i mean, again, i am just *curious*, and if this is annoying to look at, don't!
[19:25:41] <fuzzie> i hate to think i lead you into boring horrible bits
[19:25:43] <Avenger> to be honest, i don't know how recurrent list is updated
[19:26:25] <fuzzie> but every time i ask about the recurrent applications, everyone stops talking to me, and all the important timing stuff seems to be there, even round/turn/etc timing seems to be in the recurrent stuff and not the effects
[19:26:30] <Avenger> it is always cleared, i think
[19:27:13] <fuzzie> yes, Taimon says it's always cleared and recreated when a new effect is applied, and so there is no hope for fixing the original engine's recurrent effects, they will break every time
[19:27:38] <fuzzie> that is all i kno
[19:27:39] <fuzzie> w
[19:27:56] <fuzzie> but because of that, it cannot mess with duration either
[19:29:01] <fuzzie> that hasted code is really simple, just checks '(Ticks & 1) & globalid', so i wonder if the same trick is used for everything else
[19:32:19] <Avenger> i just don't know how timing is done in poison :)
[19:32:48] <Avenger> specifically, the 1 damage per x seconds part
[19:33:49] <fuzzie> i remember Taimon was grumpy because something was doing the '& globalid' thing with something which didn't change
[19:34:06] <fuzzie> so something would depend entirely on the globalid an actor got
[19:34:19] <fuzzie> but google has no copy of the thread, sigh
[19:35:05] <fuzzie> oh hey, i don't have to use google :D
[19:35:07] <fuzzie> yay
[19:37:19] <Avenger> yay!
[19:38:05] <Lightkey> yay?
[19:38:37] <Avenger> g3 is back
[19:42:01] <lynxlynxlynx> :)
[19:43:32] <Avenger> well i don't know how this poison stuff works, is param2 is set to 4, iesdp says: deal p3 damage every p1 seconds. But, it moves p3 to p2. And next time, if p2 is >4 it should crash. Obviously that doesn't happen.
[19:45:58] <lynxlynxlynx> iesdp was wrong about poison the last time we looked at it
[19:47:24] <fuzzie> ah, it is Turn() which depends on globalid
[19:47:35] <fuzzie> of the caster
[19:47:37] <Avenger> ahh, no, it doesn't overwrite p2, i mistaken two pointers :)
[19:48:11] <Avenger> ok, now i just have to see how it evaluates the recurrent damage data
[19:49:38] <Avenger> fuzzie, there is an idiv 15
[19:49:56] <fuzzie> on what, though? :)
[19:50:43] <Avenger> good question, it is a parameter of the recurrent damage function, so whatever calls it knows :)
[19:56:52] <fuzzie> heh
[19:58:15] <fuzzie> well, all that code would be really nice to have decoded
[19:58:41] <fuzzie> and i guess it has the round/turn times too, so we can look for the equivalent in pst/iwd2
[20:01:24] <Avenger> well, it is a parameter coming from compresstime
[20:01:31] <Avenger> 'elapsed whatever'
[20:01:55] <Avenger> compresstime(x) is a virtual function in the actor
[20:02:04] <fuzzie> and it compares the remainder of the idiv to something, or just checks if it is 0?
[20:02:05] <Avenger> i still have to find where it is called
[20:02:24] <Avenger> it divides x by 15
[20:02:46] <fuzzie> sure, but idiv puts a remainder in edx, i thought
[20:02:49] <fuzzie> so it can be either
[20:03:04] <Avenger> oh wait
[20:03:15] <Avenger> there is also a call where it is called by 1
[20:03:20] --> SiENcE has joined #GemRb
[20:03:27] <Avenger> that is when it calls without compresstime stuff
[20:03:39] <Avenger> so it is called every ticks, i guess
[20:12:31] <fuzzie> but then dividing that by 15 seems not so helpful :)
[20:13:51] <Avenger> i'm totally lost here
[20:14:01] <fuzzie> hehe
[20:14:21] <fuzzie> you have to draw one of those maps, like in text adventures
[20:20:48] <lynxlynxlynx> whew, beat sendai
[20:21:27] <lynxlynxlynx> and found another script problem in the end
[20:22:46] <tomprince_loki> Tracked down the SaveGame crash, another bad use of .get(). Also have a fix that makes them not be issues.
[20:22:50] <lynxlynxlynx> and a berserking bug
[20:23:14] <fuzzie> tomprince_loki: awesome
[20:31:44] <lynxlynxlynx> another thing to remove on death: display string effects
[20:32:16] <lynxlynxlynx> we also seem to be very inefficient with corpses
[20:32:23] <fuzzie> oh?
[20:33:02] <lynxlynxlynx> there's an area that keeps spawning derro's and it can make the game really slow
[20:33:35] <fuzzie> we probably do all kinds of stupid things
[20:33:46] <fuzzie> corpses are always drawn, etc
[20:34:01] <lynxlynxlynx> more on death stuff
[20:34:37] <fuzzie> maybe they have stuff in scripts?
[20:34:53] <lynxlynxlynx> maybe
[20:35:13] <fuzzie> but, yes, i delay true death because bugs in hibneration/etc make everything break otherwise
[20:35:17] <lynxlynxlynx> Avenger: does the original fx_detect_alignment (0x73) check for dead actors?
[20:35:21] <fuzzie> so you have a full actor until the scripts stop
[20:35:40] <lynxlynxlynx> ah
[20:36:27] <fuzzie> in theory we could fix that now, but that Dialog([PC]) is still broken
[20:36:38] <Avenger> lunx: i don't see any such check
[20:37:41] <fuzzie> if fx_detect_alignment runs on actors, shouldn't the projectile deal with dead actors?
[20:39:19] <CIA-26> GemRB: 03tom.prince * r1a24989323c8 10gemrb/gemrb/plugins/TLKImporter/TLKImporter.cpp: Fix mismatched malloc/delete (found using valgrind).
[20:39:22] <CIA-26> GemRB: 03tom.prince * rd2ae8dd68d83 10gemrb/gemrb/plugins/GUIScript/GUIScript.cpp: GUIScript: Fix .get() bug.
[20:39:29] <CIA-26> GemRB: 03tom.prince * r25e15781b27c 10gemrb/gemrb/core/Holder.h:
[20:39:29] <CIA-26> GemRB: Holder: Make Held start out unreferenced.
[20:39:29] <CIA-26> GemRB: This means that the pointer constructor can be called multiple times
[20:39:29] <CIA-26> GemRB: on one object without issue (e.g. the return value of Holder::Get can be
[20:39:30] <CIA-26> GemRB: passed to Holder(T*)).
[20:39:30] <CIA-26> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[20:39:32] <CIA-26> GemRB: 03tom.prince * r257ef540849a 10gemrb/gemrb/core/Holder.h:
[20:39:32] <CIA-26> GemRB: Holder: Add debugging for multiple ->release().
[20:39:32] <CIA-26> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[20:40:45] <fuzzie> hoorah for valgrind
[20:42:22] <tomprince_loki> fuzzie: or.cz/import has the commit that should (untested) fix the dict-merge bug.
[20:43:56] <fuzzie> thanks, i'll look at it .. tonight or tomorrow
[20:48:55] <fuzzie> i should look at the soundsource thing before trying to add ambients to sdlaudio, i guess
[20:50:15] <fuzzie> hopefully with two implementations, it'll be easier to work out which design works
[20:53:28] <CIA-26> GemRB: 03tom.prince * rcfe11ca05331 10gemrb/gemrb/ (3 files in 2 dirs):
[20:53:28] <CIA-26> GemRB: SaveGame: Fix a potential use after free.
[20:53:28] <CIA-26> GemRB: This is never triggered by the current code, but if the python code is
[20:53:28] <CIA-26> GemRB: made more memory efficient, this could be hit.
[20:53:28] <CIA-26> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[20:54:04] <fuzzie> memory-wise, after that savegame thing was leaked, it's all about the tiles
[20:54:21] <lynxlynxlynx> the spell for detecting alignment uses an original projectile, but that one spawns a hardcoded one, so maybe the problem is there
[20:54:32] --> Avenger_ has joined #GemRb
[20:54:34] <fuzzie> oh, and some BAM user which is making non-BAM Sprite2Ds
[20:54:46] <fuzzie> i'm not sure which that is, but it needs to die
[20:55:30] <-- Avenger has left IRC (Disconnected by services)
[20:55:39] --- Avenger_ is now known as avenger
[20:55:46] --- ChanServ gives channel operator status to avenger
[20:56:54] --> Gekz_ has joined #GemRb
[20:57:03] <fuzzie> hmm, that is not quite accurate
[20:58:01] <-- Gekz has left IRC (Read error: Operation timed out)
[20:58:02] <-- deepinthewoods has left IRC (Ping timeout: 252 seconds)
[20:59:04] <avenger> hmm in the malloc mismatch it would have been better to replace delete with free :)
[20:59:20] <fuzzie> why?
[20:59:24] <fuzzie> i mean, we use both all over the place
[20:59:32] <avenger> new/delete is one layer more
[20:59:41] <fuzzie> well, if your compiler is silly :)
[21:00:02] <fuzzie> but i hope that even vc++ is cleverer
[21:00:06] <avenger> i don't know if there is any non-silly one
[21:00:47] <fuzzie> i think almost all the new code i saw just does allocation directly from the default new operator, no extra layer
[21:01:04] <-- Maighstir has left #GemRb
[21:01:50] --> deepinthewoods has joined #GemRb
[21:03:00] <fuzzie> this use of 'vector' for biffiles in KEYImporter is also terrible
[21:03:12] <fuzzie> but i guess a reserve(BifCount) would fix that
[21:04:24] <fuzzie> ah, i guess this was tomprince_loki
[21:04:30] --> Maighstir has joined #GemRb
[21:05:28] <fuzzie> and it needs a bit more thought, probably a malloc
[21:07:12] <fuzzie> WMPImporter probably also shouldn't load 5mb of MOS files
[21:09:00] <fuzzie> is that a recent change? i'm not familiar with the image code any more
[21:10:43] <fuzzie> no, i guess it's always been like that
[21:11:25] <fuzzie> git firmly blames Balrog for a change
[21:12:04] <fuzzie> Bioware go to all this effort to make it not suck like this, and gemrb mangles it into a 32bpp image :)
[21:15:16] <avenger> hmm opcode 03 Berserk, affects only pc's
[21:15:25] <lynxlynxlynx> awesome!
[21:15:46] <lynxlynxlynx> in a limited way
[21:15:49] <avenger> it is very strange
[21:16:07] <lynxlynxlynx> sendai's lair is full of actors capable of berserking
[21:16:35] <lynxlynxlynx> so you get constant spam of the start/end berserking warnings
[21:17:56] <Lightkey> btw Bioware..
[21:18:13] <avenger> but if they are totally unaffected, what is it for..
[21:18:45] <avenger> how and bg2 all make the berserk opcode disabled for non pc, iwd2 allows it, but has some checks in the end
[21:19:07] <avenger> i guess iwd2 omits the message, but i cannot check that now
[21:20:43] <lynxlynxlynx> oh, it's simple
[21:20:58] <lynxlynxlynx> at least in bg2, the innate grants all the bonuses separately
[21:22:09] <avenger> is that an npc special or available for players
[21:22:32] <lynxlynxlynx> available for players - berserker fighter kit
[21:22:41] <avenger> ah i see
[21:22:53] <lynxlynxlynx> but then it would still display those silly strings
[21:22:56] <avenger> well, you can easily add the check
[21:23:17] <avenger> ok, i'll see how displaystring works
[21:23:21] <avenger> it uses displaystring, right?
[21:23:34] <lynxlynxlynx> yes
[21:24:45] <lynxlynxlynx> / this effect sets the STATE_BERSERK bit, but bg2 actually ignores the bit <-- current comment heh
[21:27:39] <lynxlynxlynx> maybe it's different in how
[21:28:07] <lynxlynxlynx> but how doesn't have kits, so it would just be a relic
[21:29:05] <avenger> well, maybe test if displaystring works for npcs at all
[21:29:20] <avenger> the opcode itself seem to not care
[21:29:29] <avenger> so if it filters stuff out, it does deeper
[21:30:07] <avenger> the displaystring message is very ugly i'm too tired for it
[21:30:44] <avenger> see you later!
[21:30:46] <-- avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[21:30:46] <lynxlynxlynx> bye
[21:32:06] <-- SiENcE has left IRC (Quit: cya @all)
[21:32:39] <fuzzie> i can test things if people will explain to me
[21:32:45] <fuzzie> although maybe not right now
[21:47:16] <CIA-26> GemRB: 03lynxlupodian * r1625d4567f87 10gemrb/gemrb/plugins/FXOpcodes/FXOpcodes.cpp: fx_set_berserk_state: break out of the effect if it's not for iwd2
[22:07:54] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[22:22:13] <Lightkey> GDC Europe, there may be an English article somewhere but I am too lazy to search, so here just in short, for the 10 year anniversary of BG2, Greg Zeschuk and Ray Muzyka talked about how it started, nobody of the ~60 developers had ever finished developing a game before, their Lead Technical Artist had never used a computer before but they chose him because they heard he could carve beautiful wooden ducks and deducted that he could w
[22:22:34] <Lightkey> not for quitters :-)
[22:22:45] <Lightkey> did it cut off?
[22:23:59] * Lightkey prods fuzzie *prod* *prod*
[22:24:05] <Lightkey> :>
[22:28:43] <tomprince_loki> It did get cut off. An english link was posted earlier today.
[22:29:20] <Lightkey> d'oh
[22:30:38] --> Micru has joined #GemRb
[22:33:58] <Lightkey> I don't bother reading up lately because it is just way too much talk but I do not see any related link from the last day
[22:34:08] <Lightkey> and where did it cut off?
[22:34:51] <Lightkey> Micru: gruezi
[22:35:11] <Micru> GrĂ¼esse wohl!
[22:35:17] <Micru> :)
[22:35:30] <-- Maighstir has left #GemRb
[22:41:14] <fuzzie> Lightkey: you know there's a link to logs in the channel topic? :)
[22:42:18] <Lightkey> what for? I set my irssi buffer to several thousand lines
[22:42:36] <fuzzie> you can see where you got cut off
[22:42:47] <Lightkey> d'oh2
[22:43:26] <fuzzie> (sorry, not paying attention, obviously..)
[22:43:30] <Lightkey> I thought you meant for the link
[22:47:00] <Lightkey> the RPS Baldur's Gate not forgotten?
[22:47:18] <Lightkey> seems like golem.de was a day late then
[22:50:14] <Lightkey> that he could wrap his head around 3D very well, everybody did something unusual from time to time, like the original cover of Baldur's Gate was done by the lead programmer in his spare time, they intended to make a MMOG but decided it was too soon and ditched the idea
[22:51:10] <Lightkey> but they wanted to use DirectX, even though it was only at version 3 then, so the first version of Baldur's Gate actually was based on the demo version of Astroids included in DirectX, Greg Zeschuk was angry that Baldur's Gate 2 and its expansion was so big, he thinks they should have made a third game out of it instead but he says there will be no Baldur's Gate 3 because the story was wrapped up nicely
[22:51:24] <Lightkey> that's all, nicely redundant :p
[22:52:34] <fuzzie> :)
[22:53:00] <Micru> fuzzie, could you please take a look to this? --> http://pastebin.ca/1919722
[22:54:01] <Micru> it seems to me that it is working fine, but i don't know if i should close the file and if i should free the mallocs
[22:56:28] <-- tomprince_loki has left IRC (Read error: Connection reset by peer)
[22:56:38] <fuzzie> hum
[22:56:42] <fuzzie> pastebin.ca has an AAAA address
[22:56:58] <fuzzie> and yet doesn't respond on it
[22:57:05] <fuzzie> v.helpful
[22:58:13] --> tomprince_loki has joined #GemRb
[22:58:20] <Micru> an AAAA address??
[22:58:44] <fuzzie> ipv6
[22:59:17] <Micru> already?
[22:59:24] <fuzzie> that is a bit of an overcomplicated way to do the 2da thing\ :)
[23:00:03] <Micru> i couldnt use the standard way, so... :)
[23:01:47] <fuzzie> well, i know about the paths thing
[23:02:25] <fuzzie> but there's actually a much easier way to do this
[23:02:28] <fuzzie> i wish i'd thought about this earlier
[23:03:14] <fuzzie> you can make your own 'ResourceManager' there, call AddSource on it with your manual path, and then call GetResource on it
[23:03:59] <Micru> :-O
[23:04:20] <fuzzie> this is new, tomprince added it recently
[23:04:25] <Micru> and you say my way of doing it is complicated? :P
[23:04:28] <Micru> ok
[23:04:59] <Micru> that means... rewrite! :D
[23:05:23] <fuzzie> well, kinda
[23:05:43] <fuzzie> you do your PathJoin, but without the filename
[23:06:17] <fuzzie> then have a ResourceManager on the stack, say 'ResourceManager rm', and do something like rm.AddSource(path, "shared GemRB Override", PLUGIN_RESOURCE_DIRECTORY);
[23:06:50] <fuzzie> actually this doesn't really help so much :) it is just a little tidier
[23:07:13] <Micru> and then can i use queryfield?
[23:07:29] <fuzzie> the important bit is that you can do "PluginHolder<TableMgr> tm(IE_2DA_CLASS_ID);" and then "tm->Open( fs, true )"
[23:07:38] <fuzzie> and then you can use QueryField etc on this 'tm' object
[23:08:04] <Micru> i'm starting to see the light
[23:08:05] <fuzzie> and yes, you do want to 'delete fs;' at the end there
[23:08:12] <fuzzie> the ResourceManager doesn't actually help you, i guess
[23:08:40] <Micru> i think it will get even more complicated if i use it...
[23:08:54] <fuzzie> well, i guess one of us will tidy it up later
[23:08:59] <fuzzie> it is not important
[23:09:30] <fuzzie> and better you write the patch and we fix it, than we just end up rewriting your patch
[23:10:12] <fuzzie> why malloc the buffer, by the way?
[23:10:50] <Micru> it was just a try, i want to use the commented line
[23:11:20] <fuzzie> ok. commented line looks good.
[23:15:57] <fuzzie> i guess we should get rid of the other attempts at manual parsing in our engine, they are a bad example
[23:16:30] <fuzzie> and maybe write some docs on all this PluginHolder/ResourceManager/etc stuff
[23:17:22] <fuzzie> because it's really unhealthy for a project to have to rewrite stuff that contributors already tried to work on, should always try to help people finish their patches instead
[23:17:26] <Micru> that would help, it is not clear at first sight how it is all connected
[23:17:44] <fuzzie> but people get frustrated, and really it is our fault for not documenting it
[23:18:15] <Micru> anyway i'm going to invest time trying to understand it by myself
[23:18:47] <fuzzie> ok. if you look for that IE_2DA_CLASS_ID bit in GameData then you can see how 'normal' loading works
[23:19:16] <Micru> yes, that was my first attempt...
[23:19:46] <Micru> i think with your new instructions i could get that working
[23:19:46] <fuzzie> but i guess it is not clear that the 'DataStream' can just be a FileStream
[23:20:06] <fuzzie> the GetResource is maybe a bit too magic, coming from an inherited ResourceManager like that
[23:21:07] <fuzzie> but, well, good luck
[23:21:26] <Micru> thanks, good night!
[23:21:41] <-- Micru has left IRC (Remote host closed the connection)
[23:48:55] --> |Cable| has joined #GemRb