#gemrb@irc.freenode.net logs for 5 May 2010 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:14:37] --- budlust1 is now known as budlust
[00:34:28] <-- Gekz_ has left IRC (Quit: This computer has gone to sleep)
[01:13:20] <-- Edheldil_ has left IRC (Remote host closed the connection)
[02:36:57] <-- budlust has left #GemRb ("Leaving.")
[03:28:38] --> Gekz has joined #GemRb
[03:42:15] <-- tomprince_loki has left IRC (Ping timeout: 240 seconds)
[03:48:45] --> tomprince_loki has joined #GemRb
[03:50:03] --> budlust has joined #GemRb
[03:51:01] <-- tomprince_loki has left IRC (Read error: Connection reset by peer)
[03:51:09] --> tomprince_loki has joined #GemRb
[04:21:15] <-- Nomad010 has left IRC (Ping timeout: 240 seconds)
[04:58:31] <-- Gekz has left IRC (Quit: This computer has gone to sleep)
[05:05:25] <-- tomprince_loki has left IRC (Ping timeout: 264 seconds)
[06:01:06] <-- Dark-Star|Away has left IRC ()
[06:35:20] <-- budlust has left IRC (Quit: Leaving.)
[06:48:58] --> budlust has joined #GemRb
[07:38:30] <-- fuzzie has left IRC (Ping timeout: 276 seconds)
[07:53:06] --> lynxlynxlynx has joined #GemRb
[07:53:06] --- ChanServ gives channel operator status to lynxlynxlynx
[07:57:18] --> fuzzie has joined #GemRb
[08:30:22] <fuzzie> NickDaly updated that patch
[08:31:43] <lynxlynxlynx> is there a webway to see the diff of the tree against our origin?
[08:32:05] <lynxlynxlynx> he screwed up the merge
[08:32:28] <fuzzie> that is exactly what i was about to ask :)
[08:33:16] <lynxlynxlynx> meh :)
[08:33:47] <lynxlynxlynx> i guess we have to add the remote and then check with git diff
[08:46:08] <-- xrogaan has left IRC (*.net *.split)
[08:47:25] --> xrogaan has joined #GemRb
[08:50:42] <-- |Cable| has left IRC (Remote host closed the connection)
[09:29:35] * fuzzie mumbles bad things about boost::variant
[09:29:37] <fuzzie> oh, wrong window
[11:11:14] <lynxlynxlynx> hmm, the mob escapes the area even before you free viconia
[11:11:41] <lynxlynxlynx> and then she gets stuck in the thank-you dialog, looping
[11:11:55] <lynxlynxlynx> no fight at all
[11:14:47] <fuzzie> i know that we execute actions in dialogs too early sometimes
[11:15:13] <fuzzie> and i think escapearea isn't actually implemented, so the actors just escape instantly
[11:15:52] <lynxlynxlynx> [GameScript]: Unfinished OR block encountered! <-- it all starts with these warnings
[11:16:13] <lynxlynxlynx> they do walk away nicely btw
[11:20:07] <fuzzie> from forum discussions i think the unfinished OR block behaviour is the same as in the original engine
[11:20:14] <fuzzie> so that should be okay
[11:28:30] --> Gekz has joined #GemRb
[11:41:59] <-- budlust has left #GemRb ("Leaving.")
[11:45:16] --> budlust has joined #GemRb
[12:02:32] --> Gekz_ has joined #GemRb
[12:02:42] <-- Gekz has left IRC (Read error: Connection reset by peer)
[12:06:23] --> Gekz has joined #GemRb
[12:07:48] <-- Gekz_ has left IRC (Read error: Connection reset by peer)
[12:36:09] <-- budlust has left #GemRb ("Leaving.")
[12:44:51] --> budlust has joined #GemRb
[14:29:31] --> tomprince_loki has joined #GemRb
[14:41:35] <-- lynxlynxlynx has left IRC (*.net *.split)
[14:50:00] --> lynxlynxlynx has joined #GemRb
[14:57:03] --> Nomad010 has joined #GemRb
[15:01:07] <-- tomprince_loki has left IRC (Read error: Connection reset by peer)
[15:56:37] <CIA-13> GemRB: 03tom.prince * ra02004e17d6c 10gemrb/gemrb/core/VFS.cpp:
[15:56:37] <CIA-13> GemRB: PathJoin: Fix dropping of path component on failed lookup.
[15:56:37] <CIA-13> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[15:57:15] --> tomprince_loki has joined #GemRb
[16:58:19] --> kettuz has joined #GemRb
[17:43:34] --> |Cable| has joined #GemRb
[17:44:56] <lynxlynxlynx> looks like GetHappiness is broken
[17:46:14] <lynxlynxlynx> the happy.2da table does have one row for each point of reputation, but the function decimates it (probably passed tenfold like elsewhere), so the previous maximum check limits the return to two or three rows
[17:49:44] --> cubathy has joined #GemRb
[17:53:59] <tomprince_loki> fuzzie: Have you tested the PNG code on big-endian ever?
[18:00:44] <fuzzie> sure
[18:00:59] <fuzzie> maybe not after your changes
[18:01:37] <fuzzie> but remember, before your changes, only BMP files worked for most things (eg, heightmaps, searchmaps, etc)
[18:02:19] <tomprince_loki> I was just wondering if the mask data was right for PNGs.
[18:02:30] <fuzzie> yes, it doesn't look right
[18:03:06] <fuzzie> interesting
[18:03:35] <tomprince_loki> Well, I am finally getting around to rewritting GetSprite2D in terms of GetImage or GetBitmap/GetPalette. Which will fix it, if it was broken. Or break it if it worked. :)
[18:04:23] <fuzzie> i assume png_read_image returns native endianness.
[18:04:45] <fuzzie> i don't really care about png files :)
[18:05:22] <fuzzie> i couldn't work out a way to do GetSprite2D in terms of GetBitmap/GetPalette/etc without adding a bunch of extra allocation gunk
[18:06:23] <fuzzie> although i'm not sure how much that matters, since BAMs/TIS do their own thing
[18:07:44] <tomprince_loki> or.cz/image has what I have right now. Although the MOS is buggy right now.
[18:11:23] <fuzzie> so, yeah, that adds an allocation
[18:11:50] <fuzzie> i don't know how much it gets called, maybe it's not a problem.
[18:12:13] <fuzzie> presumably you can just add a printf in that GetSprite2D. :)
[18:14:17] <fuzzie> i am even more stuck in optimisation mode recently, the only code i've been working on has been stuff where all the cycles matter..
[18:14:47] <tomprince_loki> Yes. And we could declare that GetImage/GetBitmap/GetSprite2D can only be called once, so that the Image/Sprite2D takes ownership of the buffer, avoiding an extra allocation.
[18:16:05] <fuzzie> if that is possible, then i'm sure we can do something about the endianism thing later
[18:18:40] <fuzzie> i mean: i don't have time now, but don't let it hold up committing.
[18:34:25] --> Edheldil_ has joined #GemRb
[18:40:47] <-- cubathy has left IRC (Ping timeout: 252 seconds)
[18:53:53] <lynxlynxlynx> boom
[18:54:25] <CIA-13> GemRB: 03lynxlupodian * r14cd74d99cee 10gemrb/gemrb/core/Actor.cpp: added a todo and clarified a comment
[18:54:27] <CIA-13> GemRB: 03lynxlupodian * r582787e940de 10gemrb/gemrb/core/VFS.cpp: Merge branch 'master' of ssh://gemrb.git.sourceforge.net/gitroot/gemrb/gemrb
[18:54:30] <CIA-13> GemRB: 03lynxlupodian * r25f999e4a8c0 10gemrb/gemrb/core/Actor.cpp: Actor::Die: update the reputation when appropriate
[18:54:40] <CIA-13> GemRB: 03lynxlupodian * r536b38e24cd1 10gemrb/gemrb/core/Actor.cpp: apply the reputation penalty when dealing nonlethal damage too
[18:54:41] <CIA-13> GemRB: 03lynxlupodian * r14927201299b 10gemrb/gemrb/core/GSUtils.cpp: GetHappiness: fixed the bounds check and return value
[18:54:41] <CIA-13> GemRB: 03lynxlupodian * r5dec3f508012 10gemrb/gemrb/core/Actor.cpp: macrofy the few hardcoded class constants
[18:58:58] <tomprince_loki> Any reason for macros instead of consts?
[19:00:58] <fuzzie> because we use macros everywhere already, i assume
[19:01:12] <fuzzie> if you both have time again, the following are pretty independent:
[19:01:16] <fuzzie> http://github.com/fuzzie/gemrb/commit/9b4cf9b9.patch
[19:01:21] <fuzzie> http://github.com/fuzzie/gemrb/commit/1dac164d.patch
[19:01:27] <fuzzie> http://github.com/fuzzie/gemrb/commit/4a6c792d.patch
[19:12:35] <tomprince_loki> This is a work in progress, and I don't have a code generator yet, but I was thinking of implementing something like http://www.math.uwo.ca/~rprince5/are.decl for the importers.
[19:18:42] <fuzzie> my first thought is that it conflicts with what's in mytree
[19:18:55] <fuzzie> (asserts/checks everywhere)
[19:19:52] <fuzzie> but i would worry that in general it would limit what we could do
[19:22:53] <fuzzie> but i can't really conclude anything from that example because it doesn't do very much :)
[19:24:23] <tomprince_loki> Well, in fact it does nothing. :) But my idea was to have a declarative description of all the file formats, and then have a code generator that turns that into code to read and write that from a DataStream.
[19:25:48] <tomprince_loki> That file is just me playing around with syntax, as I write the declaration of ARE files.
[19:27:26] <fuzzie> but then you have some code snippet to actually handle what you read?
[19:27:58] <tomprince_loki> Yes.
[19:28:02] <fuzzie> that would be my real question about it; i wouldn't want even *more* format-specific stuff in the core
[19:29:07] <fuzzie> otherwise it would depend on if it actually got any tidier :)
[19:29:09] <tomprince_loki> No. I was imagining the code would still live in the plugins.
[19:29:45] <tomprince_loki> I think that it would probably cleanup the writing code a fair bit.
[19:29:53] <tomprince_loki> If not, then no, it isn't worth it.
[19:31:09] --> cubathy has joined #GemRb
[19:31:19] <tomprince_loki> I am a bit suprised that there are no real libraries out there for doing things like that.
[19:36:26] <fuzzie> in C++? i think it just wouldn't be worthwhile, in general
[19:41:54] <tomprince_loki> Would think it would be at least somewhat useful anytime you need to deal with endianness issues. And particularily for network protocols with bitfields.
[19:42:41] <tomprince_loki> There are any number of tools for doing it, if you can control the format, but hardly any for fixed formats, in any language, really. Except for a few in Python and Haskell.
[19:44:28] <fuzzie> yes, there's no shortage of serialization libraries :) i've tried using a couple of the python libraries for REing, but i've never found it worthwhile - you really need *code* to describe how to handle a lot of data, nothing is ever expressive enough
[19:49:32] <-- cubathy has left IRC (Ping timeout: 252 seconds)
[19:51:15] * tomprince_loki is annoyed with colorkeyed true color images.
[19:53:15] * tomprince_loki wonders if one can do (0,0xFF,0,0xFF) -> (0,0xFF,0,0) everywhere, or if that will screw up lightmaps.
[20:05:05] <fuzzie> i'm confused as to what you mean
[20:05:10] <fuzzie> you want to drop the alpha channel?
[20:05:34] <fuzzie> i don't think we even handle 32bpp bmp files, do we?
[20:06:05] <fuzzie> and the alpha-channeled effects are all in Sprite2D land at the moment, i thought
[20:08:01] <lynxlynxlynx> those three patches, do they need any more work, just testing, both or none? :)
[20:08:29] <fuzzie> i just wanted someone to glance at them and commit, if possible
[20:08:53] <fuzzie> most of my local work is a messy stack of script changes which are going to need me to find some time to test in the original engine, unfortunately
[20:09:08] <lynxlynxlynx> glancing i did, but you know my skill level
[20:10:24] <lynxlynxlynx> i'll check the action one, the other two look inert enough
[20:11:29] <fuzzie> tomprince_loki: if you're thinking of removing colourkeyed true color images entirely for the MOS thing, isn't that a performance hit? we do a lot of MOS redrawing in stupid circumstances
[20:11:42] <fuzzie> although then again, really that is a bug on the redrawing level
[20:12:54] <fuzzie> lynxlynxlynx: well, you seem more than qualified to review those :)
[20:17:43] <fuzzie> after trying to help physics students learn C++, i think my skill-level-o-meter is mostly out of order
[20:19:17] <lynxlynxlynx> heh
[20:19:43] <CIA-13> GemRB: 03fuzzie * re3e4cbb4e3bd 10gemrb/gemrb/ (core/Map.h plugins/AREImporter/AREImporter.cpp):
[20:19:43] <CIA-13> GemRB: read/write area rest spawn fields
[20:19:43] <CIA-13> GemRB: (cherry picked from commit 1dac164dc52b35db90644002fa57dbbf041e7b7f)
[20:19:43] <CIA-13> GemRB: Signed-off-by: Jaka Kranjc <lynxlupodian@users.sourceforge.net>
[20:19:44] <CIA-13> GemRB: 03fuzzie * re67320ccb9fc 10gemrb/gemrb/ (3 files in 2 dirs):
[20:19:44] <CIA-13> GemRB: add RemovalTime field to Actor, read/write it
[20:19:45] <CIA-13> GemRB: (cherry picked from commit 4a6c792d5e6dea2c118981c4c533b09c94e9d5cc)
[20:19:45] <CIA-13> GemRB: Signed-off-by: Jaka Kranjc <lynxlupodian@users.sourceforge.net>
[20:19:49] <CIA-13> GemRB: 03fuzzie * rf6092d33244a 10gemrb/gemrb/ (3 files in 2 dirs):
[20:19:49] <CIA-13> GemRB: add a PerformActionOn function to GameControl, so ActOnPC can call that directly
[20:19:49] <CIA-13> GemRB: (cherry picked from commit 9b4cf9b98425d2541bd825bf2c912e636eb090ef)
[20:19:49] <CIA-13> GemRB: Signed-off-by: Jaka Kranjc <lynxlupodian@users.sourceforge.net>
[20:40:26] <fuzzie> thanks
[20:41:26] <lynxlynxlynx> i'm looking at Map::Rest now, to add the new stuff
[20:45:58] <tomprince_loki> Just trying to figure how to cleanly deal with transparency, while not limiting file formats that handle alpha properly.
[20:47:02] <tomprince_loki> That is, allowing new formats to have color (0,0xFF,0).
[20:48:25] <fuzzie> well, i would just have ImageMgr subclasses provide that data
[20:48:44] <fuzzie> but i think you're wedded to the "clean interface" idea and i just want to avoid silly duplicate code :)
[20:50:35] <tomprince_loki> I am somewhat, yes. :)
[20:50:42] <tomprince_loki> Perhaps too much so...
[20:51:26] <tomprince_loki> And that is likely what I'll end up doing.
[20:51:30] <fuzzie> I would've just written an internal interface to provide the data and made Bitmap, Image and Sprite2D all pull from that.
[20:53:41] <tomprince_loki> That seems like it might make sense.
[20:55:25] <fuzzie> I mean, I don't claim it's better! It would just have been my first approach.
[20:55:39] <tomprince_loki> Can perhaps avoid an allocation that way too.
[20:56:03] <tomprince_loki> I wasn't saying it was, but it is an option worth considering.
[20:58:05] <fuzzie> Someone should wrap that #pragma in Interface.h with a VC check, btw.
[20:59:24] <tomprince_loki> Perhaps move it into win32def.h with the other pragma warnings.
[21:00:03] <fuzzie> Sounds perfect. :) I just don't have git here.
[21:09:55] <tomprince_loki> Apparently it is already there.
[21:25:45] <fuzzie> perhaps you removed the include?
[21:26:46] <fuzzie> for some reason, 'git log -M -p Interface.h' isn't following the rename here
[21:37:49] <tomprince_loki> git gui blame seems to work well for that.
[21:38:25] <-- kettuz has left IRC (Quit: Leaving)
[21:41:48] <tomprince_loki> But, in this case it doesn't seem as simple as that. I suspect that it is some transative include that got nerfed.
[21:49:20] <lynxlynxlynx> [ResourceManager]: Searching for error09... Tried error09.acm error09.wav error09.ogg error09.wav [ERROR] <-- why is it trying wav twice? Each plugin as a fallback?
[21:54:37] <fuzzie> you probably have an errant ACMImporter.so lying around
[21:56:14] <lynxlynxlynx> i'll delete it, but it'll probably just get rebuilt
[21:56:45] <fuzzie> well, the source should be gone, so hopefully not :)
[21:56:56] <lynxlynxlynx> http://pastebin.com/MQ6jpz7j <-- does this look ok? Now we we are spawning just one monster on rest, but it is odd that Maximum can be 0
[21:57:58] <fuzzie> is that logic described somewhere?
[21:58:33] <lynxlynxlynx> i didn't check at all, beyond the are specs
[21:58:36] <fuzzie> i thought Maximum==0 meant unlimited (up to Difficulty cap, which is not implemented)
[21:58:54] <lynxlynxlynx> aah, much better
[21:59:52] <fuzzie> the sf bug links to the Taimon post about it, something about summing XP values of existing spawns and average party level
[21:59:56] <lynxlynxlynx> in this case however, both are 0
[22:00:13] <fuzzie> but just one monster is incorrect?
[22:00:27] <lynxlynxlynx> the sf bug is probably about normal area spawns, not the rest header ones
[22:00:30] <fuzzie> i assume you should just spawn the whole list in that case
[22:00:41] <fuzzie> well, Taimon says the struct is essentially identical
[22:00:47] <lynxlynxlynx> i doubt it, since they can have different strrefs to display
[22:00:50] <fuzzie> but i didn't look at it
[22:01:19] <fuzzie> which area is it?
[22:04:13] <lynxlynxlynx> ar2100
[22:04:46] <lynxlynxlynx> http://pastebin.com/0ntuPyj3
[22:05:51] <lynxlynxlynx> Enabled is also 0, but we don't check that for rest interrupts :)
[22:05:58] <fuzzie> which game?
[22:07:00] <lynxlynxlynx> oh, bg2
[22:07:25] <lynxlynxlynx> ... my old dltcep displays that one as 1 though, so this is not consistent
[22:07:34] <fuzzie> are you using a gemrb save?
[22:07:43] <fuzzie> before the patch you applied, gemrb was throwing away the data
[22:07:57] <lynxlynxlynx> doh
[22:08:02] <lynxlynxlynx> yep
[22:08:31] <fuzzie> must really go through and get rid of the rest of those :)
[22:10:12] <lynxlynxlynx> it isn't enough to change areas, i have to go to an unvisited one?
[22:10:58] <lynxlynxlynx> yeah, max is fine here
[22:11:12] <fuzzie> yes, the save file contains modified AREs
[22:57:12] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[23:27:00] <-- budlust has left IRC (Ping timeout: 276 seconds)