#gemrb@irc.freenode.net logs for 4 Sep 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[01:39:03] <-- Maighstir has left IRC (Quit: ~ Trillian Astra - www.trillian.im ~)
[04:47:56] --> raevol has joined #GemRb
[06:53:54] <-- raevol has left IRC (Quit: Leaving.)
[07:56:48] --> lynxlynxlynx has joined #GemRb
[07:56:48] --- ChanServ gives channel operator status to lynxlynxlynx
[09:49:00] <pupnik_> hi lynxlynxlynx
[09:53:27] --> Avenger has joined #GemRb
[09:53:27] --- ChanServ gives channel operator status to Avenger
[09:53:36] <Avenger> hello
[10:02:50] <pupnik_> hhuhu
[10:07:01] --> spike411 has joined #GemRb
[10:13:38] <-- spike411 has left IRC (Quit: Manga & anime pokec na Jabberu: manga.cz@conf.netlab.cz)
[10:15:40] --> SiENcE has joined #GemRb
[10:18:41] <-- pupnik_ has left IRC (Ping timeout: 276 seconds)
[10:36:06] --> pupnik has joined #GemRb
[11:20:23] --> barra_home has joined #GemRb
[11:51:01] <lynxlynxlynx> Avenger: here?
[11:51:07] <Avenger> yep
[11:51:34] <lynxlynxlynx> did you see the new bug report?
[11:51:42] <Avenger> no
[11:52:05] <Avenger> where is it
[11:52:07] <lynxlynxlynx> https://sourceforge.net/tracker/index.php?func=detail&aid=3059298&group_id=10122&atid=110122
[11:52:27] <lynxlynxlynx> the autosave triggers an assert
[11:53:25] <Avenger> it is an assertion in saving the actor headers in .gam ?
[11:53:38] <Avenger> very odd
[11:54:08] <fuzzie> that is why i added the asserts
[11:54:34] <Avenger> that means, the character block is not the size we expect
[11:54:36] <Avenger> hi fuzzie
[11:54:55] <Avenger> or the assertion is formulated wrongly :)
[11:55:05] <lynxlynxlynx> it works for us
[11:55:08] <Avenger> oh
[11:55:15] <fuzzie> the GAM code is pretty broken
[11:55:25] <Avenger> then it is a .gam version problem
[11:55:34] <fuzzie> for example, PutActor checks GF_SOUNDFOLDERS to see whether to write sound folders or not
[11:55:58] <fuzzie> but that is crazy, because that should be based on GAM version, not game flags!
[11:56:19] <Avenger> well, my plan was that the gemrb fileformat is versatile :)
[11:56:22] <fuzzie> i mean, i know, we are stuck with it for IWD
[11:56:43] <fuzzie> but it makes the code v.confusing to follow :)
[11:57:30] <Avenger> but why this bug happened in this error report
[11:57:42] <fuzzie> well, i don't test on 64-bit either
[11:57:59] <fuzzie> and i hear all these weird bugs from you, like polymorphing not working
[11:58:11] <Avenger> hmm
[11:58:22] <Avenger> i could reboot to linux and give it a try
[11:58:36] <fuzzie> so i wonder if i broke something on 64-bit?
[11:59:22] <fuzzie> well, i guess that is why lynx asked you :)
[11:59:58] <fuzzie> i am a bit buried deep in IDA Pro for another project
[12:00:13] <Avenger> it says: the pc header size is 0x160 (yeah, i'm in ida pro too)
[12:01:09] <Lightkey> aren't we all?
[12:01:30] <Lightkey> well, no
[12:01:35] <fuzzie> oh, wait
[12:01:40] <fuzzie> that bug report is from 0.6.2
[12:02:15] <Avenger> 0x160 is good
[12:02:18] <fuzzie> i wonder if something changed
[12:02:30] <fuzzie> Avenger broke the quickslots at some point, but that was after 0.6.2
[12:02:56] <Avenger> wjp changed something about the qslot counts too :)
[12:03:15] <fuzzie> yes, he fixed the quickslots ;)
[12:04:36] <fuzzie> the only thing i can think of is that it's a problem with my VersionOverride hack for bg2 chargen
[12:05:13] <fuzzie> yeah, i think it is
[12:05:33] <fuzzie> well, i don't know, but i don't understand how this int/python stuff works on 64-bit
[12:05:53] <Avenger> where is that
[12:06:21] <fuzzie> GemRB_CreatePlayer, GameData::LoadCreature and bg2/CharGen.py's CreatePlayer()
[12:06:55] <fuzzie> it does "int VersionOverride = -1", then LoadCreature takes that as an 'int' parameter and checks if it is -1 or not
[12:07:29] <fuzzie> the python documentation says it is ok, that 'i' takes an int
[12:08:09] <fuzzie> but i assume i missed something
[12:09:27] <Avenger> if it is bg2, then the version should be 2.0 or 2.1
[12:10:39] <fuzzie> this is "IE_CRE_V1_1"
[12:11:16] <fuzzie> because we need the large effects
[12:16:11] <Avenger> hmm, yes, maybe it is not the chr block size, but the offset difference
[12:16:21] <Avenger> from some saved cre size mismatch
[12:16:52] <fuzzie> the 'PutActor' there is only for the header
[12:18:14] <Avenger> yes, and it is right after the .gam header
[12:18:43] <Avenger> i wish i know what is the 'i' in that crash
[12:19:34] <fuzzie> my only possible guess would be that GF_SOUNDFOLDERS is set for bg2
[12:20:19] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[12:21:58] <fuzzie> v.strange.
[12:22:28] <Lightkey> your way of saying too :p
[12:28:35] <fuzzie> :)
[12:28:55] <fuzzie> you want to disassemble a fractal video decoder for me? :)
[12:29:06] <fuzzie> if not, i'll just continue going quietly mad over here
[12:32:29] <pupnik> does the video look particularly good when zoomed-in?
[12:33:35] <fuzzie> i think it is more of a "you look like a particularly foolish game developer, perhaps you'd like to buy our technology with FRACTALS in it, they're the future" kind of thing, as opposed to the fractals actually being useful
[12:34:25] <Lightkey> Rescue on Fractalus?
[12:35:11] <pupnik> i would expect a 'fractal' codec to generate more textures (and smooth curves) when zooming-in
[12:35:15] <fuzzie> if only
[12:35:37] <fuzzie> but i have no idea how it works, just that i have these video files and i would quite like to play them.
[12:35:56] <fuzzie> i accidentally wrote a game engine while doing it, but that has been known to happen.
[12:37:04] --> Avenger has joined #GemRb
[12:37:05] --- ChanServ gives channel operator status to Avenger
[12:37:24] <Avenger> i started a new game
[12:37:39] <Avenger> pressed quicksave, no assertion
[12:38:31] <Avenger> everything is fine
[12:38:47] <lynxlynxlynx> wait for imoen to join
[12:38:58] <Avenger> yes, that was done too
[12:39:04] <fuzzie> hum.
[12:39:06] <Avenger> cutscene save completed too
[12:39:18] <fuzzie> maybe we accidentally fixed it since?
[12:39:26] <fuzzie> or just different data files..
[12:39:36] <Avenger> i got my quicksave by console EndCutSceneMode()/Q
[12:39:46] <Avenger> but then i waited patiently for the cutscene autosave
[12:40:24] <lynxlynxlynx> try also 35d4f4dc5ba if you can change the revision easily
[12:40:36] <lynxlynxlynx> that's the 0.6.2 point
[12:41:05] <Avenger> well, if you tell me what to type, i can try to give it a shot
[12:41:16] <Avenger> i forgot already :)
[12:41:30] <lynxlynxlynx> you can type it? ok
[12:41:35] <lynxlynxlynx> git checkout 35d4f4dc5ba
[12:41:43] <lynxlynxlynx> then just rebuild
[12:42:20] <Avenger> recompiling
[12:42:31] <Avenger> brb
[12:42:32] <-- Avenger has left IRC (Quit: bye!)
[12:43:11] <lynxlynxlynx> err
[12:43:13] --> Avenger has joined #GemRb
[12:43:13] --- ChanServ gives channel operator status to Avenger
[12:44:30] <Avenger> is it a problem, when i see this: AnimationFactory nireg25 has refcount 115 ?
[12:45:11] <Avenger> nire is irenicus, how could that anim have 115 refcount O_o
[12:45:37] <fuzzie> it means it leaked
[12:46:07] <Avenger> yeah, i suspected that, i have a small list of leaks then
[12:48:21] <Avenger> well 0.6.2 seems to work too
[12:48:35] <Avenger> i wonder what version was used in the bugreport
[12:49:07] <lynxlynxlynx> git checkout master # to return you to the current head
[12:49:16] <Avenger> thanks
[12:49:17] <lynxlynxlynx> it says 0.6.2
[12:49:35] <lynxlynxlynx> and we've always leaked animations
[12:49:57] <Avenger> ok, it worked
[12:50:30] <Avenger> using: Linux Ubuntu 2.6.24-23-generic #1 SMP Wed Apr 1 21:43:24 UTC 2009 x86_64 GNU/Linux
[12:50:58] <fuzzie> so, bad/different data, i guess
[12:51:28] <Avenger> it was autosave in the first cutscene, so the only wrong thing could have been a corrupted default save game
[12:51:42] <fuzzie> hacked Imoen?
[12:51:59] <Avenger> well, i have fixpacked tob, if that means anything
[12:52:08] <Avenger> i don't know if they touched the base savegame
[12:52:15] <fuzzie> there are a few things which hack Imoen, i think, which would do it
[12:52:41] <Avenger> some embedded effects on her?
[12:52:48] <Lightkey> Avenger: wow that's old
[12:53:12] <Avenger> lightkey: my win xp is older :P
[12:53:35] <Lightkey> your Win XP still gets updates
[12:53:56] <Lightkey> ..I hope
[12:53:57] <Avenger> security updates? i get them for linux too
[12:54:17] <Lightkey> is that a LTS?
[12:54:22] <Avenger> yes
[12:54:25] <Lightkey> oh
[12:55:09] <Avenger> i didn't get the mental strength to upgrade to the most recent lts, so this is the previous
[12:55:48] <Lightkey> ah, there IS a newer LTS :p
[12:56:04] <Avenger> yes
[12:56:57] <Avenger> there was also windows vista and now windows 7 :)
[12:57:22] <Avenger> there is nothing wrong in skipping some and sparing some trouble for yourself
[12:59:16] <Avenger> ok, lynxlynxlynx / fuzzie, so what to do with the bugreport?
[12:59:31] <Avenger> suggest a git checkout/recompile and retry?
[12:59:46] <fuzzie> ask which mods are installed. :P
[13:00:31] <lynxlynxlynx> and tell him you couldn't reproduce it either
[13:03:30] <Avenger> mods could cause this? Hmm, you mean, someone dared to touch Imoen with v1 effects?
[13:04:38] <fuzzie> well, i have no idea what might cause this, it seems crazy
[13:04:59] <fuzzie> and weird effects would crash it later, in the CREImporter
[13:05:06] <Avenger> well, the assertion just spares some future, even more obscure problem
[13:05:12] <Avenger> yeah
[13:06:37] <Avenger> hey fuzzie, randomwalk is still broken?
[13:06:50] <fuzzie> well, we don't know how it works?
[13:07:00] <Avenger> heh, i'm pretty sure we do
[13:07:07] <fuzzie> well, *i* don't know how it works
[13:07:18] <fuzzie> just all this mumbled stuff about object matching and fields
[13:07:19] <Avenger> ok, i go back to ida pro, and tell you?
[13:07:59] <Avenger> the object matching and fields are only to make a group of randomwalking critters flock together
[13:07:59] <fuzzie> well, i am not going to get anything written at the moment, but if you put it in the irc logs, it will get done sometime :)
[13:08:09] <Avenger> they are more likely to walk towards the same spec, or such
[13:08:17] <fuzzie> well, there is some 'distance'-type stuff, it seems
[13:08:30] <fuzzie> to stop them from walking away from where they need to be for the scripts
[13:08:40] <fuzzie> i don't really care about the object matching itself
[13:08:55] <Avenger> there is a 'homelocation' i don't know if we honour that
[13:08:58] <Avenger> or even store it
[13:09:18] <Avenger> homelocation is where creatures got spawned, they get placed back to it after compresstime
[13:09:28] <Avenger> randomwalk handles this stuff too
[13:09:29] <fuzzie> ah
[13:09:37] <fuzzie> is homelocation the one which is changed by walk actions etc?
[13:09:45] <Avenger> no
[13:09:51] <fuzzie> i know some of the actions don't update the saved location
[13:09:58] <Avenger> yes
[13:10:07] <Avenger> they can 'walk away from home'
[13:10:14] <Avenger> but they get put back after compresstime
[13:10:29] <fuzzie> hmm, do you think that is in all engines?
[13:10:33] <Avenger> yes
[13:10:36] <fuzzie> pst has some "ReturnToSavedLocation"
[13:10:47] <Avenger> that's exactly what is written on the tin
[13:10:49] <fuzzie> which seems to return to the location *before* any randomwalk
[13:12:03] <fuzzie> i spent ages trying to work out where that 'saved location' came from before realising it was an internal field :(
[13:12:11] <Avenger> hmm, well, i'm not entirely sure about the saved location. Because the blackisle games got these fields stored in the creature
[13:12:25] <Avenger> in bg2 there is no location stored in the cre structure
[13:12:30] <fuzzie> this is not the iwd thing, which is some actual cre structure
[13:12:33] <Avenger> only in the area's actor headers
[13:13:39] <Avenger> well, i implemented ReturnToSavedLocation to use the cre fields
[13:13:50] <Avenger> it could be wrong
[13:13:57] <fuzzie> yeah, it is wrong, which is why i went researching
[13:14:11] <fuzzie> but sorry, not very relevant to bg2
[13:14:34] <Avenger> iwd2 returntosavedlocation (with stats)
[13:14:36] <Avenger> pst returntosavedplace
[13:14:43] <fuzzie> oh, hehe
[13:14:47] <fuzzie> i got the wrong name? :)
[13:14:50] <fuzzie> well, i mean the pst one
[13:14:52] <Avenger> hmm ok, looks like pst is using the homelocation?
[13:15:08] <fuzzie> they use it for things like crowds, so they can randomly walk around, and then their script can force them back to where they're *meant* to be when needed
[13:15:15] <fuzzie> it's very cool, really
[13:15:23] <Avenger> because it seems i somehow 'knew' iwd2 uses the cre fields :)
[13:15:40] <fuzzie> so, ok, that is neat to know
[13:15:45] <Avenger> but i wasn't sure about pst
[13:17:29] <fuzzie> so
[13:17:37] <fuzzie> you said the other day you found the scripting stuff
[13:17:48] <Avenger> yes
[13:17:52] <fuzzie> can you confirm that instants are executed immediately if the queue is empty, and put on the queue otherwise?
[13:18:02] <Avenger> no
[13:18:11] <fuzzie> so, maybe you can clarify it a bit more :)
[13:18:11] <Avenger> it seems everything is put on the queue first
[13:18:27] <Avenger> then in a separate method, it executes them
[13:18:36] <fuzzie> immediately?
[13:19:08] <Avenger> well, it could be, that after they are put on the queue, the queue execution is called
[13:19:12] <fuzzie> i am trying to work out how it works for things like held creatures: they don't even start running blocking actions, but they do run instants
[13:19:19] <Avenger> but one thing is sure: all actions are put on the queue
[13:19:30] <fuzzie> ok. meh. :P i have to scrap some code no
[13:19:31] <fuzzie> w
[13:19:55] <fuzzie> maybe a smarter question is: how is actsleep.ids handled?
[13:20:14] <fuzzie> i mean, i don't want you to look for that, i'm just wondering if you already know
[13:20:19] <Avenger> i don't know by heart, i gotta look at it now
[13:20:21] <fuzzie> because that is also a "special case" for a state, i guess
[13:20:42] <Avenger> i guess it is actions that work in sleep?
[13:20:48] <Avenger> didn't i mention it one day?
[13:20:59] <fuzzie> sure, i'm just wondering how it works
[13:21:16] <fuzzie> because i guess, the code which stops other actions from working, might also stop non-instants from running when held? :)
[13:23:15] <Avenger> i don't know, but i wanted to go back to ida anyway
[13:23:17] <-- Avenger has left IRC (Quit: bye!)
[13:26:20] --> Avenger has joined #GemRb
[13:26:20] --- ChanServ gives channel operator status to Avenger
[13:28:27] <Avenger> hmm i wonder how can i look for a defined operand like 'game.ACTSLEEP'
[13:29:10] <Avenger> i already found uses of it, and defined them, but finding them again is difficult, unless i know where they were
[13:30:18] <fuzzie> i just search for text
[13:31:06] <Avenger> but actsleep.ids is opened once, then the handle is stored in the game structure
[13:31:16] <Avenger> almost all ids/2da are opened in the beginning of the game
[13:31:44] --> barra_ has joined #GemRb
[13:34:31] <Avenger> btw, looking for strings is not too easy here, most strings are CStrings, that are constructed on startup
[13:34:41] <Avenger> so they are first copied from one place to another :)
[13:34:47] <fuzzie> i mean
[13:34:53] <fuzzie> you can search for text in the disasm listing, with ida
[13:34:58] <Avenger> hmm
[13:35:00] <Avenger> how
[13:35:00] <fuzzie> like 'mov eax, dword_xxx'
[13:35:07] <fuzzie> or, if you defined an operand, the operand
[13:35:10] <Avenger> can i look for 'game.ACTSLEEP' ?
[13:35:15] <fuzzie> just search->text or something
[13:35:32] <-- barra_home has left IRC (Ping timeout: 272 seconds)
[13:36:27] --> barra__ has joined #GemRb
[13:37:05] <Avenger> haha, ida warns me that i should use 'specialized commands' because text search is slow
[13:37:15] <Avenger> but none of those specialized commands seem to work
[13:37:27] <Avenger> so lets see the slow version
[13:37:57] <Avenger> cool, it can find the operand, right, it found the initialization already
[13:38:47] <Avenger> i found no command that quickly finds 'all uses of a given operand'
[13:39:04] <Avenger> ok, i found the part i wanted
[13:39:20] <Avenger> around 008E1A8B
[13:39:50] <Avenger> actsleep is truly associated with STATE_SLEEP
[13:40:11] <-- barra_ has left IRC (Ping timeout: 276 seconds)
[13:40:21] --> barra_home has joined #GemRb
[13:40:29] <SiENcE> hey. does IWD1 work with Addon?
[13:40:44] <SiENcE> i have a user reporting that all chars are transparent
[13:42:05] <pupnik> i dunno
[13:42:34] <Avenger> addon as in 'heart of winter' for iwd ?
[13:43:14] <-- barra__ has left IRC (Ping timeout: 276 seconds)
[13:43:27] <fuzzie> Avenger: honestly, i use the slow search for almost everything
[13:43:51] <Avenger> hehe fuzzie, nevermind, it is not that slow
[13:45:00] <Avenger> i have a bad news, though: the 'PerformLivingAction' virtual function is called by more than one virtual fxs of actor. This means, they execute actions differently (for example in cutscenes, or dialogs, etc)
[13:45:20] <fuzzie> mph :)
[13:45:34] <fuzzie> i wonder if it is easier just to wait some weeks and wait for you to have the whole exe decoded :)
[13:45:41] <Avenger> virtual fx: 0x78 which i called' executeactionandbreak' is one of those
[13:46:19] <Avenger> the other is 0x84 (the code tobex calls 'all scripting starts here')
[13:46:33] <Avenger> both are calling 0x7c
[13:46:46] <Avenger> which is the basic, single action execution
[13:47:17] <Avenger> most likely 'executeactionandbreak' is for cutscenes?
[13:47:46] <fuzzie> i have no idea, without context
[13:48:02] <Avenger> it is all the same for any scriptable
[13:48:20] <Avenger> 0x84 is very actor specific
[13:48:46] <Avenger> i mean, 0x84 of actor is special, 0x78 of actor is all the same like other scriptables
[13:49:55] --> barra_ has joined #GemRb
[13:52:49] <Avenger> did i already mention how panic/confusion/berserk is done? There is an action set up (strangely enough in global memory), if the actor's action is broken, it is loaded back as current action
[13:53:25] <-- barra_home has left IRC (Ping timeout: 240 seconds)
[13:53:27] <Avenger> most likely the global memory is set up at the beginning of the actor's ai processing, but i didn't find that
[13:54:03] <Avenger> i just see that this global memory is set up with those different panic actions
[13:57:40] <Avenger> hmm, i see a small list of actions that don't break the modal state, the rest do. (This is hardcoded)
[13:59:02] <Avenger> noaction, movetopoint, movetoobject, face, hide, smallwait, act99, movetopointnorect, followobjectformation, wait
[13:59:17] <Avenger> act99 is some move action too
[13:59:32] <Avenger> or wait... i forgot which ;)
[14:00:27] --> barra__ has joined #GemRb
[14:04:02] <-- barra_ has left IRC (Ping timeout: 276 seconds)
[14:06:27] <pupnik> hmm
[14:41:52] --> Aradesh has joined #GemRb
[14:42:38] <Aradesh> Hi, i have error with GemBR port for Dingux
[14:43:14] <Avenger> hi
[14:43:21] <Aradesh> In Icewind Dale 1 + Heart of winter the most of characters is transparent
[14:43:43] <Aradesh> someone is displayed
[14:44:02] <Avenger> did you start a new game, or loaded an original savegame, or an old gemrb save?
[14:46:14] <Aradesh> I start a new game with import the existing chars
[14:46:35] <Avenger> which characters are still visible?
[14:47:19] <Avenger> like, what about your party?
[14:47:45] <Aradesh> in tavern in left bottom corner (i dont know how his name :) ), some on the streets
[14:48:10] <Aradesh> i can do photos if need
[14:48:10] <Avenger> ok, i guess you meant a static tavern patron
[14:48:13] <Avenger> sure
[14:49:00] <Aradesh> wait a few minuts
[14:53:58] <Avenger> very odd, if you see fat barkeep or a partymember translucent, but the static sitting guys not translucent. They are all similar animations, clowncolored and uncompressed.
[14:55:17] <Avenger> their palettes are all the same
[14:55:46] <Avenger> i see them all fine
[15:03:16] <Aradesh> hm, i run GemBR on overclocked to 430 MHz processor, maybe all frames arn't drawing?
[15:04:21] <pupnik> hmm
[15:04:25] <Avenger> you see flickering?
[15:04:45] <pupnik> i don't see the party mouse-hover flickering of the green circles in bg2 btw
[15:04:51] <Aradesh> i just looked, and see what static chars are visible, only moved chars is transparent
[15:05:15] <Avenger> hmm
[15:05:28] <Avenger> maybe it is a display problem then?
[15:05:48] <Aradesh> maybe
[15:19:10] <Avenger> pupnik, you see the feet circle pulsating, if you hover over an unselected actor. You say you see this in other games, but not in bg2?
[15:20:19] <Avenger> it can be seen either by hovering over the portrait or the avatar
[15:20:33] <Avenger> i see them all fine
[15:23:31] <-- SiENcE has left IRC (Quit: cya @all)
[15:26:46] <pupnik> ok ok it's working now
[15:54:25] <Avenger> ok fuzzie, now i see the scripting code a bit better, v84 seems to be the real thing, but now i see the execution chain through the virtual functions
[15:54:43] <fuzzie> :)
[15:55:05] <Avenger> there is a big loop in v84, which is exited when the action is not an instant (or the queue is empty, or such)
[15:55:39] <fuzzie> but it works that out with the return value, not the table, right?
[15:55:48] <Avenger> it starts with getting the action from the queue head, decoding it (but it checks a lot of stuff)
[15:55:55] <Avenger> yes, return value
[15:55:58] <fuzzie> so it runs the action, which is too late for what i am looking for :)
[15:56:18] <Avenger> but the decoding stuff is doing stuff with tables
[15:56:51] <fuzzie> the actsleep table?
[15:56:55] <fuzzie> or just stuff like nodecode?
[15:56:57] <Avenger> its ~ first step is to see if the action (not yet decoded) is on actsleep
[15:57:13] <fuzzie> ok, that is a good sign :)
[15:57:17] <fuzzie> what happens if it is?
[15:57:46] <Avenger> it exits, without removing it from the queue
[15:57:51] <fuzzie> cool
[15:57:59] <fuzzie> is it possible the instants table is there too?
[15:58:01] <Avenger> it leaves currentaction intact
[15:58:34] <-- Aradesh has left #GemRb
[15:58:36] <Avenger> ok, you want me to leave the decoder fun and instantly return, or...
[15:59:12] <Avenger> because if it returned due to sleep, it goes back to v84's main loop, where it checks if the action is on the instant ids list
[15:59:30] <Avenger> but then the action is of course the 'no action'
[15:59:49] <Avenger> ok, lets say it successfully decoded the action, then it returns, and checks if it is on the instant list
[16:00:15] <Avenger> but at this point, it already executed the action
[16:00:24] <Avenger> and checks its return value
[16:01:38] <fuzzie> how does that make sense?
[16:01:40] <Avenger> so, actsleep is checked before the action is taken from the queue. Instant is checked after the action executed
[16:01:51] <fuzzie> i mean, why would it check the instant table after it already has a return result?
[16:02:17] <Avenger> it determines if it can execute the next action now, or has to break the loop
[16:02:25] <fuzzie> i guess it could do "printf("you put a blocking action in the instants table!"); abort();'..
[16:03:32] <Avenger> no, it is a bit complicated
[16:03:50] <fuzzie> but from memory, it copes fine with blocking actions in the instants table
[16:04:11] <Avenger> it can continue actions based on more than one return value :)
[16:04:42] <fuzzie> well, by the time you have a return value, i'm pretty sure it's too late
[16:04:54] <Avenger> if the action's return code is 0, it breaks, regardless of being on instant list
[16:04:56] <fuzzie> to get a return value you had to run the action, if you ran the action then you broke the scripts
[16:05:23] <Avenger> if the action's return code is 1, it checks instant
[16:05:32] <fuzzie> so i guess the code you're looking at is too late :(
[16:05:50] <Avenger> yes, itold you so
[16:05:54] <fuzzie> you did
[16:06:09] <fuzzie> still, that is interesting
[16:06:12] <Avenger> instant.ids is checked after the execution (maybe also before) but i returned from the function
[16:06:17] <fuzzie> i wonder why it would check afterwards?
[16:06:33] <fuzzie> this is all very useful
[16:06:36] <Avenger> as i said: the return value alone is not enough to continue the loop
[16:07:06] <fuzzie> you learn all these new things :)
[16:07:48] <Avenger> if return value is 0, it breaks anyway, if return value is 1 it breaks anyway too. Otherwise instant.ids decides
[16:08:12] <Avenger> except, leavearealua is considered as always on the list :)
[16:08:14] <Avenger> lol
[16:08:22] <Avenger> they handle leavearealua specially
[16:09:53] <Avenger> fuzzie: http://pastebin.com/GHR7M7iS
[16:11:37] <Avenger> doneblock is the return value from a blocking action when it ended, blocking is the return value when it is still running
[16:12:02] <Avenger> so, if an action is not blocking by its return value, it should still on the instant list, to be considered instant
[16:13:20] <Avenger> leavearealua is always non instant (it is probably some macro) because it always gets referenced when instant.ids is accessed
[16:19:47] <Avenger> btw, if the avatarremoval stat is set, there action queue is not executed
[16:20:38] <Avenger> also if timestop happens and you are not the timestop owner/notimestop stat is not set
[16:21:13] <Avenger> also when petrified/frozen
[16:21:24] <fuzzie> i guess avatarremoval is different in iwd, by the way?
[16:21:35] <fuzzie> i had to add it to the stats checked by our matching code
[16:22:20] <fuzzie> oh, right, of course it is different, it is changed by actions. never mind. :)
[16:22:53] <Avenger> also when dead
[16:23:20] <Avenger> hmm, fuzzie, from this i see, that once the actor is dead, no action is performed
[16:23:34] <Avenger> weird
[16:23:50] <Avenger> of course if it died during the instant loop, it is different
[16:24:09] <Avenger> it just doesn't start executing if it is dead now
[16:24:31] <Avenger> does that make sense, or i have to rephrase it :)
[16:24:41] <lynxlynxlynx> that would fix abazigal
[16:25:43] <Avenger> so, if it died during a loop of instants, it will execute all the instants, but once it returned from this loop, and v84 ever recalled, it will bail out without calling any execution again
[16:27:28] <Avenger> pausecaster/held stats ditto
[16:28:08] <Avenger> dialogpause stat is a bit different, EA is also checked for that
[16:28:47] <Avenger> evilcutoff guys (hostile to party) ignore the stat
[16:29:36] <fuzzie> huh, and this is bg2?
[16:29:39] <fuzzie> maybe there is some other run loop for death
[16:29:41] <Avenger> yes
[16:30:14] <Avenger> you say, you could see actions resume after a blocking action?
[16:30:16] <fuzzie> or the stat is set later
[16:30:26] <Avenger> like die + wait + some variable set ?
[16:30:27] <fuzzie> well, actions get newly queued after death
[16:30:44] <Avenger> would the variable be set?
[16:30:47] <fuzzie> but i guess what you mean is that it checks the stat
[16:30:53] <fuzzie> or the variable or whatever
[16:30:55] <Avenger> it checks the stat
[16:31:02] <fuzzie> and i guess it's quite possible that is done *after* the actions are started
[16:31:13] <Avenger> what is done?
[16:31:23] <fuzzie> the death scripts
[16:31:29] <Avenger> we talk about resuming blocking actions
[16:31:46] <fuzzie> well, you said "once the actor is dead, no action is performed"
[16:31:48] <Avenger> so, they are definitely about continuing after everything was hadled
[16:32:04] <Avenger> well,v84 is called once every ai cycle
[16:32:24] <Avenger> so, it is well after running any instants around the death event
[16:32:58] <Avenger> i just said that dead actors don't keep running their scripts for minutes
[16:33:42] <fuzzie> ok. i don't understand :)
[16:33:44] <Avenger> btw, there is a scriptable field (0x16) that seems to disable running scripts altogether
[16:33:58] <fuzzie> but i'll come back later and see
[16:34:00] <Avenger> ok, lets restart?
[16:35:23] <fuzzie> well, i don't remember what my research found about this
[16:35:31] <fuzzie> i thought blocking actions still ran fine on corpses, if they were queued when they died
[16:36:09] <Avenger> we need to check that again then
[16:37:10] <Avenger> from what i see, if the guy died during a rounds of instants (setglobal,kill myself, setglobal ....) then the last blocking action after the queue starts executing
[16:37:22] <Avenger> but it will never be revisited again
[16:37:55] <Avenger> it starts executing the last blocking action, but then exits the loop, and when v84 is recalled again, its state is surely set to 0x800
[16:38:43] <fuzzie> sure, but what happens if something else kills you?
[16:39:00] <fuzzie> that actor's death script is still going to run, and you're not running any action then
[16:39:42] <Avenger> if it happened before the call of v84, and the state is already set (i guess it is set in the ai cycle somewhere) then when entering v84, it will jump out very fast
[16:39:47] <fuzzie> but if you check state and death variables and etc in triggers, they return that you are dead
[16:40:01] <fuzzie> so they happen *first*
[16:40:31] <fuzzie> so it seems that you are saying that no actions in a death script will ever run :)
[16:41:01] <fuzzie> but i guess what is more likely is that they are handled elsewhere, or the state stuff is a hack
[16:41:07] <Avenger> yes, i see that if the guy is died from outside source, not a kill myself or such, then it is pretty dead
[16:41:46] <fuzzie> well, even then, you get a death effect message
[16:41:59] <fuzzie> so this stuff isn't done inside the action queue
[16:42:00] <Avenger> we know that kill myself applies an effect, so it would be delayed anyway
[16:42:25] <fuzzie> but it is the effect that does the actual death stuff, so the scripts run after the effect
[16:42:31] <Avenger> basically all deaths are messaged, so we got a chance
[16:44:13] <Avenger> i have to see where effects are in this stuff
[16:44:20] <Avenger> v84 is doing everything it seems
[16:44:38] <Avenger> it is what sets up the global memory for the panic action, i mentioned earlier ;)
[16:45:17] --> DrMcCoy has joined #GemRb
[16:45:21] <Avenger> i'm pretty sure it calls the effect updates too
[16:45:22] <DrMcCoy> Hej hej
[16:45:58] <fuzzie> more cross-contamination :)
[16:46:24] <fuzzie> we do still have some bugs which would be fixed by knowing how the death scripts work
[16:46:43] * DrMcCoy wants PST support!
[16:46:45] <DrMcCoy> :P
[16:47:05] <fuzzie> me too :(
[16:47:11] <fuzzie> i should fix the animation stances
[16:47:50] <DrMcCoy> fuzzie: Fix bigger resolutions in PST ;)
[16:47:53] <fuzzie> oh, i guess the death scripts are responsible for the crazy PS:T zombies too, but that is as usual my fault
[16:48:15] <DrMcCoy> Right now, it still wants to draw the menu at the original position, which does look strange :P
[16:49:03] <fuzzie> i guess you can probably fix that just by passing 640/480 to LoadWindowPack, but lynxlynxlynx is the expert
[16:49:43] <fuzzie> (that centres it)
[16:50:27] <fuzzie> so does kotor2 work in eos yet? :) there seem to be about 20 copies in every local game store, i guess someone found a warehouse full of them or something
[16:53:59] <DrMcCoy> lol
[16:54:08] <DrMcCoy> No, not yet :P
[17:10:38] <pupnik> what resolutions do you test gemrb with?
[17:11:56] <DrMcCoy> 1024x768
[17:12:12] <DrMcCoy> If you meant me, that is :P
[17:12:19] <pupnik> sure, ty
[17:12:54] <pupnik> i really wish the "select all party members" key, = would select familiars and summoned monsters too
[17:13:06] <pupnik> but is that original behavior?
[17:13:14] <Avenger> yes
[17:13:33] <Avenger> it should be relatively easy
[17:13:45] <pupnik> could that be added to gemrb.ini?
[17:14:05] <Avenger> it is the original behaviour, so it should be in the code
[17:14:23] <Avenger> there is no option needed
[17:14:29] <pupnik> yeah but one could add a few optional things that speed up testing/play
[17:14:38] <pupnik> but ok
[17:15:08] <Avenger> i doubt it would slow things down if = selects every friendly actor
[17:15:41] <pupnik> yeah i think it would be appreciated
[17:19:48] <Avenger> fuzzie: i found out a puzzling part about innate conversion :)
[17:20:28] <Avenger> it seems they convert some innates in tob, like spin105 is converted to spin203
[17:20:50] <Avenger> i didn't know why is it so complicated before, but now i see, they first count how many spin105 is in the book
[17:20:59] <Avenger> then it gives the exact same amount of spin203
[17:21:40] <Avenger> for some of the spells it counts how many of them in, removes them, then adds all the same back :)
[17:30:01] <lynxlynxlynx> they probably upgraded the innates to be useful in tob
[17:31:07] <lynxlynxlynx> horror -> cloak of fear
[17:32:09] <lynxlynxlynx> Spell Effect: Drop Weapons in Panic [264] <-- i doubt i saw this one in action
[17:39:12] <Avenger> lynx: i used that opcode :)
[17:39:41] <Avenger> i made a weapon that burnt the hand of the wielder and forced them to drop it (if they had wrong alignment)
[17:40:06] <lynxlynxlynx> nice
[17:40:13] <Avenger> it is better than setting the usability bit :)
[17:56:39] <pupnik> familiar doesn't follow me to next level in Nalia's keep
[18:01:13] <Avenger> that may be, put it in your pocket :)
[18:14:51] <pupnik> ok that works
[18:36:57] <-- Avenger has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716])
[18:39:27] --> raevol has joined #GemRb
[19:26:50] --> Maighstir has joined #GemRb
[19:46:16] <-- Maighstir has left IRC (Quit: ~ Trillian Astra - www.trillian.im ~)
[20:00:33] --> Maighstir has joined #GemRb
[20:02:30] --> Avenger has joined #GemRb
[20:02:31] --- ChanServ gives channel operator status to Avenger
[20:05:32] <Avenger> ok pupnik your dream came true
[20:05:50] <CIA-93> GemRB: 03avenger_teambg * ref5967d7a352 10gemrb/gemrb/ (5 files in 3 dirs): select all selects every controllable actor in the area
[20:08:48] <lynxlynxlynx> the NumCreatureVsParty changes are fine?
[20:32:42] <fuzzie> no
[20:33:03] <fuzzie> it's *all* creatures minus the party, right?
[20:33:38] <fuzzie> at the moment it takes all the EA_EVILCUTOFF and then subtracts the party count, it seems
[20:34:10] <fuzzie> i forget what Avenger said, counting everyone in the area and subtracting the size would be a bit silly if party members are elsehwere
[20:34:29] <Avenger> yes
[20:34:32] <Avenger> it is fine
[20:34:39] <Avenger> it is numcreatures - partysize
[20:34:53] <fuzzie> num evil creatures, or numcreatures?
[20:35:05] <Avenger> numcreatures
[20:35:11] <Avenger> i removed the evil hack
[20:35:14] <fuzzie> oh, i see, there were changes in Avenger's commit
[20:35:27] * fuzzie bops Avenger with the stick-o-commit-messages
[20:35:48] <Avenger> well, i just noticed that the hack is still in so i pulled it :)
[20:35:57] <Avenger> i forgot to add the commit note
[20:36:33] <Avenger> so, everything is fine? :P
[20:36:41] <Avenger> i'm afk then
[20:39:01] <fuzzie> all is fine
[21:16:15] --- Maighstir is now known as Maighstir|away
[21:55:41] --> D_T_G has joined #GemRb
[21:59:59] <D_T_G> Vaarglan's party in lonelywood casts some spells after starting dialog with hjollder and i think they shouldn't, or at least it shouldn't be visible
[22:01:07] <D_T_G> and my familiar does not follow me on stairs in bg2
[22:01:16] <D_T_G> i'll add that to wiki
[22:14:58] <-- Avenger has left IRC (Quit: bye!)
[22:16:18] <-- D_T_G has left IRC (Quit: D_T_G)
[23:00:52] <-- lynxlynxlynx has left IRC (Remote host closed the connection)