#gemrb@irc.freenode.net logs for 23 Jun 2009 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:03:16] <fuzzie> sleepy time for me..
[00:10:40] <leitkie> the howto does not mention the needed dev packages
[00:37:05] <-- tombhadAC has left IRC (Remote closed the connection)
[01:11:08] <-- leitkie has left IRC (Ping timeout: 180 seconds)
[01:37:05] --> xrogaan has joined #gemrb
[04:36:38] --> Gekz has joined #GemRB
[04:37:39] <-- Gekz has left IRC (Client Quit)
[05:39:54] --- barraAway is now known as barra_library
[07:03:13] --> lynxlynxlynx has joined #gemrb
[07:03:13] --- ChanServ gives channel operator status to lynxlynxlynx
[08:33:19] <-- |Cable| has left IRC ("Leaving")
[08:55:03] <fuzzie> morning
[08:58:36] <lynxlynxlynx> oj
[09:09:22] <-- xrogaan has left IRC ("Bye bye")
[09:09:45] <fuzzie> lynxlynxlynx: dead party memebers seem to stay in my GAM files for as long as I can resurrect them
[09:10:41] <lynxlynxlynx> as party members or just npcs in the area?
[09:10:46] <fuzzie> as party members
[09:11:23] <lynxlynxlynx> :s
[09:11:57] <fuzzie> so, strange :)
[09:12:40] <lynxlynxlynx> i was testing in soa
[09:12:51] <fuzzie> someone on gibberlings3 talks about party memebers being converted to NPCs once they're 'seperated'
[09:13:11] <fuzzie> But I guess it needs some more poking.
[09:13:25] <lynxlynxlynx> oh right, it could be a timing issue
[09:13:43] <lynxlynxlynx> but iirc i tried also with killing a pc during pause
[09:14:14] <lynxlynxlynx> separation could be shared - it also happens when you dismiss party members
[09:29:32] <CIA-20> gemrb: 03lynxlupodian * r6590 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: InitActorTables: added thieves, fixed sorcerers and reordered the silly isclass[] setters
[09:56:08] --> D_T_G has joined #gemrb
[10:00:32] <-- barra_library has left IRC ("Verlassend")
[10:04:22] <-- pupnik has left IRC (Read error: 110 (Connection timed out))
[10:07:51] <D_T_G> Hi
[10:07:56] <D_T_G> it's me - Nugrud :)
[10:08:06] <lynxlynxlynx> oj
[10:09:10] <D_T_G> in the guiscript of bg2 start.py there is a line GemRB.LoadMusicPL("Cred.mus")
[10:09:35] <D_T_G> so it is hard coded
[10:10:16] <D_T_G> when BGT is installed it should play BGTheme.mus
[10:11:01] <lynxlynxlynx> how does bgt change this in the original?
[10:11:42] <D_T_G> I don't know yet
[10:12:04] <D_T_G> I couldn't find any reference besides new songlist.2da
[10:12:29] <fuzzie> It doesn't seem to be in the .exe, so maybe it should come from the songlist somehow.
[10:12:29] <D_T_G> in original songlist it Cred.mus was 82
[10:13:08] <D_T_G> in new songlist it is also 82
[10:13:35] <D_T_G> so it isn't simply taking it by position
[10:15:54] <fuzzie> Could be that it changes something else from 82 to the new number.
[10:18:08] <D_T_G> could be
[10:18:20] <fuzzie> But if the snippet you pasted on the forum is the only .exe patch, it has to be in the data somewhere!
[10:18:35] <D_T_G> I'll research all bgt installation files referencing to number 82
[10:18:59] <D_T_G> yes xp patching seems the only place where it hacks exe
[10:21:43] --> pupnik has joined #gemrb
[10:22:47] <lynxlynxlynx> so is BGTheme. in the songlist? at which position?
[10:23:10] <D_T_G> 33 BG2Theme BGTheme.mus
[10:24:54] <D_T_G> wait
[10:25:02] <D_T_G> it's another song
[10:25:41] <fuzzie> there's a BGT/Songlist/Music.tp2
[10:26:50] <fuzzie> neither that nor the main file seems to modify anything relevant, though, other than copying the new songlist.2da in
[10:29:30] <lynxlynxlynx> maybe we currently have the wrong choice
[10:29:39] <D_T_G> but te engine somehow knows it now should play 12th position: BGTheme.mus
[10:29:47] <lynxlynxlynx> 33 is BG2Theme THEME.mus in the original
[10:30:07] <fuzzie> perhaps it's in the CHU?
[10:30:18] <lynxlynxlynx> Cred should probably be played only in the credits screen
[10:30:20] <D_T_G> sorry the new main theme music from songlist is 12 BGTheme BGTheme.mus
[10:30:51] <D_T_G> wait
[10:31:16] <D_T_G> I see now: BGTheme is in the third column in 12th and 33rd position!
[10:31:18] <D_T_G> weird
[10:31:50] <fuzzie> well, they change the music for an awful lot of maps and maybe some scripts
[10:31:54] <fuzzie> so we should just be playing #33?
[10:32:57] <lynxlynxlynx> we play Cred only in the soa/tob choice screen
[10:32:57] <fuzzie> that should be a relatively easy fix
[10:33:08] <lynxlynxlynx> the next two have the right music
[10:33:17] <fuzzie> lynxlynxlynx: do they read it from songlist, though?
[10:33:42] <lynxlynxlynx> let me check
[10:34:12] <fuzzie> it looks like they just play hard-coded theme.mus
[10:34:13] <D_T_G> Start2.py : GemRB.LoadMusicPL("Theme.mus",1)
[10:34:54] <lynxlynxlynx> yes
[10:35:03] <fuzzie> should be easy to read that from songlist instead
[10:35:05] <lynxlynxlynx> GemRB.LoadMusicPL("Cred.mus") in Start and that in Start2
[10:35:08] <D_T_G> there should be BGTheme.mus not in Start.py to reflect bgt in original engine
[10:35:26] <D_T_G> bgt also plays Cred.mus in first window
[10:35:42] <D_T_G> and BGTheme.mus when bgt was chosen
[10:36:47] <D_T_G> 33 BG2Theme THEME.MUS
[10:36:59] <D_T_G> 33 BG2Theme BGTheme.mus
[10:37:10] <lynxlynxlynx> first is tob, second bgt?
[10:37:15] <D_T_G> yes
[10:37:20] <lynxlynxlynx> ok
[10:37:43] <lynxlynxlynx> i'll prepare a patch
[10:37:50] <D_T_G> :)
[10:38:42] <D_T_G> it seems also hardcoded in guiworld.py
[10:38:56] <fuzzie> ugh, i hate BGScript
[10:38:56] <D_T_G> of iwd2
[10:39:05] <fuzzie> how do the actors with GRPSHT01 ever get anything done?!
[10:39:14] <D_T_G> and textscreen of iwd1 and bg1
[10:39:15] <fuzzie> AttackedBy is triggered every time someone tries hitting the actor
[10:39:43] <fuzzie> so their attacks/spellcasting are interrupted every time
[10:41:48] <D_T_G> playing theme music is hardcoded in all of start.py's
[10:44:00] <fuzzie> well
[10:44:03] <lynxlynxlynx> http://pastebin.ca/1470954 <-- try this
[10:44:06] <fuzzie> $ strings ~/src/gemrb/bg1/BGMain.exe | grep -i theme
[10:44:06] <fuzzie> Theme.mus
[10:44:15] <fuzzie> it's not in bg2, pst or iwd2 though
[10:44:28] <D_T_G> i search for *.mus
[10:45:14] <D_T_G> PST: GemRB.LoadMusicPL("Main.mus")
[10:45:55] <CIA-20> gemrb: 03lynxlupodian * r6591 10/gemrb/trunk/gemrb/docs/en/GUIScript/LoadMusicPL.txt: LoadMusicPL.txt: added missing parameter
[10:46:23] <fuzzie> bg1 has *all* the music hardcoded, heh
[10:49:25] <D_T_G> http://pastebin.ca/1470954 --> works
[10:50:20] <lynxlynxlynx> wierd
[10:50:49] <lynxlynxlynx> ah no, it is just dltcep confusing me
[10:51:04] <lynxlynxlynx> ok, i'll commit it
[10:53:05] <lynxlynxlynx> according to iesdp, bg2 is the only one with songlist.2da
[10:53:36] <lynxlynxlynx> iirc pst has a different table
[10:54:08] <lynxlynxlynx> i'll just fix bg2 for now; i don't know of any working bgt-like conversions for iwd or the rest either
[10:55:27] <D_T_G> so just bg2 proved to be only so flexible with songlist ;)
[10:55:34] <CIA-20> gemrb: 03lynxlupodian * r6592 10/gemrb/trunk/gemrb/GUIScripts/bg2/Start2.py: bg2: don't hardcode the main music theme, so bgt can override it
[10:59:37] --> barra_library has joined #gemrb
[11:01:43] <D_T_G> hmm, now it doesn't work
[11:01:48] <D_T_G> ...
[11:02:32] <lynxlynxlynx> ?
[11:02:47] <D_T_G> no music at all when I applied start2.py from trunk
[11:03:00] <lynxlynxlynx> it is the same patch
[11:03:13] <D_T_G> I know
[11:03:27] <fuzzie> try 'svn revert Start2.py' to remove conflicts?
[11:03:41] <lynxlynxlynx> it should have been nicely merged
[11:05:34] <lynxlynxlynx> i'll go disable my nullsound
[11:05:53] <D_T_G> i did the changes manually and it was working, but then deleted and replaced with new start2.py from trunk
[11:06:06] <D_T_G> I also deleted *.pyc
[11:07:38] <D_T_G> and it doesn't play in seconds windows, Cred.mus is played correctly
[11:07:47] <lynxlynxlynx> yeah, i can confirm now
[11:08:06] <D_T_G> sorry for reporting patch working :/
[11:08:31] <lynxlynxlynx> doesn't find the right table entry
[11:09:01] <lynxlynxlynx> maybe dltcep wasn't playing with me
[11:09:20] <lynxlynxlynx> right
[11:09:21] <lynxlynxlynx> bleh
[11:09:29] <D_T_G> instead of BG2Theme I wrote 33 and working ! :D
[11:09:33] <lynxlynxlynx> yes
[11:09:53] <lynxlynxlynx> i has dummy rowindex row names
[11:10:00] <fuzzie> that is not a particularly nice fix, though
[11:10:12] <lynxlynxlynx> no, FindValue will solve it nicely
[11:12:37] <lynxlynxlynx> hehe
[11:12:44] <lynxlynxlynx> except that it only works with integers
[11:17:10] <lynxlynxlynx> 33 it is
[11:17:16] <fuzzie> oh :<
[11:17:30] <fuzzie> horrors
[11:17:39] <fuzzie> maybe put a comment in about the BG2Theme thing?
[11:18:44] <D_T_G> do you remember cut-scene with Gorion fighting not-yet-Sarevok after leaving Candlekeep?
[11:19:11] <D_T_G> in bgt under gemrb an ogre survived and sarevok disappeared :D
[11:20:31] <fuzzie> I think we have some timing issues; we're meant to move the viewport away *before* sarevok disappears.
[11:20:34] <CIA-20> gemrb: 03lynxlupodian * r6593 10/gemrb/trunk/gemrb/GUIScripts/bg2/Start2.py: bg2::Start2: the songlist table has useless rownames
[11:20:48] <fuzzie> But I'm still trying to fix gemrb's combat code, so sigh.
[11:21:06] <D_T_G> which gui scripts takes care of that: http://img40.imageshack.us/img40/2369/bgty.jpg ?
[11:21:51] <fuzzie> TextScreen.py
[11:22:30] <D_T_G> really ? "# TextScreen.py - display Loading screen"
[11:22:53] <fuzzie> hehe, that is a copy-and-paste error :)
[11:23:16] <D_T_G> aa
[11:23:22] <fuzzie> you can see from the code that it's the chapter text screen.
[11:29:25] <CIA-20> gemrb: 03lynxlupodian * r6594 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: added monks to the silly isclass detection loop
[11:54:39] <-- D_T_G has left IRC (Remote closed the connection)
[12:01:54] <CIA-20> gemrb: 03lynxlupodian * r6595 10/gemrb/trunk/admin/toggle_music.sh: toggle_music.sh: added script to quickly toggle between nullsound and openal
[12:04:01] <lynxlynxlynx> silly, silly me
[12:04:21] <lynxlynxlynx> the monk table is almost empty
[12:09:21] <lynxlynxlynx> awk to the rescue
[12:13:56] <CIA-20> gemrb: 03fuzzie * r6596 10/gemrb/trunk/gemrb/plugins/Core/Actions.cpp: add some hack to MoveViewPoint/MoveViewObject to temporarily compensate for blocking changes
[12:36:52] <lynxlynxlynx> ok, monk ac/acm works :)
[12:37:17] <lynxlynxlynx> on a tangent i realised i need to make a gemrb mod
[12:37:24] <fuzzie> cool
[12:38:54] <pupnik> what mod lynxlynxlynx
[12:39:27] <lynxlynxlynx> one that would help development sanity and one later for improved playability
[12:40:01] <lynxlynxlynx> the first would pick a random portrait when starting chargen, the other one would make other games use iwd2/how's better combat output
[12:49:36] <fuzzie> so much hate for pathfinding
[12:51:12] <pupnik> people generally underestimate the subtlety of the problem
[12:51:50] <pupnik> ever take a good algorithms intro class at uni?
[12:52:39] <fuzzie> I sat in the AI lectures when they covered A* last semester, which were pretty good.
[12:54:16] <pupnik> cool
[12:55:00] --> D_T_G has joined #gemrb
[13:03:35] <fuzzie> The pathfinding code in gemrb is okay, but it's full of weird bugs.
[13:03:56] <fuzzie> eg, the orientation of the first node of a path always points towards the goal, not the next node.
[13:06:57] <pupnik> are actors getting stuck often?
[13:07:11] <fuzzie> They just look wrong :/
[13:07:22] <pupnik> my idea for stuck actors was to begin retracing back over previous steps
[13:07:41] <fuzzie> I think we're not too bad with stuck actors right now.
[13:07:41] <lynxlynxlynx> there aren't so many narrow areas
[13:07:51] <pupnik> and rechecking find_path from those positions
[13:07:52] <pupnik> ok
[13:08:01] <lynxlynxlynx> it is more visible that we don't do bumping yet, so critters take long paths
[13:08:17] <pupnik> ahhh
[13:08:42] <pupnik> is 'bumping' on todo even? :)
[13:09:11] <fuzzie> bumping is bg2-only anyway, right?
[13:09:28] <pupnik> dunno
[13:10:53] <fuzzie> I mean, not that there's anything stopping us from implementing it for all games, but I don't think it's important at all to have.
[13:11:23] <lynxlynxlynx> pathfinding sucked sometimes even in tob
[13:11:56] <pupnik> yes not important like gameplay must-have
[13:12:11] <lynxlynxlynx> it is
[13:12:27] <lynxlynxlynx> unless the blocker moves for you, you can be stuck
[13:12:39] --> barra_away has joined #gemrb
[13:12:42] <fuzzie> yes, but the other games manage to survive with just having you stuck :)
[13:13:07] <lynxlynxlynx> other games don't have so many doors :)
[13:14:18] <pupnik> i guess im a big fan of bumping. cant see why iwd wouldnt have it
[13:14:41] <fuzzie> Bumping is great, I just want to concentrate on the huge playability hits atm.
[13:16:24] <fuzzie> And I think SoA could be playable without bumping. Annoying, yes, soul-destroying, no.
[13:16:44] <-- barra_library has left IRC (Read error: 60 (Operation timed out))
[13:16:48] <fuzzie> While actors running around and around after each other in battles without ever actually meeting each other, more annoying. :)
[13:17:23] <pupnik> hah
[13:21:33] --- barra_away is now known as barra_library
[13:23:00] <D_T_G> do you plan to implement bg1-only "idle sounds" of cre's also for bg2?
[13:23:18] <fuzzie> If it doesn't break anything.
[13:24:49] <fuzzie> Right now I'm just trying to get Dialogue() to follow the destination actor around until they catch them.
[13:25:32] <D_T_G> I've read they start from offset 0x1b8 in bg1, but in bg2 they have different meaning
[13:26:28] <D_T_G> so it was impossible in bgt so that this guys: http://img507.imageshack.us/img507/5629/glosy.jpg sing when they are 'idle' like in original bg1
[13:27:08] <fuzzie> Hm. There's not a lot we can do if there's no space for the strrefs.
[13:28:43] <D_T_G> it is a bit soul-killing of bgt when compared to original bg1
[13:29:35] <D_T_G> I hoped gemrb would be able to fullfil that gap :/
[13:30:03] <fuzzie> Well, it can always be done, I just don't know where we'd put the idle sounds.
[13:30:46] <fuzzie> Looks like this pathfinder was added in r934 and not really touched since.
[13:32:08] <pupnik> :)
[13:32:48] <D_T_G> so there would have to be not yet used place between 0x0000 and 0xffff for idle_1 to idle_5 ?
[13:33:20] <fuzzie> between 0 and 0x02cc.
[13:33:50] <D_T_G> why so few?
[13:34:28] <fuzzie> Because that's the size of the file header.
[13:35:40] <lynxlynxlynx> hmpf, there is no fist apr stat
[13:35:54] <fuzzie> 0x01b8 is string #69, by my calculations.
[13:38:08] <fuzzie> That's 'PICKED_POCKET' in bg2 according to the sndslot refs.
[13:38:41] <fuzzie> #70-#74 are marked 'EXISTANCE', though, which sounds more likely..
[13:40:45] <D_T_G> I see
[13:41:49] <fuzzie> i should give the standard "if you are using NI, please do not trust it" disclaimer at this point
[13:42:03] <D_T_G> I don't use it
[13:42:16] <fuzzie> where did you get the offset from?
[13:42:25] <D_T_G> from a post on a forum :P
[13:42:57] <fuzzie> do you have a link?
[13:43:03] <D_T_G> it's in Polish
[13:43:05] <fuzzie> actually, never mind, i can just look at the original CREs
[13:43:21] <D_T_G> discussion about original bg1 vs bgt
[13:44:44] <D_T_G> but it will be implemented for bg1?
[13:45:09] <D_T_G> but not exposed to bg2 as it would broke saves, right?
[13:45:21] <CIA-20> gemrb: 03lynxlupodian * r6597 10/gemrb/trunk/gemrb/ (override/bg2/monkbon.2da plugins/Core/Actor.cpp):
[13:45:21] <CIA-20> gemrb: filled the gaps in monkbon.2da
[13:45:21] <CIA-20> gemrb: added monk level based ac/ac vs missile bonus support
[13:45:23] <fuzzie> it is indeed string #69 in bg1
[13:45:38] <lynxlynxlynx> D_T_G: they probably use different CRE format versions, no?
[13:45:41] <fuzzie> and that's listed as PICKED_POCKET in bg2, so sigh
[13:46:02] <fuzzie> lynxlynxlynx: bg1 and bg2 both use CRE v1.0
[13:46:32] <D_T_G> hmm
[13:46:33] <lynxlynxlynx> they changed the meaning of some fields while keeping the same version?!
[13:47:06] <fuzzie> They changed a lot, but kept back-compatibility for the most part, I think.
[13:47:32] <fuzzie> D_T_G: I don't know if #69 actually *is* PICKED_POCKET in bg2, but it probably is. There seem to be a lot of unused slots that we could repurpose, though.
[13:49:09] <D_T_G> sounds good :)
[13:50:05] <fuzzie> We don't seem to handle the bg1 sounds on those voice actors, yet :(
[13:51:31] <fuzzie> You can manually trigger them by clicking on them, but that's it.
[13:52:20] <D_T_G> I translated to English the post about this, wanna read?
[13:52:47] <fuzzie> sure
[13:52:50] <D_T_G> creatures di not reproduce sounds from the offset 0x1b8 and downstream (IDLE_1 to IDLE_5) when they are idle. In BG2 these offsets are of different meaning. In BG1 about 15% of creatures have such sounds, unnoticed is the lack of some, but others are obvious and serious (eg a lack of singing "votes" in the courtyard of Candlekeep, Sirin not singing in the temple morning, herald calls for the obelisk in Beregost)
[13:53:23] <fuzzie> the examples are very helpful, because I should at least make it work for bg1 :)
[13:58:46] <D_T_G> the guy wrote some things but not as visible as this guys: http://img507.imageshack.us/img507/5629/glosy.jpg not nonstop singing at the beginning ;)
[14:02:17] <D_T_G> "In BG1 after clicking on creature always appear INITIAL_MEETING (if CRE has set it); if you set on subtitles the text will appear in dialog box. In BG2 INITIAL_MEETING will appear only if the dialog block will activate and only a sound will play, the text never. This is why "voices" in the courtyard of Candlekeep in BGT don't react with Alaundo words on click."
[14:03:05] <fuzzie> hm, that does work in gemrb :)
[14:03:22] <fuzzie> maybe it shouldn't
[14:04:08] --> Gekz has joined #GemRB
[14:06:52] <D_T_G> fuzzie, you're right it works in gemrb and not in or.bg2 :D
[14:08:46] <lynxlynxlynx> the text never!
[14:09:18] <lynxlynxlynx> it's not just me thinking that DisplayStringCore should not display the strings ;)
[14:09:21] <Gekz> whatwhatwhat
[14:09:24] <Gekz> D_T_G: what?!
[14:09:26] <Gekz> what does
[14:09:49] <D_T_G> in bg2 when I click on that "voices" they have "nothing to say", but in gemrb the text appears just like in original bg1
[14:10:32] <fuzzie> lynxlynxlynx: well, the code needs an awful lot of work :/
[14:10:55] <fuzzie> But putting the work in the callers would be a disaster. :)
[14:11:18] <Gekz> there was a bug in BG2 that wouldnt let you speak to peopel
[14:11:19] <lynxlynxlynx> the sound work is good where it is
[14:11:21] <fuzzie> It probably all needs to go through the effect system, but that sounds like a lot of work.
[14:11:22] <Gekz> having them all say they were busy
[14:11:25] <Gekz> and you had to install a patch
[14:11:28] <Gekz> that was annoying as fuck
[14:11:38] <lynxlynxlynx> but the strings are bad for most creatures and even some set strings are bad
[14:12:01] <lynxlynxlynx> at least in bg2
[14:12:19] <lynxlynxlynx> this is why the combat output is not perfect yet
[14:12:29] <fuzzie> At a guess we need an intermediate function to do the creature strref work?
[14:13:33] <lynxlynxlynx> in my case, i'd just like to disable the text output in some places and do the display manually
[14:13:53] <fuzzie> Well, for combat strings that isn't a good idea, because they can be suppressed by effects.
[14:13:55] <lynxlynxlynx> the verbal constants table in bg2 has some 5 entries
[14:14:21] <fuzzie> I mean, I guess you could have the caller do some kind of complicated effect lookup.
[14:14:25] <lynxlynxlynx> i doubt they can suppress Death
[14:14:38] <fuzzie> I think they can suppress everything.
[14:14:45] <fuzzie> Lots of use in scripted sequences etc.
[14:15:35] <lynxlynxlynx> or take damage for example - bg2 uses a different strref for displaying the text than what the verbal constant has
[14:16:02] <lynxlynxlynx> but i bet many critters have on-damage sounds
[14:19:43] <fuzzie> Well, I obviously didn't look into it in detail.
[14:20:02] <fuzzie> I just worry that it's complicated and that moving display into the caller just makes it more difficult to fix in the future.
[14:20:30] <fuzzie> But if you think it works for all the games without suppression then it's worth a try, the old code's always in svn.
[14:22:26] <lynxlynxlynx> no, it is complicated
[14:23:16] <lynxlynxlynx> there's also the unrelated missing feature that we don't lookup the animation dictated strings/sounds
[14:47:19] <-- Gekz has left IRC (Read error: 110 (Connection timed out))
[14:56:46] <-- D_T_G has left IRC ()
[15:04:42] <CIA-20> gemrb: 03fuzzie * r6598 10/gemrb/trunk/gemrb/plugins/Core/ActorBlock.cpp: make a hackish attempt to allow WalkTo() to re-path smoothly while moving
[15:06:39] <fuzzie> Now you can follow Tethtoril around. And around and around and around.
[15:07:00] <fuzzie> Hours of fun.
[15:07:52] <fuzzie> Complete with hideously inefficient re-pathfinding!
[15:08:14] <fuzzie> Darn, I can see a bug already.
[15:15:03] <fuzzie> I want to fix the attack code, but it's going to have to wait until after the release, I guess.
[15:16:44] <-- pupnik has left IRC ("Leaving")
[15:21:26] <CIA-20> gemrb: 03fuzzie * r6599 10/gemrb/trunk/gemrb/plugins/Core/ActorBlock.cpp: fix some bugs from the last commit
[15:21:28] <fuzzie> Around and around and around and around!
[15:29:39] <fuzzie> PS:T is a bit hilariously broken, but apparently that's this SavedLocation stuff.
[15:33:34] <fuzzie> What's essential to fix before release? I feel that AttackedBy() is, but otherwise nothing seems uselessly bad..
[15:36:25] <fuzzie> IESDP gives the immensely helpful description of "N/T" for this saved place stuff.
[15:38:11] <fuzzie> A lot of actors in PS:T just end up sitting there, repeatedly trying to return to their saved place. Beh. :(
[15:40:33] --> pupnik has joined #gemrb
[15:51:10] <lynxlynxlynx> release critical? I'd like to fix monk apr and maybe I'll disable one of the verbal constants
[15:52:02] <lynxlynxlynx> for the rest of the team, just try to minimise regressions
[15:52:17] <lynxlynxlynx> bbl
[15:56:24] <-- pupnik_ has left IRC (Connection timed out)
[16:37:55] --> D_T_G has joined #gemrb
[16:39:13] <D_T_G> INITIAL_MEETING works in gemrb mode 'bg2' but not in 'bg1' mode
[16:39:53] <fuzzie> Oh?
[16:39:58] <fuzzie> You tried with original bg1 data?
[16:40:15] <D_T_G> yes
[16:40:50] <fuzzie> Strange, it seemed to be working for me.
[16:41:08] <D_T_G> http://img37.imageshack.us/img37/5401/gemrb.jpg -> this is how it works in bg2/bgt and the same works in bg1 via original engine
[16:41:40] <D_T_G> but the INITIAL_MEETING text does not appear in dialog box when run in bg1 via gemrb
[16:43:15] <D_T_G> Displaying string on: none
[16:43:15] <D_T_G> [KEYImporter]: Searching for chmw1.2da...[ERROR]
[16:43:15] <D_T_G> [KEYImporter]: Searching for CURSARW.bam...[FOUND]
[16:43:15] <D_T_G> [KEYImporter]: Searching for VOISOU.dlg...[ERROR]
[16:43:15] <D_T_G> [GameControl]: Cannot start dialog: VOISOU
[16:43:18] <fuzzie> http://fuzzie.org/nfs/gemrb/bg1_gemrb.jpg <- works for me..
[16:43:40] <fuzzie> Yes, they don't have dialogs, I think.
[16:44:24] <D_T_G> hmmm
[16:44:26] <fuzzie> Hm, sometimes I have to click on them a few times before it works.
[16:44:34] <fuzzie> So there's probably a bug lurking there.
[16:45:15] <D_T_G> indeed in 3rd click it worked :S
[16:46:23] <fuzzie> Imoen doesn't say "Heya! It's me, Imoen!" when she sees you, either.
[16:47:16] <D_T_G> isn't it the IDLE sound rather?
[16:47:36] <D_T_G> nnnaaa
[16:47:42] <D_T_G> initial
[16:48:21] <D_T_G> are you interested in silly bugs report that are not listed here: http://linux.prinas.si/gemrb/doku.php?id=todo ?
[16:49:23] <fuzzie> Well, if you think they're important enough that someone should fix them soon.
[16:49:47] <fuzzie> We could probably come up with thousands of bugs, the 'todo' is meant to just be the ones which annoy people. If they annoy you, sure!
[16:49:50] <D_T_G> well, nothing soon, you have always time :)
[16:50:41] <D_T_G> nothing annoys me cause I don't expect gemrb to be playable yet
[16:50:56] <fuzzie> I'm actually playing through Baldur's Gate 2 in gemrb. I got to the Promenade so far. :)
[16:51:10] <fuzzie> The movement is completely broken still, but I'm fixing that.
[16:52:05] <D_T_G> for example: in the world map view the view is never centered on the actual map, but in the corner
[16:52:22] <fuzzie> That's a good one.
[16:52:34] <fuzzie> You can make an account on the wiki and edit the page yourself, if you'd like.
[16:54:34] <fuzzie> The INITIAL_MEETING and COMMON_SELECT text/sound for the voices are identical, by the way.
[16:55:13] <fuzzie> It's just that idle one which is different (no text).
[16:56:43] <D_T_G> what about a special text for charmed/dominated creatures? http://www.shsforums.net/index.php?showtopic=30535
[16:57:06] <D_T_G> it need a special exe hack to te available in bgt
[16:58:18] <fuzzie> That one is easy.
[16:58:49] <fuzzie> You should really note these somewhere, either on todo or by opening a Feature Request on sourceforge - we don't have time now, but they should be easy to add.
[17:02:04] * D_T_G has already an account on gibberlings3 forum and not yet on wiki or sourceforge ...
[17:02:10] <D_T_G> :)
[17:02:47] <fuzzie> That works too.
[17:03:16] <fuzzie> There's a log of this IRC channel (see the topic) but it won't help us remember.
[17:03:21] <D_T_G> or maybe I'll better wait untill you finish more important steps
[17:03:30] <D_T_G> and note that locally
[17:03:55] <CIA-20> gemrb: 03fuzzie * r6600 10/gemrb/trunk/gemrb/plugins/Core/ (GSUtils.cpp GSUtils.h): add MoveNearerTo function for use by blocking actions, and use it in BeginDialog
[17:04:17] <fuzzie> Now Imoen will actually chase you around when trying to initiate dialog.
[17:05:09] <D_T_G> nice progress!
[17:05:12] <fuzzie> I tested it comprehensively in PS:T and BG1 and it seems to work great.
[17:06:28] <fuzzie> Well, actors sometimes keep walking after they finished dialog. :)
[17:06:53] <D_T_G> yeah, I noticed, hehe
[17:08:04] <fuzzie> I think it's fine to just stop all walking when an actor starts dialog, but I don't want to break anything, so I didn't add that yet.
[17:08:29] <fuzzie> We're hoping to make a 0.5 release on Thursday, so we don't want to break anything before then.
[17:08:54] <D_T_G> no intermidiate 0.4.x release?
[17:09:52] <D_T_G> well, those just numbers, svn trunk always more advanced :)
[17:10:09] <fuzzie> svn trunk is sometimes broken though :)
[17:13:36] <D_T_G> import char from file got broken
[17:13:39] <D_T_G> File "./GUIScripts/LUSkillsSelection.py", line 365, in SkillsSave
[17:13:39] <D_T_G> for i in range(SkillsTable.GetRowCount()-2):
[17:13:39] <D_T_G> AttributeError: 'int' object has no attribute 'GetRowCount'
[17:14:04] <fuzzie> That's bg2?
[17:14:07] <D_T_G> yes
[17:15:20] <fuzzie> It should work for bg1, let me see about bg2.
[17:15:31] <D_T_G> iirc it was working
[17:15:34] <D_T_G> for bg2 too
[17:15:39] <D_T_G> for bg1 it works
[17:16:02] <fuzzie> I don't think it ever worked for bg2.
[17:16:23] <fuzzie> It failed later, though.
[17:17:03] <fuzzie> But bg2/CharGenCommon.py has GetVar("Class") and the such all over it.
[17:17:12] <D_T_G> i think i remember it working before the merger of bg1 and bg2 scripts
[17:17:28] --> tombhadAC has joined #gemrb
[17:18:29] <fuzzie> Hm, that was maybe before I was here :)
[17:19:05] <fuzzie> The bg2 chargen code is definitely broken for imports now, anyway.
[17:19:31] <fuzzie> The SkillsSave one is no problem to fix, but then none of the other code works.
[17:19:59] <D_T_G> i see
[17:20:46] <fuzzie> It changed a lot recently, it now levels characters to the correct starting level and etc.
[17:20:52] <fuzzie> I guess if you are using BGT then you will not see that.
[17:23:16] <D_T_G> I saw that
[17:23:30] <D_T_G> I installed bgt only some days ago
[17:23:59] <D_T_G> when linux 3rd party scripts to install it were released
[17:25:58] <D_T_G> mattinm disappeard :|
[17:26:26] <fuzzie> Drat, the bg2 dungeon-leaving scene started segfaulting.
[17:27:15] <fuzzie> Yes, it's a pity, mattinm was writing some really great code.
[17:32:18] <fuzzie> Ugh, corrupted effect.
[17:37:46] --> Avenger has joined #gemrb
[17:37:48] --- ChanServ gives channel operator status to Avenger
[17:38:34] <fuzzie> Avenger: ApplyAllEffects() crashes during the bg2 dungeon-leaving cutscene
[17:38:41] <Avenger> hi
[17:39:01] <Avenger> it didn't crash before
[17:39:14] <Avenger> there are a few effects
[17:39:21] <Avenger> could be some projectile?
[17:39:28] <fuzzie> i assume so
[17:39:55] <fuzzie> it looks like the 'fx' passed to ApplyEffect is corrupt
[17:40:07] <Avenger> strncasecmp is not compiling in msvc
[17:40:58] <fuzzie> i will valgrind it
[17:41:06] <fuzzie> also hello :)
[17:41:52] <Avenger> strnicmp is the right keyword
[17:42:12] <fuzzie> #else //WIN32
[17:42:16] <fuzzie> # define strnicmp strncasecmp
[17:42:42] <fuzzie> ^- so i guess so
[17:43:19] <fuzzie> but nothing seems to use strncasecmp directly
[17:43:49] <Avenger> actor.cpp got one recently
[17:44:42] <Avenger> r6594
[17:45:17] <Avenger> i just disassembled the bg1 projectile creation code
[17:47:06] <fuzzie> Also, do you know how saved positions work in PST?
[17:47:38] <Avenger> they store the values in some cre fields
[17:47:44] <Avenger> i use stats for that
[17:48:07] <Avenger> the pst creature importer knows them
[17:48:09] <fuzzie> that's fine, but do you know where the CRE fields are? :)
[17:48:17] <Avenger> ielister knows
[17:48:18] <fuzzie> gemrb only has it for IWD and IWD2
[17:48:25] <fuzzie> okay, thanks, i will look there
[17:48:43] <Avenger> it is the same as in iwd, same proximity of fields
[17:49:46] <-- barra_library has left IRC ("Verlassend")
[17:49:47] <fuzzie> hm, ielister does not seem to know them :(
[17:49:53] <Avenger> hmm, maybe it wasn't true, i don't find it either
[17:50:01] <Avenger> does gemrb load it ?
[17:50:06] <fuzzie> no
[17:50:13] <fuzzie> and it's not in iesdp and i can't find it on the web
[17:50:20] <fuzzie> i just wondered if you knew, before i had to go looking
[17:50:52] <Avenger> oops maybe i didn't
[17:50:57] <Avenger> maybe i found it only in iwd
[17:51:17] <Avenger> it should be around the same place in pst, though
[17:52:03] <Avenger> that means, after the killvars
[17:52:40] <Avenger> hmm pst has no extra killvars...
[17:52:48] <Avenger> are you sure there is a saved position?
[17:53:04] <fuzzie> no
[17:53:13] <fuzzie> but there are a lot of scripts which use it without ever setting it
[17:53:24] <fuzzie> and this breaks very large amounts of PS:T right now
[17:53:41] <fuzzie> it is possible that it is just set on startup, i will have to check
[17:54:01] <Avenger> it should be saved somewhere
[17:54:08] <fuzzie> it's no problem ,i'll work it out
[17:54:08] <Avenger> and if it is saved, it should be imported by us
[17:54:13] <Avenger> good :)
[17:56:05] <Avenger> good, most of the projectiles that don't exist in tob, also run into an assertion in bg1
[17:56:13] <Avenger> so, we can assume they don't exist anywhere
[17:56:27] <fuzzie> not in pst?
[17:57:14] <Avenger> i'm sure they don't exist in pst either, but i didn't look there yet
[18:06:37] <-- D_T_G has left #gemrb ()
[18:10:21] <fuzzie> ok, the effectqueue is doing a 'delete(f++)' that doesn't work
[18:10:35] <fuzzie> it corrupts the list and it crashes
[18:11:01] <Avenger> hmm, why didn't it crash before
[18:11:04] <fuzzie> erm, an erase(f++), even
[18:11:24] <fuzzie> oh, no, it is the delete that is the problem..
[18:11:48] <fuzzie> ==21372== Address 0x460b028 is 0 bytes inside a block of size 12 free'd
[18:11:48] <fuzzie> ==21372== at 0xFFB86AC: operator delete(void*) (vg_replace_malloc.c:342)
[18:11:49] <fuzzie> ==21372== by 0xFF35467: EffectQueue::ApplyAllEffects(Actor*)
[18:12:43] <Avenger> but it should delete an effect only onc
[18:13:05] <fuzzie> The crash is caused by the effect still being in the list.
[18:13:07] <Avenger> that's why it first marks something with 'effect expired'
[18:13:08] <wjp> that erase(f++) is a bit weird; isn't f = effects.erase(f); the convention?
[18:13:22] <fuzzie> i'll try it with the second
[18:13:55] <Avenger> it isn't that piece of code what's buggy, that's sure. That part is executed everytime an effect expires
[18:14:10] <fuzzie> maybe an effect is added twice to the queue?
[18:14:46] <fuzzie> the last spell cast is SPIN946.spl
[18:14:48] <Avenger> addeffect creates a copy
[18:15:04] <Avenger> i'm sure this is something special fx that is doing something illegal
[18:15:15] <fuzzie> but that is just Breach
[18:15:30] <Avenger> breach should mark some effects with 'effect expired'
[18:15:40] <Avenger> but never directly remove them
[18:15:45] <fuzzie> oh, i missed a valgrind
[18:16:18] <fuzzie> EffectQueue.cpp:1017 is also trying to write into a deleted fx
[18:16:27] <fuzzie> that is the code which sets it to FX_DURATION_JUST_EXPIRED
[18:16:46] <Avenger> interesting
[18:17:07] <Avenger> and i know what might gone wrong
[18:17:20] <Avenger> recently i changed the code of match_live_fx
[18:17:33] <wjp> is there supposed to be a fallthrough from FX_INSERT to FX_PERMANENT?
[18:18:10] <wjp> the comment does make it sound reasonable, I guess
[18:18:11] <fuzzie> the comment says "all known insert effects are permanent too", so i assume so
[18:18:39] <Avenger> insert effects are special permanent effects, that go to the beginning of the fxqueue
[18:18:49] <Avenger> i'm not even sure they exist :)
[18:19:24] <fuzzie> oh, damn
[18:19:26] <fuzzie> ok, i found the problem
[18:19:29] <fuzzie> it is my fault
[18:19:38] <fuzzie> never mind
[18:19:40] <Avenger> heheh
[18:20:03] <fuzzie> ApplyAllEffects fx_death calls Die() calls DropItem() calls RefreshEffects() calls ApplyAllEffects
[18:20:13] <Avenger> uh
[18:20:17] <Avenger> that is bad
[18:20:25] <fuzzie> so i need to find a better place to put DropItem(), i'll move it back for now
[18:21:13] <Avenger> don't feel bad, the IWD programmers made a similar infinite loop :) their 'change animation id' effect does something similar
[18:21:42] <Avenger> that's why that effect crashes in iwd
[18:22:34] <Avenger> the solution would be to use some flag for die, i thought i already do that
[18:22:51] <fuzzie> yes, but then if the flags are okay you start removing corpses
[18:23:01] <fuzzie> so this can't go in the same code
[18:23:11] <fuzzie> maybe we just need another flag
[18:23:23] <Avenger> we got 2 already about dying?
[18:23:36] <fuzzie> IF_JUSTDIED and IF_REALLYDIED
[18:23:41] <Avenger> yeah
[18:23:45] <fuzzie> the first is the one you're thinking of, i think
[18:24:10] <Avenger> well, i hope it can be done with using just those 2
[18:24:34] <Avenger> InternalFlags are starting to run out, and i would like to spare them.
[18:24:38] <fuzzie> we can probably just set STATE_DEAD in the right place
[18:24:41] <lynxlynxlynx> Avenger: re strnicmp: heh! First I thought about using that, but then i didn't have a manpage for it and I assumed my memory is bad
[18:24:53] <Avenger> no problem lynx :)
[18:25:28] <lynxlynxlynx> do you want me to commit that or did you already fix it?
[18:25:58] <pupnik> it's like watching an adventure movie in here
[18:26:21] <Avenger> i'm in windows, decompiling bg1
[18:26:43] <lynxlynxlynx> and you can't commit in windows? :) ok
[18:26:46] <fuzzie> does svn's ActorBlock.cpp compile with msvc6?
[18:27:05] <Avenger> yes
[18:27:11] <fuzzie> ok, good :)
[18:27:18] <Avenger> i compiled all except the strcasecmp thing
[18:29:54] <CIA-20> gemrb: 03lynxlupodian * r6601 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: strncasecmp is not available in windows -> strnicmp
[18:31:47] <CIA-20> gemrb: 03fuzzie * r6602 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: move DropItem() back into CheckOnDeath() to avoid crash
[18:32:35] <fuzzie> ok, everything is much less annoying with Dialogue() working properly
[18:33:12] <fuzzie> I need to fix it to only pathfind when it needs to, but that is a seperate fix.
[18:47:52] --> barra_library has joined #gemrb
[18:48:08] <fuzzie> Hm, can I get a debug dump of location to the console?
[18:48:20] <fuzzie> I want to know the x/y of my cursor. Hilarity ensues, maybe.
[18:48:28] <lynxlynxlynx> yes
[18:48:46] <lynxlynxlynx> i know we have it somewhere; the original did too
[18:48:57] <fuzzie> The original dumps to the message window with 'L', I think.
[18:49:07] <fuzzie> But I don't have a message window, so that doesn't work. :(
[18:49:25] <fuzzie> I guess I'll go add some printf()s.
[18:50:00] <lynxlynxlynx> ^X
[18:50:27] <fuzzie> ah, thankyou!
[18:50:29] <lynxlynxlynx> i guess that is relative to the area though
[18:50:54] <fuzzie> Yes, that's what I wanted :)
[18:51:31] <lynxlynxlynx> you could've also just teleported there, it prints the coords too
[18:52:08] <fuzzie> all kinds of things in the way
[18:53:42] <fuzzie> Doesn't look like the saved coordinates are here at all in the initial CREs.
[18:56:09] <fuzzie> Okay, so ReturnToSavedPlace() is used 582 times in PS:T. Bleh.
[19:05:39] --> barra_away has joined #gemrb
[19:06:17] <fuzzie> Doesn't look like the saved coordinates are anywhere in the saved embedded creatures either.
[19:10:51] <lynxlynxlynx> Avenger: there doesn't seem to be a stat for fist apr bonus (i diffed two cres around a level where it changes)
[19:11:35] <Avenger> monks get apr only when barehanded?
[19:11:40] <lynxlynxlynx> yep
[19:12:00] <lynxlynxlynx> should be some kind of an equipping effect i guess
[19:12:02] <Avenger> sounds very nasty
[19:12:23] <Avenger> it isn't in the mfist item
[19:12:33] <lynxlynxlynx> no
[19:12:55] <lynxlynxlynx> don't know if ie_sh reports all of the cre unknowns though
[19:13:13] <lynxlynxlynx> maybe it is a new stat we don't know about yet
[19:13:59] <lynxlynxlynx> http://pastebin.ca/1471539 <-- nothing interesting
[19:15:36] <fuzzie> Hm, the area-assigned script and a couple of unknowns change between Ghysis's CRE and Ghysis being saved as part of an area, but that's it.
[19:15:51] <fuzzie> And I don't see anywhere in the CRE where the location could be saved.
[19:17:17] --> Edheldil has joined #gemrb
[19:17:17] --- ChanServ gives channel operator status to Edheldil
[19:18:04] <fuzzie> And Ghysis is not spawned, so it can't be set by the spawn script. So meh.
[19:19:17] <Edheldil> hi
[19:19:29] <fuzzie> hi, Edheldil
[19:20:25] <lynxlynxlynx> fuzzie: no place? there are plenty of unknowns in the cre format
[19:20:35] <fuzzie> lynxlynxlynx: Well, I mean, I looked all over :)
[19:20:49] <fuzzie> With a hex editor, because I don't trust any of the tools.
[19:20:59] <-- barra_library has left IRC (Success)
[19:21:05] <lynxlynxlynx> hehe
[19:21:07] <fuzzie> The changed bytes are just things like 0x0 to 0x4, too.
[19:21:30] <fuzzie> So maybe it just means "the last known-good location" or something..
[19:21:31] <Edheldil> can I do something to trust iesh? :)
[19:21:44] <lynxlynxlynx> diff -ua <(ie_shell/trunk/ieparse.py ~/infinity/wine/characters/MONK8.CHR 2>/dev/null) <(ie_shell/trunk/ieparse.py ~/infinity/wine/characters/MONK9.CHR 2>/dev/null) # I trust ie_sh :)
[19:22:30] <lynxlynxlynx> ieparse doesn't like being run like that though
[19:23:02] <Edheldil> what's the problem?
[19:23:40] <fuzzie> I think ie_shell handles all the unknowns fine, but this data could be off the end of the known file length or similar. But it seems to just not be there.
[19:23:52] <lynxlynxlynx> sometimes reports a runtime error
[19:24:19] <Edheldil> next time gime me the traceback :)
[19:24:37] <lynxlynxlynx> i can't reproduce it now
[19:24:47] <Edheldil> fuzzie, with debug_coverage it's possible to see the places it did not read
[19:24:47] <lynxlynxlynx> checking if my history still has it
[19:25:08] <fuzzie> I am looking for information about how the SavePlace/ReturnToSavedPlace stuff works in PS:T, Edheldil, in case you happen to know. :)
[19:29:29] --- barra_away is now known as barra_library
[19:33:47] <Edheldil> sounds like push and pop to me, but I do not really know.
[19:34:44] <fuzzie> The magic is: the place is not stored in the files at all, but scripts have a saved place anyway, without calling SavePlace.
[19:35:19] <fuzzie> I've been going through your set of PS:T savegames, and that is the biggest bug I found so far..
[19:36:08] <Edheldil> lynxlynxlynx, thank you for cool diff usage, I did not know something like that is possible at all :)
[19:36:30] <lynxlynxlynx> process substitution ;)
[19:37:07] <fuzzie> Oh, no, the harmonium officers started attacking me in waves again. Meh.
[19:38:39] <CIA-20> gemrb: 03lynxlupodian * r6603 10/gemrb/trunk/gemrb/override/bg2/gemprjtl.ids: gemprjtl.ids: added Lightning Bolt's bolt
[19:46:03] <fuzzie> Ah, the source code says 'please research further'.
[19:47:49] <fuzzie> It has the check the wrong way around, because otherwise AR0203 doesn't work.
[19:51:36] <fuzzie> I especially like the bit where this ini file has "[repetitive" as one line.
[19:52:12] <fuzzie> Just to make sure I have no clue whether it's meant to work or not.
[19:55:50] <lynxlynxlynx> maybe quinn knows something about it
[19:57:58] <fuzzie> I just checked, it doesn't work.
[19:59:31] <fuzzie> There's a huge number of variables set in my brand-new savegame, though.
[19:59:36] <lynxlynxlynx> Avenger: so what to do about that apr? Should I add an equipping effect in a few inventory functions? I'm not sure how to do this properly
[19:59:44] <Avenger> me neither
[20:00:03] <Avenger> what if you don't do anything about that for a while
[20:00:15] <Avenger> it smells like an ugly hack
[20:00:18] <lynxlynxlynx> monks would suck then
[20:00:44] <Avenger> well, it isn't like it will stay that way
[20:00:49] <lynxlynxlynx> or we could temporarily increase the main apr
[20:01:16] <Avenger> the same way as ac?
[20:01:20] <lynxlynxlynx> it has to be done some day and I'd prefer it to be soon
[20:01:31] <lynxlynxlynx> pretty much
[20:01:40] <Avenger> i never played a monk :)
[20:02:12] <fuzzie> How do the monk fist special abilities work?
[20:02:21] <lynxlynxlynx> i think i'll create a monk, level him to 14 and then try to shortcut throught the entire game
[20:02:56] <lynxlynxlynx> fists change according to level - the equipped fist weapon changes and that takes care of the damage and enchantment progression
[20:03:11] <fuzzie> But the ITM or equivalent doesn't handle the AC?
[20:03:20] <lynxlynxlynx> no
[20:03:36] <lynxlynxlynx> i already externalised this and we have it working
[20:03:45] <lynxlynxlynx> only the fist-only apr bonus remains
[20:05:14] <fuzzie> That's a difficult one. :(
[20:06:00] <lynxlynxlynx> it's a bit wierd there isn't a stat for this, since there are separate ones for fist tohit and damage boni
[20:06:16] <lynxlynxlynx> that's what i was looking for before
[20:20:09] <Avenger> cool some parts of bg1 and bg2 are very similar, only the constant addresses are different
[20:20:17] <Avenger> it is like a rosetta stone :)
[20:20:53] <fuzzie> Avenger: DLTCEP does not read var.var properly, it gives all values as 0
[20:21:08] <Avenger> meh, it worked before
[20:21:11] <fuzzie> also gemrb does not seem to read var.var at all.
[20:21:19] <Avenger> yes, that's intentional
[20:21:33] <Avenger> var.var is just a constraint on what variables are valid
[20:21:35] <fuzzie> var.var has the initial values of all the variables
[20:21:44] <Avenger> huh?
[20:21:50] <fuzzie> without those, many scripts fail
[20:21:53] <Avenger> there are initial values?
[20:21:54] <fuzzie> yes
[20:22:01] <fuzzie> this is PS:T, sorry, i should say
[20:22:16] <Avenger> hmm, did you just find that out?
[20:22:26] <fuzzie> well, it's documented by Platter a long time ago
[20:22:29] <Avenger> cool
[20:22:37] <fuzzie> but i just found it out again, because i was surprised at all of the variables in my brand-new PS:T savegame
[20:22:51] <fuzzie> also you have a comment in the source code about AR0203 not working if you make a check correct, and this is because the variable is not initialised
[20:22:55] <Avenger> well, i didn't know about this
[20:23:27] <Avenger> so var.var is a kind of default value mapping?
[20:23:36] <Avenger> if a variable doesn't exist, look it up in var.var
[20:23:41] <fuzzie> no
[20:23:52] <fuzzie> well, you could do it that way, maybe
[20:24:06] <fuzzie> but the original engine just loads all of the variables from var.var at startup and puts them in the list, at least for globals
[20:24:14] <Avenger> well, either that, or at creation of the game object you set all variables
[20:24:15] <fuzzie> i don't think it would work for kaputz or locals
[20:24:35] <Avenger> yes, that's why i went for the default way
[20:24:45] <Avenger> you couldn't assign them to areas
[20:24:50] <fuzzie> but we need the globals, at least
[20:24:52] <Avenger> kaputz is ok, it is in the game
[20:25:03] <Avenger> but not area variables
[20:25:21] <fuzzie> chitem does "vars[area+var]=*(long *) (&line[40]);", why would that not work?
[20:25:53] <Avenger> wow, at one point i knew there is a value in them?
[20:25:59] <fuzzie> yes
[20:26:02] <Avenger> cool
[20:26:06] <Avenger> i forget too much
[20:26:07] <fuzzie> but it doesn't show in DLTCEP, they're all zero
[20:26:25] <Avenger> maybe because it is getting the value from the wrong offset?
[20:27:25] <fuzzie> 40 is correct..
[20:27:35] <fuzzie> it is 8 bytes for type, 32 bytes for name, 4 bytes for dword value
[20:27:58] <fuzzie> oh, i guess it should be &line[39] for byte 40?
[20:27:59] <Avenger> then i don't know. i know i use an itemchecker.var file too in case of non-pst games
[20:28:03] <fuzzie> maybe you could try it, if you're in windows
[20:28:24] <Avenger> maybe it simply doesn't load var.var, but tries to load itemchecker.var
[20:28:33] <fuzzie> well, it reads all of the variable names fine
[20:28:38] <fuzzie> it just shows all the values as 0, maybe it is a UI bug
[20:29:58] <Avenger> yes, maybe an ui bug
[20:30:11] <Avenger> i'll try to fix it
[20:30:38] <Avenger> it is amazing how much one can forget about IE :)
[20:30:48] <CIA-20> gemrb: 03fuzzie * r6604 10/gemrb/trunk/gemrb/plugins/Core/IniSpawn.cpp: don't spawn creatures when spec_var is 0
[20:30:52] <fuzzie> now i broke AR0203 because the variable is missing :(
[20:31:07] <fuzzie> should i add a VARImp, or is it okay to just do in the core?
[20:31:34] <Avenger> i would add it to the game importer, maybe
[20:31:40] <Avenger> well, hmm
[20:31:46] <Avenger> except that it has area variables
[20:31:48] <Avenger> damn
[20:31:59] <fuzzie> well, it only matters for new games
[20:32:08] <Avenger> and new areas
[20:32:14] <Avenger> area variables are not in the game
[20:32:17] <fuzzie> well, if area variables work..
[20:32:31] <Avenger> sure they do
[20:32:43] <Avenger> they are stored in areas
[20:32:49] <fuzzie> i mean, the initial values :)
[20:33:07] <Avenger> well, first lemme fix dltcep
[20:33:16] <fuzzie> that would be nice, i am checking in a hex editor right now
[20:33:17] <Avenger> so we can see if there are nonzero area variables
[20:33:44] <fuzzie> i didn't find any nonzero area variables yet but there are a lot :)
[20:37:11] <Avenger> AR0602:0602_sen_8
[20:37:24] <Avenger> i just fixed dltcep :)
[20:37:55] <Avenger> AR1601:collective_status = 8
[20:38:06] <fuzzie> yes, i just found one other
[20:38:08] <fuzzie> darn
[20:38:29] <fuzzie> oh well, this explains a lot of bugs
[20:38:31] <Avenger> there are about 3 :)
[20:38:43] <Avenger> 3 area variables
[20:38:49] <Avenger> i hate blackisle
[20:38:53] <fuzzie> hehe, yes :)
[20:39:03] <fuzzie> three variables they could have put in area scripts
[20:39:11] <Avenger> yes, in oncreation
[20:39:22] <fuzzie> it turns out that their area OnCreation is buggy
[20:39:31] <fuzzie> it doesn't work if you enter via the world map
[20:39:36] <Avenger> or they could have added the variables directly in the areas
[20:39:47] <fuzzie> yes :)
[20:39:51] <Avenger> i wonder why they didn't do that
[20:40:17] <fuzzie> i think they had seperate scripting and area-editing people
[20:40:22] <fuzzie> so maybe they just wanted to keep them seperate
[20:40:53] <Avenger> ok, well, this sucks, but we don't need yet another importer
[20:41:00] <Avenger> vvc is also in the core
[20:41:32] <Avenger> we simply load var.var, but keep the nonzero variables only in a mapping
[20:41:59] <Avenger> everything that wants to create a variable, will call Interface::getDefaultValue
[20:42:14] <Avenger> that would work, i guess
[20:42:34] <fuzzie> well, CheckVariable doesn't bother creating non-existant variables, it just returns 0 for them
[20:42:40] <fuzzie> someone would have to change all of that code too
[20:43:49] <Avenger> hmm, yes, when a variable with nonzero default gets zeroed out, it will not be saved, and next time it gets the nonzero default value again
[20:44:10] <Avenger> i feel sick from this :(
[20:44:54] <Avenger> another idea: we just give the default variables on creation of game, or new area
[20:45:13] <Edheldil> Avenger, it's probably a stupid question, but why don't you use windows in a virtual machine instead of reboots to windows?
[20:45:28] <Avenger> because i never set up a virtual machine
[20:45:47] <Avenger> i need windows anyway
[20:46:16] <Avenger> directx is unavailable in vm, right?
[20:46:31] <Edheldil> sure, but this would spare you the reboots just to check on bg
[20:46:50] <Edheldil> no idea
[20:47:08] <fuzzie> Avenger: I think zeroed variables get saved fine?
[20:47:13] <Edheldil> if you mean 3d
[20:47:28] <fuzzie> yes, i think bg2's 3d doesn't work well in a vm
[20:47:29] <Avenger> fuzzie i don't know
[20:47:42] <Avenger> not even bg2?
[20:47:57] <Avenger> i thought it would, i meant nwn or mass effect, or such
[20:48:04] <Avenger> i play sometimes :)
[20:48:17] <fuzzie> Things which use opengl work fine, but I don't have much luck with anything d3d. Maybe just me, and I only use other people's computers to try :)
[20:50:29] --- barra_library is now known as barraTV
[20:50:46] <fuzzie> So should I just add a Variables::LoadPresetsForName("GLOBAL") kind of function, do you think? Or would you do something?
[20:58:25] --> pupnik_ has joined #gemrb
[20:58:47] <Avenger> hmm, yes, it is better in variables
[20:59:42] <Avenger> it could be a constructor?
[21:00:12] <Avenger> new Variables("global") or new Variables("kaputz")
[21:01:03] <fuzzie> That makes sense.
[21:01:46] * pupnik_ got his prescription for Novalgin. 500 mg of that + 60 mg morphine sulfate == NO PAIN! :)
[21:05:54] --> dawid has joined #GemRb
[21:06:18] <dawid> hi there :)
[21:06:56] <Avenger> hi
[21:07:00] <fuzzie> Avenger: Well, I don't know where to put the calls for any of it. I'
[21:07:06] <fuzzie> I'll take a look tomorrow, I guess.
[21:07:16] <Avenger> in game
[21:07:40] <dawid> any way one with rather low programming skills could help with this?
[21:08:39] <fuzzie> dawid: If you're dedicated, a lot of ways, but a lot of it is probably not much fun.
[21:09:43] <dawid> i got the original game, i tried once when ur prog was less advanced than now, and actually getting gentoo ;)
[21:09:53] <Avenger> fuzzie: in gamimp, look for: newGame->kaputz = new Variables();
[21:10:14] <Avenger> that should be new Variables("kaputz")
[21:11:12] <dawid> fuzzie: is there any "menu" i could choose from ? ;P
[21:12:21] <Avenger> in ActorBlock: locals = new Variables(); if Type==ST_GAME, then it should be new Variables("global")
[21:12:53] <fuzzie> but then that doesn't work so well for areas, because they are constructed before their name is known
[21:13:33] <fuzzie> dawid: I don't think there is much if you're not familiar with modding for the original games.
[21:14:07] <fuzzie> Just playing the games can be helpful, but we did that quite a bit recently and have a long list of bugs :) Although some 'sorting out' of our bugs might be useful.
[21:14:16] <Avenger> yes, that needs to be sorted out
[21:14:31] <dawid> fuzzie: sorted how?
[21:15:48] <Avenger> testing is always good
[21:16:03] <fuzzie> They could do with sorting into categories, the difficult ones filing properly in our bug tracker, and stuff. I guess it still requires a lot more familiarity with the engine. :/ So just testing and reporting previously-unknown bugs is maybe best.
[21:16:16] <lynxlynxlynx> since you say you don't have much coding skills, starting at something that is the most broken would get you results the fastest and easiest
[21:16:35] <dawid> yep :)
[21:16:46] <Avenger> testing if fixed bugs remained fixed helps a lot
[21:16:47] <lynxlynxlynx> like iwd guiscripts
[21:17:02] <lynxlynxlynx> dawid: which games do you have
[21:17:04] <Avenger> or testing if the chargen process still works in all games, or such
[21:17:18] <fuzzie> Usually the advice here is to try learning a bit of Python, which is a friendly language, and poking at the scripts for the GUI.
[21:17:30] <dawid> bg2 and one of the iwds but dont remember which one
[21:17:34] <fuzzie> But testing is also helpful if you can avoid reporting bugs that we already know.
[21:17:53] <dawid> Avenger: whats chargen [rocess?
[21:17:56] <fuzzie> http://linux.prinas.si/gemrb/doku.php?id=todo is our quick list of bugs, and then our sourceforge page has a bug tracker.
[21:18:04] <fuzzie> chargen is Character Generation, what happens when you click New Game :)
[21:18:10] <Edheldil> getting gemrb working on gentoo (should be easy) and reporting it is a help too
[21:18:13] <fuzzie> bg2's Import functionality is broken but it's such a pain
[21:18:20] <dawid> k :)
[21:18:23] <Avenger> you just try if you can create a character, try to create ALL types of characters
[21:18:49] <fuzzie> there's an ebuild in gentoo's bug tracker for gemrb 0.4.0, njw does them
[21:19:00] <Edheldil> ah
[21:19:31] <dawid> fuzzie: just tried emerge at least doesnt see it, gonna look some more
[21:19:38] <Avenger> well, testing with svn head is better
[21:19:46] <fuzzie> dawid: http://bugs.gentoo.org/158336
[21:20:09] <fuzzie> there's a 'GemRB Live SVN ebuild' there, but I don't know if it works
[21:20:15] <Avenger> we just added some 400 commits since 0.4.0 which was half a month ago :)
[21:21:26] <fuzzie> Avenger: I think the Variables thing is easier to add as a seperate function too (for areas) for now, and I'll add a constructor for KAPUTZ and GLOBAL?
[21:21:38] <Edheldil> dawid, what games do you have?
[21:22:01] <Avenger> well either that, or just pass the resref along to the constructors :)
[21:22:02] <dawid> bg2 and and iwd
[21:22:33] <Avenger> i don't mind a separate fucntion
[21:22:39] <Avenger> function
[21:23:18] <fuzzie> I just don't want to change much a day before the release :)
[21:23:55] <Avenger> heh, there are projectiles that don't convey the effects and explode on the caster O_o
[21:24:11] <fuzzie> by mistake?
[21:24:13] <Avenger> the mushroom type projectiles
[21:24:21] <Avenger> they are all the same in bg1 and tob
[21:24:29] <Avenger> i wonder if they are used anywhere
[21:24:56] <Avenger> release?
[21:24:56] <Edheldil> so maybe you could get iwd's guiscripts to a better shape than they are now
[21:25:04] <Avenger> you want a release? :)
[21:25:15] <fuzzie> Avenger: lynx is planning a release on Thursday, i think
[21:25:22] <fuzzie> it is a month since the last one and we fixed so much :)
[21:25:41] <lynxlynxlynx> i think that's tommorow ;)
[21:25:47] <Avenger> hmm ok
[21:26:17] <dawid> ok,just a mom pls, i cant find it in the tree anyway,so ill have to get it directly from u
[21:26:28] <fuzzie> So I am trying not to break anything too much.
[21:26:31] <Avenger> if i know there is a release i would have said you don't commit that script patch :D
[21:26:37] <fuzzie> I want to move the combat code into the actions!
[21:26:41] <fuzzie> But it breaks too much right now.
[21:26:48] <fuzzie> Because the rest of the code is stupid.
[21:26:48] <lynxlynxlynx> we talked about that Avenger
[21:27:10] <lynxlynxlynx> i didn't test much, but fuzzie says things are better now :)
[21:27:27] <Avenger> yes, i hear that too, i really trust her :)
[21:27:49] <Avenger> i actually tested dltc
[21:27:53] <fuzzie> Imoen still doesn't greet me. :(
[21:27:54] <Avenger> it worked
[21:28:08] <fuzzie> Apparently we do not do the INITIAL_MEETING sound yet.
[21:28:14] <fuzzie> Avenger: oh, yay :)
[21:30:26] <fuzzie> I still don't know how to make LastSeenBy and friends work, it will not be fun.
[21:32:23] <fuzzie> Either we have to keep a copy in the action object, or we have to keep a copy in the Sender. both ways suck.
[21:33:56] <lynxlynxlynx> do you want me to postpone the release for a day or three?
[21:34:32] <fuzzie> Well, it would be nice to have some more testing! But I think releasing on Thursday is great.
[21:35:31] <lynxlynxlynx> ok
[21:36:23] <lynxlynxlynx> ok, my monk has 4 apr now :)
[21:36:28] <fuzzie> :)
[21:36:51] <fuzzie> My 'important things to fix' are just the PS:T vars thing, and AttackedBy (because it breaks spellcasters).
[21:37:03] <lynxlynxlynx> i'll go test illy now
[21:37:32] <lynxlynxlynx> the table will have to be moved up though, since now it is loaded each fx refresh -> spam
[21:37:49] <fuzzie> Otherwise all of my changes are quite likely to break things, so they're best after a release, I think.
[21:43:28] <lynxlynxlynx> illy cast a few spells as usual
[21:43:37] <fuzzie> lynxlynxlynx: but if you attack her, she'll stop
[21:43:59] <lynxlynxlynx> maybe i was too late
[21:44:19] <fuzzie> Or maybe you're using a fixpacked version?
[21:44:24] <lynxlynxlynx> no
[21:44:40] <lynxlynxlynx> i did attack the summons first, to try some other stuff
[21:45:33] <lynxlynxlynx> another mod idea - tob-intro-be-gone
[21:51:37] <fuzzie> Avenger: what is the best way to preserve object filter results, do you think? storing them in the Sender somewhere? I am not going to try this now, I'm just wondering.
[21:52:15] <Avenger> there are some fields that are presumably used for this
[21:52:20] <Avenger> in sender
[21:52:49] <Avenger> but i think that is only 5 bytes
[21:53:02] <Avenger> not in our engine
[21:53:16] <Avenger> i just saw these in iesdp, .cre fileformat
[21:53:37] <fuzzie> You only have to preserve them for a blocking action, so I don't think they're saved.
[21:54:14] <Avenger> could be something else
[21:54:33] <Avenger> these unknowns are around the actor's own ids
[21:54:55] <fuzzie> I guess I'll keep them in the Sender anyway, I don't want to mess around with the Action class.
[21:55:14] <Avenger> ielister shows them this way:
[21:55:16] <Avenger> 0275h Gender 02
[21:55:18] <Avenger> 0276h Object IDS 00
[21:55:20] <Avenger> 0277h Object IDS 00
[21:55:21] <Avenger> 0278h Object IDS 00
[21:55:23] <Avenger> 0279h Object IDS 00
[21:55:25] <Avenger> 027ah Object IDS 00
[21:55:26] <Avenger> 027bh Alignment 33
[21:55:34] <Avenger> the 5 bytes between gender and alignment
[21:55:57] <Avenger> i think i read something about them that might fit your missing values :)
[21:56:19] <fuzzie> interesting :) I'll have to have a look, after the release. Thanks!
[21:56:45] <Avenger> could it be just a simple global ID ?
[21:56:58] <Avenger> that would fit on a dword
[21:57:34] <fuzzie> I think their global IDs fit in words.
[21:57:48] <Avenger> i just work on a dltcep update, for the .var fix
[21:58:42] <fuzzie> Oh, those 5 bytes are probably just the IDENTIFIERS from object.ids, and they're only there to make IDS targetting easier.
[21:59:08] <Avenger> yes, that could be
[21:59:38] <Avenger> there are 5 of those, yeah
[22:01:07] <fuzzie> That makes sense too :)
[22:01:58] <Avenger> ok, the new editor is on g3, if you still want ot look at the pst variables
[22:02:10] <fuzzie> thankyou
[22:06:03] <-- Avenger has left IRC ("ChatZilla 0.9.85 [Firefox 3.0.11/2009060215]")
[22:17:18] <CIA-20> gemrb: 03avenger_teambg * r6605 10/gemrb/trunk/gemrb/override/ (8 files in 2 dirs): more projectiles in BG
[22:17:28] <lynxlynxlynx> one thing that looks new is that whenever you move, the actor immediately faces south
[22:18:03] <fuzzie> If you move in any direction?
[22:18:18] <lynxlynxlynx> yes
[22:18:19] <CIA-20> gemrb: 03avenger_teambg * r6606 10/chitem/trunk/ (chitem.clw chitem.rc chitemDlg.cpp seekers.cpp variables.cpp): dltcep update
[22:18:22] <fuzzie> Huh.
[22:18:36] <fuzzie> You're not using the original engine by accident?
[22:18:51] <lynxlynxlynx> uh what? :)
[22:19:05] <fuzzie> It does that sometimes.
[22:20:45] <fuzzie> As far as I can tell, whenever you move, the actor should face in the direction of the goal..
[22:20:50] <lynxlynxlynx> yes
[22:21:20] <lynxlynxlynx> another off-by-1 error: our monks use sorcerer thac0 progression
[22:21:23] <fuzzie> That is a silly pathfinder bug, but I don't want to touch the pathfinder yet.
[22:21:44] <lynxlynxlynx> that is a regression btw
[22:22:01] <lynxlynxlynx> i'm sure it worked since i needed it to test the offset changes for the casting animations
[22:22:17] <fuzzie> you're doing this while paused?
[22:22:21] <lynxlynxlynx> no
[22:23:44] <fuzzie> Just normal movement?
[22:23:54] <lynxlynxlynx> yep
[22:24:10] <lynxlynxlynx> you don't experience the same?
[22:24:48] <fuzzie> I misunderstood what you said; you mean at the end of movement, I guess.
[22:24:57] <lynxlynxlynx> yes
[22:27:26] <CIA-20> gemrb: 03lynxlupodian * r6607 10/gemrb/trunk/gemrb/plugins/Core/Actor.cpp: added hack so monks get the apr bonus
[22:27:32] <lynxlynxlynx> good night
[22:27:37] <fuzzie> night
[22:28:00] <-- lynxlynxlynx has left IRC (Remote closed the connection)
[22:35:27] <CIA-20> gemrb: 03fuzzie * r6608 10/gemrb/trunk/gemrb/plugins/Core/Actions.cpp: fix RandomFly
[22:38:10] <dawid> http://gemrb.svn.sourceforge.net/svnroot << is this still actual?
[22:38:30] <fuzzie> no
[22:38:49] <fuzzie> well, it's the right repository root, but it's not very helpful
[22:39:02] <dawid> ok, well that address is still on ur site
[22:39:06] <fuzzie> http://gemrb.svn.sourceforge.net/svnroot/gemrb/gemrb/trunk/ is probably what you want.
[22:39:34] <dawid> ok :)
[22:41:38] <fuzzie> There's lots of other things at http://gemrb.svn.sourceforge.net/svnroot though - the DLTCEP (Win32 modding tool) source, the launcher, various tools, installers, etc.
[22:46:18] <dawid> fuzzie: couldnt open that addres via firefox nor eclipse
[22:47:36] <fuzzie> Strange! Does the /trunk/ one work?
[22:47:57] <dawid> the longer one U gave me is ok
[22:48:29] <dawid> i know DLTCEP more or less, used it some time ago when i was geek ;P
[22:50:34] <fuzzie> Avenger wrote DLTCEP, so it is updated for new gemrb features and new things we find.
[22:50:58] <fuzzie> It would be nicer to have a Linux tool but it would be a lot of work to port it.
[22:52:02] <dawid> fuzzie: as long as the source is there i could try, theres no better way to learn than face-to-floor :D
[22:52:38] <dawid> that screenshot on nokia is that real? o.O
[22:52:59] <fuzzie> yes, there are some videos on youtube
[22:53:19] <fuzzie> it has a huge screen though, bg2 needs 640x480 to run
[22:53:53] <dawid> yep, it was always a little low for me, less than 1024 i mean
[23:03:16] <Edheldil> good night
[23:03:19] <-- Edheldil has left IRC ("Really?")
[23:49:06] <-- tombhadAC has left IRC (Remote closed the connection)
[23:59:19] <dawid> fuzzie: does the autogen work for U w/o modifications?