#gemrb@irc.freenode.net logs for 12 Jan 2014 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:21:22] <brada> fuzzie: BAMImporter::GetFramePixels operates on a stream. maybe add a flag to GetAnimationFactory to get decompressed data?
[00:23:01] <-- Canageek has left IRC (Ping timeout: 248 seconds)
[00:26:51] <brada> or since we probably want to compress sprite pixels for Beholders sanity we can privitize the field and let the BAMSprite2D handle decomprssion
[00:27:05] <brada> im sure you are asleep now so Ill bug you about it in the morning
[00:27:14] <brada> i should probably go do something fun anyway :p
[00:33:07] <brada> of course we still need that field in the video driver. and decompressing would copy the data :/
[00:44:37] <-- brada has left IRC (Quit: brada)
[00:55:28] --> brada has joined #gemrb
[01:33:48] <-- brada has left IRC (Quit: brada)
[04:05:18] --> brada has joined #gemrb
[04:09:17] <-- |Cable| has left IRC (Ping timeout: 245 seconds)
[04:12:24] <-- brada has left IRC (Quit: brada)
[04:13:30] --> Canageek has joined #gemrb
[04:14:42] <-- Canageek has left #gemrb
[04:22:47] --> |Cable| has joined #gemrb
[05:31:07] --> brada has joined #gemrb
[07:33:24] <-- brada has left IRC (Quit: brada)
[08:25:59] --> kpederse1 has joined #gemrb
[08:29:25] <-- kpedersen has left IRC (Ping timeout: 272 seconds)
[09:18:50] --> edheldil_ has joined #gemrb
[09:54:31] --> Yoshimo has joined #gemrb
[09:55:32] <fuzzie> brada: right, I think the video driver has to know about this case, maybe just have a CreateBAMSprite on the video driver which gives us back something appropriately subclassed. sigh.
[10:05:40] <fuzzie> the alternative is rearchitecting things so that we can always recover the data from disk
[10:05:46] <fuzzie> or recreate
[10:05:55] <fuzzie> but I think that's possibly crazy
[10:09:50] --> Eli2_ has joined #gemrb
[10:12:37] <-- Eli2 has left IRC (Ping timeout: 245 seconds)
[11:08:07] <-- edheldil has left IRC (*.net *.split)
[11:08:10] <-- Lightkey has left IRC (*.net *.split)
[11:08:11] <-- Yoshimo has left IRC (*.net *.split)
[11:43:56] --> edheldil has joined #gemrb
[11:47:49] --> Yoshimo has joined #gemrb
[11:51:11] --> Lightkey has joined #gemrb
[13:20:16] <-- Yoshimo has left IRC (Remote host closed the connection)
[13:23:10] <lynxlynxlynx> fuzzie: it seems iwd2 has dialog pause; either by default or the same way bg2 does
[13:23:56] <lynxlynxlynx> http://www.youtube.com/watch?v=1HA-p7W5RQM <-- vs what happens now is that we do run a few ticks between various dialog states
[13:23:57] <Pepelka> Icewind Dale II Playthrough Part 53: Sherincal Fight - YouTube
[13:23:59] <Pepelka> »Here it is, the fight against Sherincal. And you gotta love the music, this is one of my favorites :) Yay, what a fight..This was Glaciff´s revenge..Urgroth ...«
[13:30:31] <fuzzie> lynxlynxlynx: I don't understand
[13:31:01] <lynxlynxlynx> we should hard pause
[13:31:44] <fuzzie> I thought we did
[13:32:13] <lynxlynxlynx> the dialog starts and it looks like a pause, but picking new answers always runs a tick or maybe more, so the other enemies approach, status messages get to the message window and you can sometimes see animation frames change
[13:32:33] <fuzzie> oh, it was sabotaged by Avenger in 6ab6da8c56e3e27bd9b6c79c8523a04c9ac85420
[13:33:03] <lynxlynxlynx> we set the flags field for non-bg2 to 1 recently
[13:34:33] <fuzzie> well, I'm still confused
[13:35:03] <fuzzie> dialog pause should either pause everything or pause nothing?
[13:37:10] <lynxlynxlynx> that's what i thought?
[13:38:28] <lynxlynxlynx> i thought just that recent change was not holding water for iwd2 and the flags would need to be set to behave like bg2
[13:42:56] <fuzzie> but do you know if tht's the problem?
[13:46:49] <lynxlynxlynx> still have to check
[13:49:23] <fuzzie> brada changed the map update behaviour in a confusing way and it seems like approach/updates might happen at the wrong times now
[13:50:03] <fuzzie> but it shouldn't be related in any way to the dialo
[13:50:04] <fuzzie> g
[13:51:02] <fuzzie> unless the dialog target is the game or map itself, but that should be impossible always
[14:17:06] <lynxlynxlynx> it was a normal actor
[14:17:19] <lynxlynxlynx> testing in bg2 looks fine
[14:18:05] <lynxlynxlynx> not all dialogs cause the pause button animation to halt, but all seem to pause, which is a bit odd
[14:18:37] <fuzzie> what controls the pause button anim?
[14:20:01] <lynxlynxlynx> pause state, but perhaps the gui side is not called often enough
[14:20:14] <lynxlynxlynx> anyway, this is an ancient save, so also the dialog flags could be corrupt
[14:20:32] <fuzzie> they're not saved
[14:20:48] <fuzzie> there's a 'TimeWindow' in GUICommonWindows.py but it's unused
[14:21:20] <lynxlynxlynx> hmm, in the other case, the button is not visible at all
[14:22:34] <fuzzie> the code looks ok
[14:22:44] <fuzzie> if the pause anim is running then the game is running
[14:26:17] <fuzzie> the check on GlobalTimer.cpp:198 will effectively block movement when we're in dialog I guess
[14:26:24] <fuzzie> so a bug
[14:26:54] <lynxlynxlynx> there's also IE_IGNOREDIALOGPAUSE which we never take into account
[14:28:25] <fuzzie> but.. it makes it even more difficult to understand how you see updates when you pick dialog options
[14:29:42] <lynxlynxlynx> ok, so bg2 seems to handle it just fine, even when the dialog pause isn't triggered
[14:29:58] <lynxlynxlynx> i was attacked and cast on while starting the dialog and nothing progressed
[14:31:41] <fuzzie> in original?
[14:33:07] <lynxlynxlynx> no, gemrb
[14:33:18] <lynxlynxlynx> ... re stat: nothing uses that effect
[14:33:25] <fuzzie> I think it doesn't work
[14:34:51] <fuzzie> oh, no, it just has different consequence than I expected
[14:35:15] <fuzzie> devSin documents it
[14:35:26] <fuzzie> complete with testcase in original
[14:36:10] <fuzzie> after adding effect, I mean
[14:37:28] <lynxlynxlynx> got a link?
[14:37:50] <fuzzie> http://forums.gibberlings3.net/index.php?showtopic=6083
[14:37:54] <Pepelka> ToB effects - The Gibberlings Three Forums
[14:37:55] <Pepelka> »#5 Charm creature - The flags here are weakbit 0 - turn hostile after duration (1); return to previous alignment (0) bit 1 - dire cha...«
[14:40:09] <lynxlynxlynx> annoying
[14:41:07] <lynxlynxlynx> but nothing uses it, so i'll just ignore it
[14:41:38] <fuzzie> my notes are very odd here
[14:41:57] <fuzzie> they check dialogpause || EA >= EVILCUTOFF || !dialoginterrupt
[14:42:22] <fuzzie> where dialogpause is 1 (true) for continue-while-paused stat
[14:46:39] <fuzzie> so probably the *rest* of that check is relevant
[14:47:23] <fuzzie> and it's probably different in bg1/pst. agh.
[14:53:55] <lynxlynxlynx> as far as practicalities are concerned, you were right with pointing the other commit out
[14:54:25] <lynxlynxlynx> but it's not that much of a problem, just slightly different behaviour
[15:28:11] --> brada has joined #gemrb
[15:31:46] <brada> fuzzie: right now im just sabotaging it so the bamfont AF is populated with regular paletted sprites.
[15:32:26] <brada> worry aout it later after i have it working :)
[15:57:16] <brada> all things considered I feel like things are going well :p
[16:01:20] <fuzzie> I have no idea what you're saying there either
[16:01:48] <fuzzie> oh you mean for your own font stuff
[16:02:59] <brada> yes
[16:04:17] --> Yoshimo has joined #gemrb
[16:04:42] <fuzzie> yes you'd want non-BAM-compressed sprites for the font input
[16:05:11] <brada> right, but i was asking about how we wanted to go about that
[16:05:17] <brada> and for now sabatoge is easy
[16:05:35] <brada> its also not an entirely bad method in and of itself imo
[16:05:42] <brada> i can pastebin you the diff if you like
[16:06:01] <fuzzie> if you're happy with it
[16:06:32] <fuzzie> I didn't understand your question at all
[16:06:44] <fuzzie> I thought you were askign about the general BAM case
[16:06:49] <brada> i know i can be utterly confusing :D
[16:07:16] <fuzzie> while you want something very special-case, a Sprite2D which does *not* go via the video driver, really
[16:07:28] <brada> yes that what i have
[16:07:33] <brada> making it myself
[16:07:48] <fuzzie> do you actually?
[16:08:03] <fuzzie> or does your code explode if I replace 'pixels' with something weird? :)
[16:08:20] <brada> that one ha ha
[16:08:40] <fuzzie> we should really make it private
[16:08:44] <brada> yes
[16:08:47] <fuzzie> why is it public?
[16:08:53] <brada> video driver i assume
[16:09:06] <brada> my refactor was really moving things, nothing more
[16:09:23] <brada> i generally left the membbers as they were
[16:10:10] <fuzzie> anyway I would proceed on the assumption that Sprite2D is opaque
[16:10:40] <fuzzie> but sounds like it's probably too late for that
[16:10:45] <brada> its fine
[16:10:47] <fuzzie> I don't understand why we pass BAMFont an AnimationFactory at all
[16:10:54] <brada> the code isnt horribly complicated
[16:11:06] <brada> thats how it looks up the frames
[16:11:41] <fuzzie> right, but you can trivially just create a BAMImporter instead
[16:12:29] <fuzzie> I mean, you're the only one who adds an AnimationFactory into the mix :)
[16:12:43] <brada> well you remember i knew nothing about anything back then right :)
[16:12:48] <fuzzie> and this is why I was confused by the question "BAMImporter::GetFramePixels operates on a stream"
[16:12:57] <brada> well it does
[16:13:08] <fuzzie> yes, but what's the problem with that?
[16:13:56] <brada> nothing if you get all your frames up front
[16:13:57] <fuzzie> your existing code creates the stream and passes it to BAMImporter, just .. don't create a useless AnimationFactory afterwards :P
[16:14:49] <fuzzie> well, you really have to get all your frames up front anyway, for a font
[16:15:52] <fuzzie> anyway, it's all uninteresting detail
[16:15:56] <brada> yes
[16:16:18] <fuzzie> the tricky bit (and what I thought you were asking about) is doing it for general sprites :)
[16:16:33] <brada> how do you mean?
[16:16:51] <fuzzie> getting the frame pixels, I mean
[16:17:08] <fuzzie> since for the OpenGL situation we were discussing you'd want to be able to do that indeed
[16:18:29] <fuzzie> but for fonts it'd be silly
[16:18:33] <brada> yes
[16:18:39] <fuzzie> because you don't want to be repeatedly decompressing, you want to do it once, at load time
[16:18:44] <brada> right
[16:19:01] <brada> thats what im doing now, but I should and can apparently use a BAMImporter instead
[16:19:12] <brada> why didnt anybody point that out before :p?
[16:19:31] <brada> that was back when somebody had to commit my work for me iirc
[16:20:00] <fuzzie> everyone except Beholder has commit access now righht?
[16:20:23] <brada> depends what you mean by everyone
[16:20:31] <fuzzie> who is workign on code
[16:20:32] <brada> chiv makes a lot of contributions
[16:20:50] <fuzzie> chiv's commits still via lynx?
[16:20:56] <brada> pull requests
[16:21:24] <fuzzie> oh, I hadn't noticed
[16:21:35] <brada> lynx is just typically the only person that knows if his work is good that actually check pull requests :p
[16:21:40] <brada> i merged one or 2
[16:21:50] <fuzzie> well I'd have no problem with chiv having commit access
[16:22:01] <fuzzie> but lynx knows much better
[16:22:02] <brada> well i think chiv might :p
[16:22:14] <brada> he doesnt want to be tempted to commit hacks
[16:22:53] <brada> i think its best we force ourselves to review his work for now. not that i have much room to talk o_o
[16:23:03] <fuzzie> I don't understand why IncrementGlobalOnce would act like it does but I didn't check the callers
[16:24:40] <lynxlynxlynx> pst is full of that variant
[16:25:19] <fuzzie> yes, I don't have the pst dlg files dumped here
[16:25:32] <lynxlynxlynx> seems to be a pst specific thing anyway
[16:26:10] <lynxlynxlynx> ah no, a few in how
[16:26:41] <lynxlynxlynx> IncrementGlobalOnce("Evil_Aldwin_2", "GLOBAL", "Good", "GLOBAL", -1)
[16:26:55] <lynxlynxlynx> all are four-paramed
[16:27:10] <fuzzie> yes is that fixed now?
[16:27:22] <lynxlynxlynx> no
[16:27:55] <fuzzie> I really havne't been paying attention to chiv's repo
[16:28:12] <brada> chiv has a fix, but you suggested it may be wrong
[16:28:14] <lynxlynxlynx> he posts links when it matters, it's all in various branches
[16:28:45] <lynxlynxlynx> he has a better fix now, just a bit unclean
[16:30:19] <-- edheldil_ has left IRC (Ping timeout: 260 seconds)
[16:51:23] --> kpedersen has joined #gemrb
[16:53:45] <-- kpederse1 has left IRC (Ping timeout: 252 seconds)
[17:08:59] --> kpederse1 has joined #gemrb
[17:12:39] <-- kpedersen has left IRC (Ping timeout: 276 seconds)
[17:24:55] <-- Yoshimo has left IRC (Ping timeout: 260 seconds)
[17:36:19] --> Jerinaw has joined #gemrb
[17:36:43] <Jerinaw> Does GemRB work with Baulder's Gate Enhanced Edition from Steam?
[17:39:09] <-- Jerinaw has left IRC (Client Quit)
[17:47:55] <brada> i love how nobody ever stays around long enough for an answer :/
[18:06:45] <lynxlynxlynx> not everyone is familiar with irc
[18:31:07] <-- brada has left IRC (Quit: brada)
[18:37:17] --> brada has joined #gemrb
[18:37:30] --> edheldil_ has joined #gemrb
[18:49:45] --> Beholder has joined #gemrb
[18:49:53] <Beholder> hi
[18:52:36] <wjp> hello
[19:09:38] --> jackhunter has joined #gemrb
[19:10:08] <jackhunter> hi there
[19:14:43] <Beholder> i think i need to implement method for delete unused palettes
[19:15:06] <Beholder> textures for palettes i mean
[19:15:26] <Beholder> game may call it if palette not needed more
[19:16:02] <Beholder> check palettes on a loop will kill performance
[19:17:15] <Beholder> method is a best solution to prevent leaks causes with unused palette textures
[19:17:39] <wjp> a loop every frame (or every 10 frames?) shouldn't take much time, should it?
[19:19:41] <Beholder> every frame fully kills performance
[19:19:49] <Beholder> i tried
[19:20:21] <Beholder> every 10 frames may be laggy too, not a good way
[19:20:24] <wjp> how many palettes do you have?
[19:30:40] <Beholder> now i have leaks
[19:30:46] <Beholder> with textareas
[19:34:23] <Beholder> >600 after loading BG first area
[19:36:48] <lynxlynxlynx> let me recap, if i remember correctly: don't worry, brad will make it worse?
[19:37:10] <brada> :/
[19:37:38] <jackhunter> lol:p
[19:39:19] <Beholder> deletion palette that not attached to sprite causes memory corruption in palette manager. but if i increase ref counter it will not be deleted
[19:39:42] <Beholder> until quit game
[19:43:06] <fuzzie> yes, so you have to check IsShared() yourself
[19:44:20] <Beholder> i cant use loops
[19:45:08] <Beholder> too expensive
[19:51:14] <wjp> hm, I wonder why. A loop over 600 palette's shouldn't be that expensive
[19:51:29] <wjp> s/'//
[19:51:31] <fuzzie> yes I'm just sitting here pondering that
[19:51:54] <fuzzie> Beholder's probably in debug mode with default settings which means VC++'s iterators are soooo slow
[19:52:14] <Beholder> thats a map, palette is a part of key
[19:52:24] <fuzzie> but even then it's O(n)
[19:52:45] <fuzzie> it shouldn't be noticeable
[19:53:13] <wjp> maybe they're still leaking somewhere and the number grows rapidly?
[19:53:44] <wjp> or if there's a lot of churn, the deletes could be expensive?
[19:53:47] <Beholder> text generates many new palettes
[19:53:57] <fuzzie> text generates one new palette per unique color per frame
[19:54:13] <fuzzie> per unique color span per frame, even
[19:54:17] <Beholder> and in next frame a new palettes
[19:54:19] <fuzzie> yes
[19:54:31] <fuzzie> your code should be capable of coping with palette animation
[19:54:49] <Beholder> and its shared
[19:54:59] <wjp> still doesn't sound like too many operations though
[19:55:16] <fuzzie> yes, as long as you clean up palettes
[19:55:33] <fuzzie> if you actually clean up you shouldn't come anywhere near 600 palettes
[19:55:45] <fuzzie> let me check out Beholder's branch
[19:55:59] <Beholder> isShared returns false if palette is not used of any sprite?
[19:56:07] <fuzzie> more interesting than battling evolutionary algorithms
[19:56:23] <fuzzie> Beholder: yes, if there's only one owner
[19:56:31] <fuzzie> (and if you acquire()d it, then you are the owner)
[19:57:03] <Beholder> i acqure only attached palettes thats not shared
[19:57:49] <fuzzie> well, that will eventually crash
[19:58:06] <fuzzie> you must acquire and release all palettes which you keep a pointer to
[19:59:22] <Beholder> palettes that i get on createSprite already acquire()d?
[20:00:26] <fuzzie> yes
[20:00:33] <fuzzie> but you must also acquire them!
[20:00:42] <Beholder> i need to acqure all attached
[20:00:47] <fuzzie> yes
[20:00:57] <fuzzie> why don't you do it in the palette manager?
[20:01:22] <Beholder> right
[20:01:55] <fuzzie> the 'attachedPalette' makes it very complicated
[20:02:39] <Beholder> but what can i do with attached?
[20:02:51] <fuzzie> why keep it?
[20:03:07] <fuzzie> I mean, just handle that in the palette manager
[20:05:16] <Beholder> may be create another collection for attached and clear it every frame
[20:05:23] <Beholder> to prevent loop
[20:05:28] <fuzzie> why prevent the loop?
[20:05:34] <Beholder> slow
[20:05:39] <fuzzie> the loop should not be slow
[20:05:58] <fuzzie> unless you have many thousands of palettes, but then something leaked
[20:06:47] <fuzzie> in order to clear, you have to have a loop anyway?
[20:08:02] <Beholder> right... but loop only for attached
[20:08:19] <fuzzie> the number really shouldn't matter :/
[20:09:56] <fuzzie> but, yes, separating out the attached palettes would make this simpler for you
[20:13:09] <lynxlynxlynx> ctrl-j in the original iwd2 doesn't center on the party and is so barely usable
[20:13:13] <lynxlynxlynx> poor testers
[20:15:15] <Beholder> if i separate attached, i do not need acqure and release palettes that i get with sprites?
[20:16:23] <brada> the sprites are owners of their own palettes, no?
[20:16:48] <Beholder> yes
[20:16:53] <brada> that is the sprites should be acquiring and releasing
[20:17:11] <Beholder> sprite2D?
[20:17:17] <Beholder> in base class?
[20:18:12] <fuzzie> no
[20:18:31] <fuzzie> brada: 'attached' here are palettes which are *not* owned
[20:18:38] <brada> ok
[20:18:51] <Beholder> but what about not attached
[20:19:05] <Beholder> i need to acqure it or not
[20:19:08] <brada> i havent loked at the code so id best just stay out of it to avoid confusing poor Beholder :p
[20:19:26] <fuzzie> Beholder: you have to acquire anything you keep a pointer of
[20:19:36] <Beholder> ok
[20:19:56] <fuzzie> but if you do the attached palettes in the palette manager, then sprites don't have to know what the attached palette is
[20:20:08] <fuzzie> so you can acquire in the palette manager instead
[20:23:54] --> Canageek has joined #gemrb
[20:24:24] <Beholder> right
[20:24:28] <Beholder> a good idea
[20:41:21] <fuzzie> you saw how release/acquire are defined, right? in the header of Sprite2D? maybe that helps show how it works
[20:48:50] <jackhunter> i am really impressed by what you do
[20:49:04] <jackhunter> i mean all this coding work on your free time
[20:50:12] --> Yoshimo has joined #gemrb
[20:51:02] <jackhunter> yoshimo, back from the death, once controlled by irenicus
[21:06:32] <-- lynxlynxlynx has left IRC (Read error: Connection reset by peer)
[21:07:52] --> lynxlynxlynx has joined #gemrb
[21:07:52] --- ChanServ gives channel operator status to lynxlynxlynx
[21:08:22] <-- brada has left IRC (Quit: brada)
[21:08:59] --> brada has joined #gemrb
[21:17:31] <jackhunter> anyone here hs a frsh copy of falllout 1 installed?
[21:19:30] <-- Yoshimo has left IRC (Quit: Yoshimo)
[21:32:50] <-- Beholder has left IRC (Quit: Leaving)
[21:34:19] <brada> I downloaded it when it wass free, still havent installed it :)
[21:46:13] <edheldil_> I hope mine is safe on gog shelf :)
[22:03:22] <jackhunter> so basically brradha and edelhil
[22:03:39] <jackhunter> if you have a moment one day i would need to make a test
[22:03:52] <jackhunter> it seems two major bugs of falloout 1 are about to be fixed
[22:04:18] <jackhunter> apparently there is a way to unlock followers of apocalypse and the hub good endings
[22:05:38] <jackhunter> wqith a save game editor, like var save editor
[22:05:44] <jackhunter> set Gvar132:Train_followers to 1
[22:06:33] <jackhunter> and for the hub good ending
[22:06:36] <jackhunter> set GVAR606 to 1
[22:06:51] <jackhunter> http://www.nma-fallout.com/showthread.php?201245-Looking-for-help-from-someone-who-s-good-at-reverse-engineering-or-reading-Assembly
[22:06:53] <Pepelka> Looking for help from someone who's good at reverse engineering or reading Assembly
[22:06:55] <Pepelka> »No Mutants Allowed is a gaming site dedicated to post nuclear role playing series - Fallout, Fallout 2, Fallout 3. Largest news database on the Internet.«
[22:50:40] <edheldil_> if anyone's keen on squashing an easy bug: bg2 demo, chargen, stats tab: define <MINIMUM> and <MAXIMUM> tokens
[22:55:24] <edheldil_> also: skill tab, <number> tag
[23:13:16] <lynxlynxlynx> yeah, the demo is full of them for some reason
[23:13:43] <lynxlynxlynx> but imho it's not worth it, it would just clog the scripts
[23:14:09] <edheldil_> it really is demo-specific?
[23:15:00] <Pepelka> [wiki] developers:edheldil http://www.gemrb.org/wiki/doku.php?id=developers:edheldil&rev=1389568409&do=diff
[23:15:15] <lynxlynxlynx> of course, we'd be deaf by now otherwise
[23:25:41] <edheldil_> eh...
[23:41:23] <-- brada has left IRC (Quit: brada)
[23:54:59] <edheldil_> otoh, bg2demo is our only semi-free dataset
[23:55:48] --> brada has joined #gemrb
[23:57:31] <Pepelka> [wiki] developers:edheldil http://www.gemrb.org/wiki/doku.php?id=developers:edheldil&rev=1389570841&do=diff