#gemrb@irc.freenode.net logs for 17 Jul 2011 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:00:44] <-- wirehead has left IRC (Remote host closed the connection)
[03:05:01] --> brad_a has joined #gemrb
[03:05:22] <-- brad_a has left IRC (Client Quit)
[03:30:02] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[03:31:16] --> duckpunch has joined #gemrb
[06:29:34] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[06:30:32] --> duckpunch has joined #gemrb
[07:26:18] --> brad_a has joined #gemrb
[07:26:32] <-- brad_a has left IRC (Client Quit)
[07:29:14] --> Avenger has joined #gemrb
[07:29:15] --- ChanServ gives channel operator status to Avenger
[07:29:22] <Avenger> hello
[07:38:15] <fuzzie> hi
[07:39:31] <Avenger> i see you implemented triggerwalkto, and also generate it as if it was used internally
[07:39:43] <fuzzie> well, i didn't
[07:39:45] <Avenger> i'm not sure about generation is good :)
[07:39:57] <Avenger> you as plural :D
[07:39:58] <fuzzie> but i mean, it is done like this in the original engine
[07:40:30] <Avenger> it seems like it is tob only
[07:40:35] <fuzzie> oh?
[07:40:40] <Avenger> yeap :)
[07:40:45] <Avenger> maybe not even bg2?
[07:40:51] <fuzzie> i dunno, i only REed bg2
[07:40:53] <Avenger> where is it used
[07:40:56] <fuzzie> but is it used in anything except ToB?
[07:41:09] <fuzzie> it's used for all clicks on TRAP_USEPOINT infopoints
[07:41:22] <Avenger> yes, that's my question now. because it is relatively in the end in the action list
[07:41:45] <fuzzie> it's important for the spirit summoning thing in the ToB pocket plane
[07:41:50] <fuzzie> i don't know if it's used anywhere else
[07:42:21] <fuzzie> 20:46 <fuzzie> the relevant code for traps does: trig_clicked, if (no target mode) { if (strref) showText; if (TRAP_USEPOINT) { GroupSetMoveToPoint(altX, altY); add action TriggerWalkTo } }
[07:43:05] <fuzzie> i missed out all the other stuff (like trap disarming, and moving to other types of traps), of course :P
[07:44:48] <fuzzie> but i think i didn't find any relevant use except that one, let me look
[07:45:09] <fuzzie> nope, wrong
[07:46:16] <Avenger> ok, that TRAP_USEPOINT flag is probably a good enough distinction for other engines :)
[07:46:21] <fuzzie> it does look ToB-only, but there are hundreds of uses of the WalkedToTrigger trigger..
[07:46:44] <Avenger> the question is, does it exist in bg2 action list ;)
[07:46:59] <Avenger> but even that isn't a real question, because it sure doesn't exist anywhere else
[07:47:11] <fuzzie> simple to check
[07:47:57] <Avenger> luckily lynx generates it only when that flag is set
[07:47:59] <fuzzie> and 329 isn't high enough to be ToB-specific, is it?
[07:48:06] <fuzzie> yes, well, the original engine does that too :)
[07:48:43] <Avenger> 324 SetBeenInPartyFlags()
[07:48:46] <Avenger> is the last
[07:49:01] <Avenger> so, no, it is too high
[07:49:09] <fuzzie> doesn't work in SoA, anyway
[07:49:40] <Avenger> ok, just make sure it won't crash
[07:49:42] <fuzzie> but neither does the flag, obviously, so all good
[07:50:07] <Avenger> actor->Addaction(Null) will not abort?
[07:50:15] <fuzzie> maybe, i don't know :P
[07:50:33] <fuzzie> it will not
[07:50:39] <fuzzie> will complain at you :)
[07:50:50] <Avenger> ok, thats fine
[07:51:07] <fuzzie> i hadn't thought of this at all, though, so thanks for commenting
[07:51:10] <Avenger> that is easily fixed by adding the line to action.ids
[07:51:20] <fuzzie> i don't mean to say "oh, i already thought of this", because i didn't :P
[07:51:40] <fuzzie> (and i did OK lynx's patch, looked fine)
[07:52:08] <Avenger> yeah, yesterday when i saw it, i thought whoa, i still didn't implement something, i'm happy the guys are on spot :)
[07:52:18] <fuzzie> hehe
[07:52:23] <Avenger> but today when i woke up, i started to think about the GenerateAction
[07:52:27] <fuzzie> :D
[07:52:51] <fuzzie> i should really implement the rest of the AI loop
[07:53:04] <fuzzie> and i should find a way to get you to look into the misplaced VVCs :P
[07:53:18] <Avenger> hmm
[07:53:59] <fuzzie> i get distracted every time i go through Spellhold's soul-stealing sequence, because all the anims on the people in jars are misplaced, but there's no flags set or anything
[07:54:41] <Avenger> no flag in the vvc used?
[07:55:11] <fuzzie> nothing interesting is set (no 'use height map', for example)
[07:55:18] <fuzzie> i forget what it is, though, so i'm not helpful here
[07:55:39] <fuzzie> oh dear, i still have 10 pages full of CharAnimations notes, too
[07:55:40] <Avenger> it may be a reverse flag anyway :)
[07:56:14] <Avenger> like: if the flag is not set, you have to subtract the height :)
[07:56:32] <fuzzie> yes, i just thought you might have more of a clue than I do :P
[07:57:46] <Avenger> not really, i'm always confused by these boolean conditions
[07:58:11] <Avenger> usually i just guess it by the context
[07:58:29] <fuzzie> ah, i have a sheet pinned to my wall with a printout of some list :P
[07:58:32] <Avenger> i should learn how jz/jnz etc work :)
[07:58:42] --> paolochiodi has joined #gemrb
[07:58:58] <Avenger> i know the basic cases, like this:
[07:59:02] <Avenger> .text:0047956D D30 mov cl, ds:scr_actor
[07:59:04] <Avenger> .text:00479573 D30 cmp eax, ecx
[07:59:05] <Avenger> .text:00479575 D30 jnz loc_479699
[07:59:10] <Avenger> jumps when cl is not actor ;)
[07:59:17] <Avenger> err al
[07:59:40] <Avenger> but i get confused sometimes
[07:59:52] <fuzzie> it is the 'Intel x86 JUMP quick reference' but i suppose it depends on you knowing which flags are set
[08:00:09] <paolochiodi> hi, where can i found info about creating gemrb.cfg?
[08:00:21] <Avenger> do you have one with comments?
[08:00:42] <Avenger> the original cfg comes with comments
[08:01:22] <paolochiodi> oh, just found gemrb.cfg.sample
[08:01:27] <paolochiodi> thank you
[08:02:09] <Avenger> if something is unclear, just ask
[08:02:49] <Avenger> i wonder if this thing works: http://gemrb.sourceforge.net/wiki/doku.php?id=launcher
[08:08:50] --> test32894789234u has joined #gemrb
[08:09:15] <-- paolochiodi has left IRC (Quit: paolochiodi)
[09:07:03] <Avenger> fuzzie do you have the ida db near you? i'm curious what do you know about the function at 006B91DF
[09:08:44] <Avenger> oh, i see now what it does :)
[09:16:12] --> mozvip has joined #gemrb
[09:16:25] <mozvip> hello
[09:16:47] <Avenger> hello
[09:17:26] <mozvip> I've been busy creating a windows build this morning, the build is fine, but then I have 2 issues
[09:17:36] <mozvip> BG1 cannot load a save
[09:17:44] <mozvip> BG2 crashes at startup
[09:18:00] <mozvip> I don't know if the current GIT is stable enough ?
[09:18:04] <Avenger> any log you see?
[09:18:07] <mozvip> yes
[09:18:45] <Avenger> well, start the game with what you need more :)
[09:18:56] <mozvip> last log for BG2 before it crashes is : ResourceManager : Searching for cursors.bam... [chitin.key]
[09:19:05] <Avenger> hmm, that shouldn't crash
[09:19:07] <mozvip> and the cache folder contains an empty cusors.bam
[09:19:11] <Avenger> oh
[09:19:20] <Avenger> do you have enough space?
[09:19:23] <mozvip> anything related to the zlib i'm using ?
[09:19:30] <mozvip> yes plenty of space
[09:19:36] <mozvip> and running as admin in win7
[09:19:38] <Avenger> that's quite odd
[09:19:57] <Avenger> tried to clear the cache and start again?
[09:20:20] <Avenger> we didn't change anything recently about resource managing, and it worked for me
[09:20:38] <Avenger> there is no other weird thing before that?
[09:20:48] <Avenger> like it cannot compile/load the zlib plugin?
[09:20:56] <mozvip> Similar thing for BG1 saves : when loading: stuck with Core : No game to enter, and cache contains an empty ar2600.are file
[09:21:07] <Avenger> well, the bug should be the same :)
[09:21:12] <mozvip> yes
[09:21:13] <Avenger> it cannot unpack files
[09:21:40] <Avenger> hmm, this is a new compilation
[09:21:48] <Avenger> so, maybe you don't compile all the new fancy plugins
[09:22:00] <mozvip> yes maybe
[09:22:05] <Avenger> tomprince made some new ones :)
[09:22:18] <mozvip> I used cmake
[09:22:40] <Avenger> there is a new directory importer plugin
[09:22:48] <Avenger> well, not so new
[09:23:08] <Avenger> i count 40 plugin dll's
[09:23:33] <mozvip> I have 41 in my plugins folder
[09:23:42] <mozvip> I have DirectoryImporter.dll as well
[09:23:56] <Avenger> hmm, 41
[09:24:29] <Avenger> i don't compile sdlaudio, maybe that's the missing one :)
[09:24:38] <mozvip> yes
[09:24:42] <mozvip> probably
[09:24:44] <mozvip> I have it
[09:25:05] <Avenger> all your plugin dll's got the new timestamp?
[09:25:48] <mozvip> yes
[09:25:50] <mozvip> all brand new
[09:25:55] <Avenger> heh, really odd
[09:26:06] <mozvip> I'll try with some other zlib versions
[09:26:10] <mozvip> I used 1.2.5
[09:26:25] <Avenger> but there should be more messages in the log
[09:26:34] <Avenger> it shouldn't just leave a 0 length file there
[09:26:38] <Avenger> without a reason :)
[09:27:12] <Avenger> this is the point where i would start debugging
[09:28:07] <mozvip> let me check
[09:36:35] <fuzzie> you have to set GameOnCD to 0
[09:36:39] <fuzzie> (or not set it)
[09:37:09] --> paolochiodi has joined #gemrb
[09:37:30] <paolochiodi> is there a precompiled version for mac?
[09:39:18] <Avenger> i don't think so
[09:41:55] <mozvip> super strange: I have the exact same issue with the 0.6.4 binary on sourceforge : empty files in cache
[09:44:06] <Avenger> do you have some super duper antivirus tool that wouldn't let gemrb to create the file?
[09:44:31] <mozvip> nice idea, I have Microsoft security essentials, let me disable it
[09:44:44] <Avenger> well, it is just a last guess idea :)
[09:45:17] <Avenger> i cannot imagine it would let us create the 0 length file but then wouldn't let us write in it
[09:45:50] <Avenger> normally this means the filesystem is full :)
[09:46:13] * fuzzie mumbles about GameOnCD again
[09:46:14] <mozvip> no luck :( same thing still happens
[09:46:27] <mozvip> GameOnCd is commented in my cfg file
[09:46:36] <fuzzie> ok, then it's weird :P
[09:47:21] <mozvip> I even copied my gemrb to another drive (500Gb free!), changed the access rights, tried with admin / no-admin, ...
[09:47:33] <fuzzie> and zlib is the likely culprit i guess
[09:47:37] <mozvip> yes
[09:48:09] <Avenger> fuzzie: he tried with the downloadable binary, and it works for me
[09:48:14] <Avenger> it contains zlib
[09:48:31] <mozvip> anyway thanks for your time guys, I'll investigate some more and will let you know !
[09:49:01] <mozvip> I running win7 64bits btw
[09:49:50] <Avenger> meeh fuzzie, traps don't reset now
[09:50:03] <fuzzie> yes, people keep breaking that code
[09:50:21] <Avenger> i knew it will be broken your hack kept it together :D
[09:50:24] <fuzzie> and someone, i think you, split it into two files, so it's unreadable too :P
[09:50:44] <Avenger> i rarely split stuff :D
[09:51:42] <fuzzie> it sez, "small cleanup after the explosion of ActorBlock" :P
[09:52:13] <Avenger> ok, that was me, i just moved a piece after the split
[09:53:05] <fuzzie> it looks fine though
[09:53:30] <Avenger> let me find an easy trap to demonstrate
[09:53:43] <fuzzie> oh, it doesn't
[09:53:43] <Avenger> currently i see this in the second trial in the pocket plane
[09:53:52] <fuzzie> well, there's some IF_INTRAP hack in there
[09:55:16] <fuzzie> so i'm not sure i understand this
[09:55:37] <fuzzie> but they don't reset at all? that's weird
[09:55:41] <fuzzie> does debug info say it's still trapped?
[09:57:49] <Avenger> the first trap in irenicus dungeon, the wall cache, is also not reset
[09:57:55] <Avenger> lets see if the original resets
[09:58:09] <fuzzie> for the wall cache? i doubt it
[09:58:14] <fuzzie> why would it?
[09:59:00] <fuzzie> the room near the end of the irenicus dungeon with the big traps all the way across the room, those traps reset
[09:59:05] <Avenger> ah ok it doesn't
[09:59:23] <Avenger> the wand traps?
[09:59:27] <fuzzie> yes
[09:59:34] <fuzzie> they should run once every time you walk into them
[09:59:47] <Avenger> ahh, ok
[10:00:09] <fuzzie> i haven't checked them recently, though, i just suggest them as a good test
[10:00:27] <Avenger> ok, the problem is, the trap always fires ;) But the wall cache behaves like that in the original too
[10:02:45] <Avenger> ok, i found a trap which fires only once, lets see in gemrb
[10:05:07] <Avenger> well, actually this works
[10:05:20] <Avenger> then the problem is something else
[10:05:46] <Avenger> lets see how the original works in the pocket plane
[10:10:59] <fuzzie> it is a container trap? i didn't check those, i think
[10:11:21] <-- paolochiodi has left IRC (Quit: paolochiodi)
[10:40:01] <Avenger> container traps are ok, i think the problem is if you stay inside a trap
[10:40:39] <fuzzie> but that shouldn't repeat, right?
[10:40:47] <Avenger> also, it seems gemrb still doesn't store the save games in the same place as the original
[10:40:52] <Avenger> yes, the problem is it repeats
[10:41:00] <fuzzie> in gemrb?
[10:41:05] <Avenger> yes
[10:41:11] <fuzzie> well, this is the IF_INTRAP hack, i guess
[10:42:15] <Avenger> ohh
[10:42:18] <fuzzie> the original uses the field you mark as 'blur2' to mark the last position where a trap triggered
[10:42:33] <Avenger> this is actually something else :) not strictly trap related
[10:42:44] <Avenger> the second trial has 2 different scenes
[10:42:47] <fuzzie> but i thought our IF_INTRAP mostly worked :)
[10:42:49] <Avenger> one is a hell/lava scene
[10:43:04] <Avenger> the other is a lush plant scene
[10:43:07] <fuzzie> problems with deactivating the heal triggers or something?
[10:43:21] <Avenger> the lava works in the plant scene, i think
[10:43:26] <fuzzie> i hate those stupid heal regions in the original, super buggy
[10:43:50] <fuzzie> but the lava should be disabled using TriggerActivate?
[10:44:04] <Avenger> yes, it seems it wasn't
[10:44:11] <Avenger> or the scenery was switched incorrectly
[10:44:38] <fuzzie> do they have the 0x800 (door link) flag?
[10:45:07] <Avenger> hah, it would be interesting
[10:45:10] <Avenger> let me see
[10:45:27] <Avenger> the scenery is done by a door?
[10:45:31] <fuzzie> yes
[10:46:06] <Avenger> the scenery changes based on if you feel you have a debt towards sarevok or not?
[10:46:19] <fuzzie> i have no idea
[10:46:29] <fuzzie> when i played, i got the hell/lava scene for the challenge, then the lush plant scene after i won
[10:46:30] <Avenger> it looks like it starts as lava if you feel you got a dept
[10:47:06] <fuzzie> and the whole thing is door tiles
[10:47:18] <Avenger> ok, actually,i might be mistaken
[10:47:20] <fuzzie> so i thought, well, the walking-into-region code does check INFO_DOOR.. :)
[10:47:30] <Avenger> i cannot reproduce the state i think i experienced
[10:47:37] <fuzzie> gemrb's doesn't, i have no clue how if we deal with it at all
[10:47:54] <Avenger> the heal regions work with the oasis scenery
[10:47:58] <Avenger> at least, now :)
[10:48:09] <fuzzie> oh right, linked infopoints
[10:58:03] <Avenger> well, maybe i was just confused
[10:58:51] <Avenger> the bug about saved game locations still exist ;)
[11:00:22] <Avenger> oops, and one of those spell bouncer overlays remain in death
[11:01:01] <Avenger> fx bounce projectile
[11:01:56] <Avenger> the original opcode also doesn't go away on its own, maybe something else removes it
[12:58:29] <mozvip> hi ! FYI : All my problems were resolved by switching back to zlib 1.2.3
[12:59:40] <fuzzie> what did you use before?
[13:00:25] <mozvip> 1.2.5 from zlib.org
[13:01:09] <mozvip> I recompiled with 1.2.3 from gnuwin32.sourceforge.net : all problems gone
[13:04:12] <fuzzie> you used the compiled dll?
[13:05:40] <mozvip> yes
[13:05:55] <mozvip> In both cases I used the precompiled dlls
[13:06:53] <fuzzie> there's a note on the mailing list about the zlib.org zlib dll only working if you build with visual studio 2010
[13:07:13] <mozvip> strange, that's what I used to build
[13:07:37] <fuzzie> and since that seems to be caused by the C library, i guess only if you build everything with the release dll runtime
[13:08:07] <fuzzie> but if it works for you now, great, will have to remember in case anyone else has the same issue :)
[13:09:05] <mozvip> yes, It's now working just fine, with zlib 1.25 bg1 was working but generated bad saves that cannot be loaded again, and bg2 was crashing on startup
[13:09:15] <mozvip> thanks again for suggestions!
[13:18:48] <Avenger> heh, it is good you were persistent :)
[14:04:23] <-- mozvip has left IRC (Quit: Page closed)
[14:17:08] --> mozvip has joined #gemrb
[14:21:59] <-- mozvip has left IRC (Client Quit)
[14:54:19] <Avenger> fuzzie, do you know what is in actor offset 35fe?
[14:55:16] <Avenger> or... maybe better if you somehow give me a new actor struct listing :) i already noticed i didn't know the dialogwait field
[14:55:37] <Avenger> or... maybe a message listing :)
[14:57:54] --> mozvip has joined #gemrb
[15:01:23] <fuzzie> don't have a message listing :P
[15:01:37] <Avenger> oh, not even a mixed list?
[15:01:45] <fuzzie> i just went by your names
[15:01:57] <Avenger> i still have many unknown messages
[15:02:02] <fuzzie> i will wait for IDA to load now
[15:02:16] <fuzzie> it does not like your huge db very much :P
[15:02:36] <Avenger> hehe, it is just bigger by now
[15:02:46] <fuzzie> although the VM probably only has 450mb RAM or so
[15:02:57] <Avenger> 116M
[15:03:19] <Avenger> huh, that's not too much
[15:03:31] <fuzzie> my idb is 140mb now
[15:03:48] <Avenger> meh, then you got lots of data i don't have
[15:04:06] <Avenger> or you just don't save with garbage collection :P
[15:04:40] <fuzzie> i have nothing for 35fe
[15:05:10] <Avenger> pfft
[15:05:31] <fuzzie> any hint as to where it's used? :P
[15:06:33] <Avenger> i see some cutscene/dialog stuff around it
[15:06:47] <fuzzie> i mean, some loc :)
[15:08:23] <fuzzie> oh it's one of those fields
[15:08:29] <Avenger> aa7458 is the vtab
[15:08:33] <Avenger> for the message
[15:08:35] <fuzzie> the stupid 'if (field_35FC > 0 || field_35FE > 0)' checks
[15:09:13] <fuzzie> the AI loops clear triggers if that condition is met
[15:09:30] <fuzzie> and both field_35FC and field_35FE are decremented every time a full AI update is done
[15:09:53] <Avenger> these seem to be .. ah yes, just found that
[15:09:55] <fuzzie> and field_35FE is set to 0 if the action queue is empty
[15:10:01] <Avenger> at 008E8526
[15:10:49] <Avenger> it seems to be delaying the stat update?
[15:11:09] <fuzzie> it pauses processing of various things
[15:11:40] <Avenger> oops wait, that var_10 is not affected by them
[15:11:59] <Avenger> i still have to see where their value actually counts
[15:12:18] <fuzzie> there's a few checks of both of them in the actor ai update func
[15:12:38] <fuzzie> can't give you locs, because i'm going by paper notes as usual
[15:12:45] <Avenger> ahh here, before executetrigger, this must be the double if you just mentioned
[15:12:50] <Avenger> 008E98E6
[15:13:29] <Avenger> so this is the one_per_turn for triggers thing?
[15:13:43] <fuzzie> they are both set to 0 at the end of the every-16-ticks action update, btw
[15:14:49] <Avenger> ok, so they are mostly some script timing stuff
[15:14:53] <fuzzie> and 0xc4 on the vtable is called, but i don't know what that is
[15:15:02] <Avenger> vtable of who?
[15:15:12] <Avenger> actor?
[15:15:27] <fuzzie> yes
[15:15:37] <Avenger> that is disrupt casting
[15:15:43] <fuzzie> it is not :P
[15:15:47] <Avenger> at least i named it that
[15:16:08] <fuzzie> ah right, it is what they called ProcessPendingTriggers
[15:16:10] <Avenger> it is what checks edwin
[15:16:27] <Avenger> and the uninterruptable mc flag
[15:16:39] <fuzzie> it does the actual script update :)
[15:16:49] <Avenger> hmm
[15:16:54] <fuzzie> or, well, it checks a bunch of things and calls CGameAIBase::ProcessPendingTriggers which does the actual script update
[15:17:15] <fuzzie> so definitely script-related fields, but i have no clue
[15:17:36] <Avenger> so, you know it actually? ProcessPendingTriggers?
[15:17:47] <fuzzie> yes, i am just incompetent today
[15:18:11] <Avenger> naah, you can be very helpful by telling me more of these names :)
[15:18:12] <fuzzie> maybe 35FC is some kind of uninterruptible flag..
[15:18:18] <fuzzie> well, what do you miss? :P
[15:18:30] <Avenger> c0 i named: copyIDSBytes :)
[15:18:58] <Avenger> probably it is copyObjectIdentifier, or something like that
[15:19:20] <Avenger> or setObjectIdentifier
[15:19:35] <fuzzie> i left it as that
[15:20:09] <Avenger> the 4 other above it is unnamed for me
[15:20:19] <Avenger> bc seems to set the general byte
[15:20:28] <Avenger> b8 seems to be almost like c0
[15:21:12] <Avenger> i would call bc as restoreGeneral :) but why is it needed, i wonder
[15:21:44] <Avenger> b4 seems important, i hope you know the name of that one
[15:22:01] <fuzzie> nope ;p
[15:22:31] <Avenger> it seems to delete the walkpath, and create a new one?
[15:23:28] <Avenger> it also calls a message i can only name set_352a :) so, if you know 352a in the actor struct, tell me
[15:26:23] <Avenger> 0048E744 is your CGameAIBase::ProcessPendingTriggers?
[15:26:52] <fuzzie> bc is probably CGameSprite::ResetAITypeLive(void)
[15:27:10] <fuzzie> yes
[15:27:28] <Avenger> ok, then restoreGeneral is actually more descriptive ;)
[15:27:46] <Avenger> an average modder knows what is general, but not AITypeLive :)
[15:28:11] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[15:28:42] <Avenger> i will still use those names you give, because it may be less confusion
[15:28:42] --> duckpunch has joined #gemrb
[15:29:17] <Avenger> b8 is above that
[15:31:36] <fuzzie> b4 is probably CGameSprite::SetTarget(CPoint const &, int)
[15:31:45] <fuzzie> these are mostly inlined, so ordering is useless
[15:32:13] <Avenger> oh nice
[15:33:16] <fuzzie> b8 is CGameSprite::SetAIType(CAIObjectType const &, int, int)?
[15:33:45] <fuzzie> looks like it
[15:34:04] <Avenger> yes, SetAIType is fine
[15:34:33] <Avenger> they call their object ids AI :)
[15:36:31] <Avenger> SetTarget sets 352a too
[15:36:42] <Avenger> i think 352a is 'walkpath ready'
[15:36:47] <Avenger> or something like that
[15:37:11] <fuzzie> and b0 might be CGameSprite::OnActionRemoval(CAIAction &)
[15:37:25] <Avenger> there is a hidden action which waits for 352a too
[15:37:39] <fuzzie> it calls 4928C5 which seems to be CGameAIBase::OnActionRemoval(CAIAction &) even though it doesn't do anything
[15:37:50] <Avenger> hehe,
[15:37:55] <Avenger> at least it gives us a name
[15:38:31] <fuzzie> so there's four vtable entries i guess :p
[15:38:37] <Avenger> onActionRemoval modifies the stance
[15:38:58] <fuzzie> yes, if a blocking action was running, it forces the READY stance, right?
[15:39:12] <fuzzie> AWAKE, i guess
[15:39:29] <Avenger> yes, sets the stance based on the return value
[15:39:53] <Avenger> but also does some weird stuff
[15:39:58] <Avenger> like a movetoarea thing
[15:40:16] <Avenger> i cannot put that anywhere
[15:40:25] <fuzzie> CGameSprite::JumpToArea(CString, CPoint const &, short, short, int, CPoint const &)
[15:40:28] <fuzzie> ;p
[15:40:29] <Avenger> yes
[15:40:36] <Avenger> i just call it movetoareacore :P
[15:40:41] <Avenger> just like in our engine
[15:40:46] <fuzzie> i closed IDA now before i go crazy
[15:40:53] <Avenger> :(
[15:40:57] <fuzzie> but usually that kind of thing checks for the LUA area move action?
[15:41:23] <fuzzie> otherwise i guess it's probably just forcing the actor back to the saved loc
[15:41:31] <fuzzie> Taimon is the expert on those things
[15:44:54] <Avenger> these symbols are not in order at all
[15:45:42] <fuzzie> the vtable ones just get compiled whenever they're useful to the compiler
[15:45:57] <Avenger> how did you guess the resetaitypelive symbol :(
[15:46:00] <fuzzie> so it's completely hopeless trying to work them out from the order
[15:46:11] <fuzzie> well i have the powerpc disassembly too, so :)
[15:46:30] <Avenger> i got only this bg2_symbols list
[15:46:48] <fuzzie> if you feel like understanding ppc asm, i can put it somewhere
[15:47:07] <fuzzie> it's not very readable, but it does have all the calls in it
[15:47:16] <Avenger> can you just put a collapsed list of functions?
[15:47:30] <Avenger> i would not look inside anyway
[15:47:37] <fuzzie> well, that's what the bg2_symbols list is
[15:47:43] <Avenger> hmm
[15:47:58] <fuzzie> i don't have a disasm tool which can understand the vtables, they are indirect via trampolines anyway
[15:48:16] <Avenger> but in windows, the order is different
[15:48:26] <Avenger> the vtab functions are grouped together
[15:48:29] <Avenger> not mixed
[15:48:31] <fuzzie> yes. so you have to check the contents :)
[15:48:36] <Avenger> sh..t
[15:49:02] <fuzzie> that is why i made the vtable for the animation class, it took many hours :P
[15:49:23] <Avenger> well, how big is that disassembly?
[15:49:46] <Avenger> i guess it is several hundred mb
[15:50:02] <fuzzie> it is tiny compressed, i think
[15:50:19] <fuzzie> 8.5mb
[15:50:30] <fuzzie> http://ccdevnet.org/~fuzzie/bg2_disasm.gz
[15:50:36] <Avenger> thanks
[15:50:54] <Avenger> got it
[15:50:55] <fuzzie> ignore anything with '__traceback' at the start
[15:51:14] <fuzzie> they are just RTTI data
[15:51:41] <fuzzie> at some point, i will produce a nicer version which actually has labels etc
[15:51:53] <Avenger> haha, this assembly is much more compressed
[15:52:10] <Avenger> resetaitypelive is just 5 instructions, return included :)
[15:52:31] <fuzzie> well, you only need 5, right? :P
[15:52:35] <fuzzie> load, save, load, save, return
[15:53:19] <Avenger> so, the traceback stuff is just garbage?
[15:53:21] <fuzzie> the fields are probably in exactly the same order, which might help, i didn't try working them out
[15:53:26] <fuzzie> yes, traceback disasm is garbage
[15:53:57] <Avenger> its kinda nonzero padding
[15:54:10] <fuzzie> it has the function names etc in it :)
[15:54:19] <fuzzie> but, you can't see that once it got disasmed :P
[15:56:01] <Avenger> its a pity the function order is not even close
[15:56:09] <fuzzie> yes
[15:56:16] <fuzzie> it should be possible to automate the vtable discovery
[15:56:20] <fuzzie> but, i didn't work out how, yet
[15:57:24] <Avenger> that would be fun
[15:57:47] <fuzzie> well, it would also be useful for other Bioware games
[15:58:22] <fuzzie> sadly everything else has the symbols for the m68k only
[15:58:40] <Avenger> my editor doesn't like to load the entire file :)
[15:58:43] <fuzzie> i mean, everything else as in, not Bioware :P
[15:59:04] <fuzzie> since m68k was dead before BG1, i'm sure
[15:59:35] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[15:59:51] --> duckpunch has joined #gemrb
[16:02:45] <Avenger> so, there is no vtable in this list?
[16:03:23] <fuzzie> nope
[16:03:47] <fuzzie> but, it is helpful because you can search for function calls, for example
[16:03:58] <fuzzie> and find which functions call which other functions, and fill in a lot of gaps
[16:04:17] <fuzzie> of course it is not so easy because a lot of things get inlined.. but sometimes it's really helpful
[16:04:25] <Avenger> yes, if i find what is jumpthroughtransition
[16:05:09] <fuzzie> what i usually do is search through bg2_symbols for something like 'GameSprite::' and then work out which functions it might be, based on the parameters, and then check the disasm
[16:05:18] <fuzzie> but it is not trivial :-/
[16:06:49] <Avenger> at least a grouped list like filter all cgamesprite:: functions, etc
[16:06:54] <Avenger> that would help :)
[16:10:56] <Avenger> ok, there is order in those functions that are not moved around (those that remained grouped)
[16:11:23] <Avenger> i just found my deleteWalkPath as 'dropPath' :)
[16:11:47] <Avenger> so, i can fill those in, with relative ease
[16:14:04] <fuzzie> :)
[16:15:03] <Avenger> it would be good if the string literals are resolved :(
[16:15:13] <Avenger> you know, like the assertion texts
[16:24:45] <fuzzie> yes
[16:24:53] <Avenger> hehe, this stuff was already helpful
[16:25:08] <Avenger> i had one call named 'playSelectionVC' (verbal constant)
[16:25:17] <Avenger> but by your list it is OnFormationButton :)
[16:25:34] <Avenger> i recognised only the selection verbal constant, but not the formation setting
[16:27:04] <Avenger> hmm, though their name of 'PlaySound' is less descriptive than my 'VerbalConstantGroup'
[16:31:42] <Avenger> huh, lightning strike chances are different for wearing metal armor???
[16:31:50] <Avenger> just how complex this stuff is!!!
[16:33:50] <fuzzie> hehe
[16:34:28] <Avenger> also, tob seems to be using spwi938 for the lightning spell
[16:34:35] <Avenger> not some hardcoded damage
[16:34:48] <Avenger> meh
[16:35:14] <Avenger> heh, even bg1 has it
[16:35:24] <Avenger> oh my
[16:35:56] <Avenger> bg1 and bg2 has it, i don't know if iwd/pst has lightning at all
[16:57:58] --> lynxlynxlynx has joined #gemrb
[16:57:58] --- ChanServ gives channel operator status to lynxlynxlynx
[17:03:15] <Avenger> hi lynx
[17:06:10] --> brad_a has joined #gemrb
[17:09:06] <brad_a> is there anyway i can get permission to edit my posts the the expiration time? id like to amend the OP of the iOS port thread with the new developments.
[17:11:38] <lynxlynxlynx> oj
[17:12:06] <lynxlynxlynx> brad_a: not really, just give the fulltext of the desired result
[17:12:31] <lynxlynxlynx> or better yet, put it on the wiki and then it can be linked there boldly
[17:14:17] <brad_a> dont i need a login for the wiki?
[17:15:06] <brad_a> oh i see i can register
[17:15:32] <brad_a> Looks like there was an error on sending the password mail. Please contact the admin!
[17:16:48] <lynxlynxlynx> ehh
[17:16:58] <lynxlynxlynx> every second person has that problem :
[17:17:54] <lynxlynxlynx> go change your password, it is now equal to the mail you registered with
[17:20:35] <brad_a> thank you
[17:42:35] <brad_a> what game is HOW?
[17:43:46] <fuzzie> Heart of Winter, expansion pack for iwd
[17:44:51] <brad_a> oh ok. thanks
[17:45:25] <fuzzie> it is very different to iwd, which is why it has a different gametype
[17:46:25] <brad_a> i was just going to ask that :)
[17:46:42] <brad_a> i should probably play IWD sometime
[18:27:44] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[18:28:53] --> duckpunch has joined #gemrb
[18:32:20] <lynxlynxlynx> fuzzie: will you have time next week to fix the trap trigger issue?
[18:32:35] <fuzzie> well, i have forgotten what it is, which isn't a good sign
[18:32:59] <lynxlynxlynx> entered
[18:33:08] <lynxlynxlynx> maybe opened too
[18:33:17] <lynxlynxlynx> disarmed traps trigger
[18:36:11] <fuzzie> ah, right
[18:36:56] <lynxlynxlynx> i need to check something related to combat in bg1 and maybe fix some actions omnomnoming whole stacks, but then we're ready for the new release
[18:37:18] <fuzzie> umm.
[18:37:21] <lynxlynxlynx> ideally Avenger would fix activate/deactivate (i forget where we left it)
[18:37:44] <lynxlynxlynx> and maybe tomprince would ammend his gcc 4.6 patch, so we would compile without warnings
[18:38:02] <Avenger> i don't know what should be done with activate
[18:38:35] <fuzzie> what's the problem, failing to survive save/load?
[18:39:01] <lynxlynxlynx> scripts run, See matches
[18:39:09] <fuzzie> i don't remember why InfoPoint::TriggerTrap is setting trigger_entered at all in the not-Trapped case, i don't think it should, but our trigger code is so messed up
[18:39:13] <Avenger> once i had a stack overflow while loading a bg2 game :)
[18:39:24] <Avenger> it was in a debugger,so i just continued
[18:39:28] <Avenger> and it run...
[18:39:32] <Avenger> so...
[18:39:35] <Avenger> wtf?
[18:40:01] <lynxlynxlynx> http://pastebin.com/G0DVzgCF <-- these were my hacks to be able to continue the game
[18:41:08] <Avenger> anyway, i got a new toy to play with (fuzzie's bg2 disassembly with function names)
[18:41:18] <Avenger> so i'm busy with adding names to my ida db :)
[18:42:12] <Avenger> it will be useful later
[18:44:10] <Avenger> lynx: i didn't tell you yet: they call their SpriteCover as... SpriteCover :)
[18:44:41] <Avenger> i see how they cut their wallgroup stuff from the sprites
[18:44:47] <fuzzie> i am just imagining lynx preparing fireballs to shoot at us now :P
[18:45:21] <fuzzie> lynxlynxlynx: i don't remember why removing line 139 of InfoPoint.cpp isn't a good solution
[18:46:23] <Avenger> well, if we talk about the same line
[18:46:28] <Avenger> AddTrigger(TriggerEntry(trigger_entered, ID));
[18:46:51] <fuzzie> yes
[18:47:01] <Avenger> you can remove it, but then... where you set it
[18:47:08] <fuzzie> it gets set in the right place
[18:47:49] <Avenger> oh in TriggerTrap
[18:47:59] <Avenger> yep, i guess it needs to be set only once
[18:48:23] <Avenger> uh wait
[18:48:31] <Avenger> that is HarmlessEntered in pst
[18:48:37] <Avenger> if not trapped, but entered
[18:48:38] <fuzzie> CGameTrigger::DoAIUpdate() definitely doesn't add trigger_entered on !Trapped
[18:48:50] <Avenger> if you enter a non trap infopoint
[18:48:58] <Avenger> and probably isOver in bg2
[18:48:59] <fuzzie> right, but that is not trigger_entered either :P
[18:49:08] <Avenger> yes, entered is only for traps
[18:49:12] <lynxlynxlynx> i'll try without, just to see if it works
[18:49:26] <fuzzie> you could change it to trigger_harmlessentered
[18:49:33] <fuzzie> i see that pst has trigger_triggerclick
[18:49:55] <Avenger> is that something like the triggerwalkto ?
[18:50:01] <Avenger> well.. sort of
[18:50:09] <fuzzie> well, it's like the trigger_walkedtotrigger :)
[18:50:12] <fuzzie> we'll have to see
[18:50:22] <Avenger> yep, that's what i meant
[18:52:12] <fuzzie> but pst has bigger issues, it depends on accurate scripting a lot
[18:53:48] <Avenger> hehe
[18:54:02] <Avenger> it is full of scripting bugs too
[18:55:53] <lynxlynxlynx> changing that didn't help at all
[18:56:16] <lynxlynxlynx> ok, maybe an overstatement
[18:59:10] <lynxlynxlynx> after the trap fired due to a failed disarm attempt, it then also fired when the door was opened
[18:59:20] <lynxlynxlynx> but i now remember some traps are repeating
[19:00:28] <fuzzie> well, i suspect that trap_entered shouldn't be set on doors at all
[19:01:11] <lynxlynxlynx> both traps aren't permanent
[19:02:39] <Avenger> yes fuzzie, i guess it is opened :)
[19:03:01] <fuzzie> and you don't get trap_opened when the door isn't trapped?
[19:04:12] <lynxlynxlynx> i think i do
[19:04:21] <fuzzie> i mean, sorry, in original
[19:04:32] <lynxlynxlynx> trap on, failed disarm, fire (trap off), open door, fire
[19:04:34] <fuzzie> that would make a lot of sense - trap_entered on regions, trap_opened on doors/containers, and both only when trapped
[19:04:52] <fuzzie> but i only have the code for regions here :P
[19:05:25] <fuzzie> the rest must be in the actions, doors/containers don't have special AI updates (well, there's a little bit for piles)
[19:09:50] <lynxlynxlynx> why both when trapped?
[19:10:30] <lynxlynxlynx> and this script check entered OR opened, so i don't think removing entered from doors would help
[19:12:56] <fuzzie> no, but checking trapped would help, right?
[19:18:57] <lynxlynxlynx> when adding the triggers?
[19:19:06] <fuzzie> yes
[19:19:34] <fuzzie> just asking in a thereotical sense: if you check trapped, then it will only trigger once, before the disarm
[19:25:16] <lynxlynxlynx> that works fine :)
[19:25:23] <-- test32894789234u has left #gemrb
[19:29:02] <CIA-40> GemRB: 03lynxlupodian * rdf000d8d5732 10gemrb/gemrb/core/Scriptable/Door.cpp: Door::SetDoorOpen: only add trigger_opened if the door is trapped
[19:29:03] <CIA-40> GemRB: 03lynxlupodian * rd9c1f9661a88 10gemrb/gemrb/core/Scriptable/InfoPoint.cpp: if the region is not trapped, set trigger_harmlessentered instead of trigger_entered
[19:44:12] --> SiENcE has joined #gemrb
[19:44:20] <-- SiENcE has left IRC (Client Quit)
[20:29:54] --> Avenger_ has joined #gemrb
[20:30:27] <-- Avenger has left IRC (Disconnected by services)
[20:30:35] --- Avenger_ is now known as Avenger
[20:30:44] --- ChanServ gives channel operator status to Avenger
[21:15:19] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[21:25:36] <-- brad_a has left IRC (Quit: brad_a)
[21:27:18] <-- duckpunch has left IRC (Read error: Connection reset by peer)
[21:28:00] --> duckpunch has joined #gemrb
[21:47:32] --> brad_a has joined #gemrb
[21:54:02] <-- brad_a has left IRC (Quit: brad_a)
[22:14:43] <-- Avenger has left IRC (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330])
[22:30:54] --> brad_a has joined #gemrb
[22:31:07] <-- brad_a has left IRC (Client Quit)