#gemrb@irc.freenode.net logs for 20 Mar 2011 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:01:36] <tomprince> When I get home next week, I can get my gemrb buildbot back up and running.
[00:02:48] <tomprince> I could set it up to automatically build packages, but I would need minimal VM images and instructions for building packages for any distro we care about.
[00:03:16] <tomprince> That, or somebody to host a buildslave. VM is probably easier, in the long run.
[00:03:23] <fuzzie> i am under the impression the majority of people who come by are running ubuntu
[00:04:07] <fuzzie> but honestly not sure.
[00:04:21] <fuzzie> which mingw were you using for your builds, btw, official mingw?
[00:04:45] <tomprince> I think i was using the offical 4.5 build.
[00:04:53] <fuzzie> *nod*
[00:04:57] <tomprince> Or the unoffical offical 4.5, or something.
[00:05:55] <fuzzie> well, the tdm-gcc ones are not broken but i forget what the situation was at the time
[00:07:06] <fuzzie> i suppose you were likely using the official builds, in which case i can forget trying to diagnose the weird issues there :)
[00:08:58] <tomprince> I wasn't using tdm.
[00:11:44] <fuzzie> the official 4.5 builds just produce broken code :/
[00:11:49] <fuzzie> well, maybe not latest, i'll have to look again
[00:12:33] <fuzzie> if i hover over the statues in Trademeet then i get a dialog cursor, not good :)
[00:13:40] <fuzzie> ok, i broke the worldmap nav code
[00:13:55] <fuzzie> if i hover in the right place, i get infinite loop between two places
[00:14:48] <tomprince> It would be nice if somebody else could host the win32 slave eventually, since I don't use window at all. Or perhaps I could get away with cross-compiling.
[00:15:07] <fuzzie> the scummvm buildbot even manages to crosscompile for OS X, i think
[00:17:54] <fuzzie> i am not familiar with buildbot but i assume it does it without vms
[00:19:06] <tomprince> Well, there is a master, which gives out work, and a bunch of slaves that do the work.
[00:19:29] <tomprince> I had it set up with one linux slave and one windows slave in a vm.
[00:19:33] <fuzzie> their config seems to have a single slave
[00:20:12] <fuzzie> i don't know if that is *easier* though
[00:20:25] <fuzzie> i don't know if the windows vm is so important anyway..
[00:20:29] <fuzzie> erm, the windows build
[00:21:44] <tomprince> was/is nice for msvc6 compat
[00:22:02] <tomprince> Other than that, don't know.
[00:22:34] <tomprince> If I can get some working AI scripting in python, that might be something to attract moders & users.
[00:22:59] <fuzzie> well, the modders would be interesting
[00:23:40] <tomprince> I have everything using the effect opcode registration techinique, nicely abstracted. Just need to figure out how best to wire it to python.
[00:24:05] <tomprince> I'll probably post what I have on tues.
[00:24:24] <fuzzie> how have you wired it up, just actions which call into python?
[00:25:01] <tomprince> Well, my thought was to first just expose the exising action and triggers to python.
[00:25:14] <fuzzie> that would make a lot more sense
[00:25:29] <fuzzie> but then it seems it is not spectacularly helpful to move to a registration technique :)
[00:26:02] <tomprince> Well, mostly that is because having the list of all the actions in the header file annoyed me. :)
[00:26:38] <fuzzie> ok :)
[00:26:58] <fuzzie> but where would you hook in the python calls? into our Script?
[00:28:10] <tomprince> Well (in my branch), GameScript is now a abstract base class.
[00:28:18] <fuzzie> i guess that works out quite nicely in gemrb's model
[00:28:23] <fuzzie> the original just hardcodes the whole lot
[00:28:31] <tomprince> And I have an IEScript class that handles bcs files.
[00:28:55] <tomprince> I would have a PythonScript class that handles python AI scripts.
[00:29:01] <fuzzie> i would be interested to see :)
[00:30:04] <fuzzie> i think overriding at that level should work
[00:30:11] <tomprince> The only thin I am not sure how to handle is the continuing and done paramaters to update.
[00:30:38] <fuzzie> well, the precise inner workings there are not so important
[00:30:50] <fuzzie> you could return an enum
[00:31:11] <fuzzie> the original just pokes right into the action queue of the script block found, and sees if there's a continue action there
[00:32:13] <fuzzie> and similarly just checks the block id against the internally stored one, to see if it should give up
[00:33:40] <fuzzie> my implementation of that block id thing is probably wrong, as noted in comment
[00:35:26] <fuzzie> i guess you could do like the original and pass action lists around, except that doesn't work very well for this because the python can't then *manipulate* the queue as much
[00:36:01] <-- Akileos has left IRC (Ping timeout: 260 seconds)
[00:36:30] <tomprince> Well, my thought for a first step, would be just to run the script, and expose a way for python to enqueue actions, just like the IEScript.
[00:37:19] <tomprince> And certainly, allowing more complex manipulation would be good.
[00:37:42] <tomprince> Of course, the everything that we expose to GUIScripts would be there, and vice-versa.
[00:38:04] <fuzzie> yes, which is a bit unfortunate
[00:38:14] <tomprince> Unfortunate?
[00:38:40] <fuzzie> you can't provide a 'safe' modder interface
[00:39:05] <fuzzie> too many ways to break the game state from under you
[00:39:05] <tomprince> I think it would certainly be *possible*.
[00:39:16] <fuzzie> well, yes, but in the assumption we don't have decades :)
[00:39:21] <fuzzie> i guess it is modders problem though
[00:39:59] <tomprince> Well, what I meant is that we could provide a locked down python interface. I don't think it would be *very* difficult.
[00:40:05] <fuzzie> it is one frustrating thing about embedding python, CPython is also always unsafe in a security sense
[00:40:28] <tomprince> But I would tend to the side of being permissive anyway.
[00:40:56] <tomprince> I do remember seeing some articles about providing a minimal safe python interface.
[00:40:59] <fuzzie> so you end up with mods being able to run arbitary code, which is sad
[00:41:55] <tomprince> There are security implications. Which is unfortunate.
[00:41:56] <raevol> off to a show, see you guys later :)
[00:42:06] <-- raevol has left IRC (Quit: Leaving.)
[00:42:18] <tomprince> But I think, other than that, allowing everything we do from GUIScripts is a good thing.
[00:42:33] <fuzzie> well, yes, we had this discussion before about reentrant guiscript of course ;)
[00:43:14] <fuzzie> but it might be interesting for people thinking about writing whole games
[00:43:47] <fuzzie> anyway, i guess i'll get to see your patches and spend a day or two flailing about how invasive the changes are, maybe
[00:43:52] <fuzzie> for now i should probably sleep
[00:43:59] <tomprince> :)
[00:44:59] <fuzzie> oh drat, i forgot i wasl ooking at worldmap bug
[00:47:16] <fuzzie> oh dear lord, why is the AddNewArea code all in GUIScript.cpp
[02:16:31] <-- Bo_Thomsen has left IRC (Quit: Leaving.)
[02:21:06] <-- |Cable| has left IRC (Ping timeout: 240 seconds)
[02:22:13] --> |Cable| has joined #GemRb
[03:00:04] <-- edheldil_ has left IRC (Ping timeout: 255 seconds)
[05:26:33] <tomprince> fuzzie: Would concatinating all the scripts of an object together, and running that give the right behaviour? (Not that that actually makes sense to do, necesarily)
[06:48:53] --> edheldil_ has joined #GemRb
[07:09:47] <-- Maighstir|phone has left IRC (Ping timeout: 248 seconds)
[07:16:05] <-- edheldil_ has left IRC (Ping timeout: 255 seconds)
[09:32:41] --> test32894789234u has joined #GemRb
[10:19:08] <fuzzie> tomprince: well that sounds horrible :)
[10:43:51] <-- devurandom has left IRC (Ping timeout: 260 seconds)
[10:47:47] --> devurandom has joined #GemRb
[10:49:55] <-- test32894789234u has left IRC (Quit: test32894789234u)
[10:50:19] --> test32894789234u has joined #GemRb
[11:56:25] --> Bo_Thomsen has joined #GemRb
[12:18:21] <fuzzie> oh, bioware's site got EA-ified
[12:18:28] <fuzzie> which is to say, any and all useful stuff has been deleted
[12:20:22] <Lingerance> lol
[12:26:39] <fuzzie> that is rather irritating, i want the patch list and the sodding patch is a random exe file
[12:27:22] <fuzzie> gamespot seems to have a copy though.
[12:39:19] <fuzzie> it's kind of amusing, their patch list really has the same kind of bugs we spend all the time fixing
[12:55:13] --> Maighstir|phone has joined #GemRb
[13:01:07] <pupnik> what patch / what game fuzzie ?
[13:01:15] <fuzzie> allll the games.
[13:01:19] <fuzzie> i mean, all the IE games.
[13:01:31] <fuzzie> i was looking for an explanation for why Edwin is hardcoded to ignore unselectable for script purposes
[13:01:39] <fuzzie> i didn't find one yet, i should ask on the forum
[13:02:09] <fuzzie> i was expecting lynx or Avenger or someone to wake up
[13:03:56] <fuzzie> but i suppose not
[13:04:02] <fuzzie> so i shall go be useful elsewhere
[13:04:13] <pupnik> ok
[13:04:16] <pupnik> o/
[13:05:43] --> edheldil_ has joined #GemRb
[13:09:23] --> kettuz has joined #GemRb
[13:12:02] <-- edheldil_ has left IRC (Ping timeout: 255 seconds)
[13:13:18] --> edheldil_ has joined #GemRb
[13:24:06] <-- edheldil_ has left IRC (Ping timeout: 240 seconds)
[14:33:10] <-- Bo_Thomsen has left IRC (Quit: Leaving.)
[14:33:12] --> pupnik_ has joined #GemRb
[14:36:07] <-- pupnik has left IRC (Ping timeout: 250 seconds)
[14:38:26] <-- Maighstir|phone has left IRC (Ping timeout: 255 seconds)
[14:47:48] <fuzzie> oh dear, ankhegs are entirely hard-coded i see
[14:51:25] --- pupnik_ is now known as pupnik
[14:52:23] <pupnik> :/
[14:52:32] <pupnik> design seems rather ad-hoc
[14:53:25] <fuzzie> it truly is
[14:55:53] <fuzzie> but this will be fun to fix
[15:16:41] <pupnik> it's part of working under deadline
[15:28:13] --> Bo_Thomsen has joined #GemRb
[15:39:21] <-- |Cable| has left IRC (Remote host closed the connection)
[15:41:00] --> |Cable| has joined #GemRb
[15:52:12] <fuzzie> http://fuzzie.org/nfs/gemrb/func_movetoobject.txt <- the magic of disasm
[16:07:33] <tomprince> I know it is horrible. I was mor interested in if it behaves as-if that was done. (It seems to).
[16:09:49] <fuzzie> i think it doesn't in original, because of the weighting
[16:10:11] <fuzzie> and i guess we do the same thing in gemrb
[16:11:04] <fuzzie> hm they do the stupid hack with Or too :)
[16:13:24] <fuzzie> no, i guess in bg2 it behaves like that
[16:13:44] <fuzzie> i would not want to write such an API in gemrb unless it is also ok for iwd2, though
[16:15:49] <fuzzie> (and obviously there's hardcoded stuff for skipping or not skipping certain script slots, so you'd have to do the concat somewhere which knew about that)
[16:16:08] <fuzzie> i figured that slot stuff was infrequently changed but turns out, not so much
[16:16:19] <fuzzie> got to love those bioware folksen
[16:18:12] <fuzzie> but iwd2 has all kinds of wildly different script behaviour, i wonder if they just rewrote all this dispatching stuff
[16:35:25] <tomprince> https://gist.github.com/878431 is my first (minimal) stab at handling OR sanely.
[17:07:55] <fuzzie> um
[17:09:20] <fuzzie> well i don't know why this is such crazy code
[17:10:05] <fuzzie> which worries me :)
[17:10:51] <fuzzie> bg2 hardcodes a check for 0x4089, which is Or
[17:11:54] <fuzzie> which, ok, fine, makes sense, but then it also plays ORcount type games. i assume for no reason.
[17:17:33] <fuzzie> i guess it looks fine, but it seems silly to do this way
[17:25:17] <fuzzie> https://gist.github.com/878470 is what original does
[17:25:23] <fuzzie> but i should check iwd2
[17:26:14] --> lynxlynxlynx has joined #GemRb
[17:26:14] <-- lynxlynxlynx has left IRC (Changing host)
[17:26:14] --> lynxlynxlynx has joined #GemRb
[17:26:14] --- ChanServ gives channel operator status to lynxlynxlynx
[17:26:24] <fuzzie> hey lynx
[17:26:49] <lynxlynxlynx> oj
[17:28:40] <fuzzie> original seems to just seperate spellcasting actions into normal and Force types, and only does checks in the normal ones
[17:29:36] <fuzzie> so i guess the deplete is probably enough but will look later
[17:36:39] <lynxlynxlynx> ok
[17:45:11] <fuzzie> in backscroll i put a decode of the movetoobject action
[17:45:34] <fuzzie> i'll probably try doing that for attack/spell stuff too
[18:56:15] --> Maighstir has joined #GemRb
[19:00:39] <fuzzie> hmm
[19:01:03] <fuzzie> so apparently that function is CAIResponseSet::Choose()
[19:01:08] <-- test32894789234u has left IRC (Quit: test32894789234u)
[19:01:10] <fuzzie> also i can't believe no-one noticed the function names were lying around
[19:03:46] <fuzzie> ah, that ankheg vtable func is CGameAnimationTypeMonsterAnkheg::GetAboveGround()
[19:05:46] <-- Bo_Thomsen has left #GemRb
[19:49:00] --> griwik has joined #GemRb
[19:51:43] <-- griwik has left IRC ()
[20:22:26] <-- PixelScum has left IRC (Ping timeout: 240 seconds)
[20:30:26] --> Drakkar has joined #GemRb
[20:31:38] <fuzzie> ok, you are all too quiet :)
[20:37:09] <pupnik> heh
[20:37:40] <pupnik> i feel bad for being offtopic
[20:37:57] --> edheldil_ has joined #GemRb
[20:38:22] <fuzzie> offtopic is better than silent
[20:41:53] <pupnik> well
[20:42:19] <pupnik> i should do a build for the archos tablet
[20:42:28] <pupnik> and see if i can help with UI
[20:42:33] <pupnik> http://www.engadget.com/2011/03/20/sneak-peek-at-archos-gen-9-tablets-1-6-ghz-dual-core-a9-process/
[20:46:29] <lynxlynxlynx> fuzzie: commit something :)
[20:47:01] <fuzzie> i'm not sure i have much to commit :/
[20:47:09] <fuzzie> i don't know what to do about the immobile check
[20:47:16] <fuzzie> i guess i should go properly look at that.
[20:55:25] <lynxlynxlynx> just taking it out sounds reasonable for the time being
[20:55:40] <lynxlynxlynx> the deplete stuff also sounds like a good candidate
[20:55:56] <lynxlynxlynx> it's just one line
[20:57:27] <fuzzie> fair points both
[21:00:25] * pupnik tries n900 gemrb again
[21:01:06] <pupnik> music, animations play great
[21:03:51] <pupnik> Decompressing file: [||||||||||] is pretty heavy stuff
[21:04:09] <fuzzie> yep
[21:05:33] <fuzzie> oops, i forgot to fix the buffer size for that code
[21:06:23] <pupnik> lots of these atm
[21:06:23] <pupnik> [GameScript]: Actionoverride failed for object:
[21:06:23] <pupnik> Object: bystand1
[21:06:23] <pupnik> [GameScript]: Actionoverride failed for object:
[21:06:24] <pupnik> Object: bystand2
[21:06:29] <fuzzie> those are normal
[21:06:47] <-- kettuz has left IRC (Quit: Leaving)
[21:06:49] <fuzzie> this is why i want a log framework :/
[21:07:06] <pupnik> selecting whole party with = works
[21:07:10] <pupnik> thank you SO MUCH
[21:10:17] <fuzzie> i am curious how much of that time is spent printing the [||||||||||]
[21:11:34] <pupnik> heh
[21:11:40] <fuzzie> ok. none. good :)
[21:12:17] <pupnik> would it make the game install gigantic to leave those areas uncompressed?
[21:12:30] <fuzzie> define gigantic
[21:12:53] <fuzzie> i think it would be less than double the size
[21:13:07] <pupnik> might be worth doing
[21:13:39] <fuzzie> oh yes, i remember why i didn't fix the buffer size, because bioware are insane
[21:15:14] <pupnik> do you know if anyone has done work for a tablet-ui?
[21:15:30] <pupnik> with an 800x480 screen, there would be space for onscreen buttons on left and right
[21:15:31] <fuzzie> there's some hack in the source code to add edge zones if TOUCHSCREEN is defined
[21:15:44] <pupnik> cool
[21:15:55] <pupnik> ++
[21:16:12] <pupnik> so it just needs some graphics ?
[21:17:59] <fuzzie> i have no idea
[21:20:59] <CIA-48> GemRB: 03fuzzie * r5281c7cb3652 10gemrb/gemrb/plugins/ZLibManager/ZLibManager.cpp:
[21:20:59] <CIA-48> GemRB: increase the default ZLibManager buffer size to 8192
[21:20:59] <CIA-48> GemRB: this is a reasonable upper bound for common compressed BIF data, for now
[21:21:28] <lynxlynxlynx> pupnik: the edge zones are used for scrolling atm
[21:22:02] <fuzzie> now we don't end up doing two zlib calls for every BIF block..
[21:22:13] <fuzzie> i have no idea what bioware were thinking though
[21:22:38] <pupnik> could i increase that buffer to $huge ?
[21:22:48] <fuzzie> it is on the stack :P
[21:22:54] <pupnik> ohh
[21:23:09] <fuzzie> we are releasing next week, so i am making only the minimal change
[21:27:44] <pupnik> does current code show journal text as light grey for you?
[21:29:06] <fuzzie> you're on ARM?
[21:29:22] <pupnik> yes
[21:30:21] <pupnik> clicking on un-walk-to-able areas deselects party
[21:30:47] <pupnik> sometimes
[21:34:55] <pupnik> Ow Thaxll'ssillyia is tough
[21:35:56] <pupnik> ok there are a few graphical color errors on arm.
[21:36:04] <pupnik> the text issue might be related
[21:38:19] <fuzzie> lynxlynxlynx: do you know of the race/class bonuses for secret door detection?
[21:38:56] <lynxlynxlynx> only myth afaik
[21:39:14] <lynxlynxlynx> in 3ed they get a bonus to the spot check
[21:39:21] <fuzzie> well i am looking at CGameSprite::GetSecretDoorDetection() with a switch table for race and class :)
[21:39:36] <lynxlynxlynx> interesting :)
[21:40:01] <fuzzie> but i think it is quite likely it is misnamed and is generic trap detection
[21:41:01] <fuzzie> oh, no
[21:41:11] <fuzzie> because it is 100 if modalstate is DETECTTRAPS :)
[21:41:34] <fuzzie> otherwise it is a 20 bonus for ELF, a 10 bonus for DWARF and a 5 bonus for HALFLING, no other race bonus
[21:42:13] <fuzzie> base is 5 (e.g. for mage or sorceror)
[21:43:06] <fuzzie> thief classes (thief, bard, fighter_thief, mage_thief, cleric_thief, monk) get base of 15
[21:43:37] <fuzzie> everyone else gets base of 10
[21:43:52] <fuzzie> that is it.
[21:45:02] <-- edheldil_ has left IRC (Ping timeout: 255 seconds)
[21:50:50] <pupnik> how do i center screen on party? without searching around the map
[21:52:19] <fuzzie> ctrl-p if you have cheat keys i think
[21:52:36] <pupnik> works! thanks
[22:22:52] <Maighstir> double-click a portrait should also work
[22:23:12] <pupnik> something more deterministic is appreciated :)
[22:23:12] <Maighstir> to center on that character
[22:23:49] <pupnik> yea i know about that
[22:24:16] <pupnik> let's see if it works on n900
[22:24:26] <Maighstir> :-P
[22:25:41] <pupnik> heh somehow i got all items selected with blue boxes
[22:26:05] <pupnik> except for the quiver and weapon held in off-hand, and ring in
[22:26:12] <fuzzie> i think that is intentional
[22:26:29] <fuzzie> it is an exaggerated version of the way some game (iwd2?) indicates magic item
[22:26:42] <fuzzie> but it looks really silly in bg2 when all is magic :P
[22:27:51] <pupnik> hah i forgot about the 'Umar Witch Project' journal
[22:28:12] <pupnik> i was invited to do music for the Blair Witch Project game, but didn't have time
[22:28:18] --> Bo_Thomsen has joined #GemRb
[22:28:49] <pupnik> ahh those *are* all magic items
[22:29:09] <pupnik> sorry - i've forgotten so much
[23:01:35] <fuzzie> "Hey wouldn't it be great if we had a day a week to debug our code, update our notes, and try to plan for the next week?" - Mark
[23:01:38] <fuzzie> "Sure! Would you like Saturday or Sunday?" - Ray
[23:01:42] <fuzzie> ^- comments section of bg1 exe, heh :)
[23:03:37] <pupnik> hmm Ray Muzyka, exec producer / Mark Darrah, lead programmer
[23:03:43] <pupnik> maybe
[23:04:35] <fuzzie> also, the edwin thing might date back to bg1 days
[23:05:17] <fuzzie> it is in strings for exe in about the right place
[23:05:28] <fuzzie> and the scripting is full of UnselectableVariable(0) checks
[23:05:47] <fuzzie> althoguh i guess *all* the PC scripting is full of those checks
[23:06:27] <fuzzie> and bg2 only has leftover ones
[23:07:02] <pupnik> did any of the authors ever chat with you?
[23:07:11] <pupnik> like 'hey thanks' or 'nice job' etc
[23:07:27] <fuzzie> i think no-one's talked to anyone on gemrb project, for gemrb
[23:08:12] <fuzzie> i've had thankyou emails for other engines before
[23:08:54] <fuzzie> but i think gemrb just isn't there yet
[23:09:13] <fuzzie> i know that Black Isle people are reachable out there though..
[23:13:07] <pupnik> one of the betrayal at krondor guys was encouraging to me but i was just porting xbak
[23:15:44] --> fuzzie_ has joined #GemRb
[23:15:44] <-- fuzzie has left IRC (Read error: Connection reset by peer)
[23:54:48] <-- lynxlynxlynx has left IRC (Remote host closed the connection)