#gemrb@irc.freenode.net logs for 23 Apr 2011 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:03:15] <-- barra_home has left IRC (Quit: Verlassend)
[01:08:25] --> pupnik_ has joined #gemrb
[01:11:59] <-- pupnik has left IRC (Ping timeout: 248 seconds)
[01:40:44] <-- Maighstir has left IRC (Quit: ~ Trillian Astra - www.trillian.im ~)
[02:19:38] <tomprince> Edheldil: do you want to point buildbot.gemrb.org at hermes.hocat.ca?
[02:43:16] <-- _pickle has left IRC (Ping timeout: 246 seconds)
[05:01:40] <pupnik_> new pic of N900 client: http://j.mp/gx5QDc \o/
[05:19:10] <Gekz> I didn't know people even played daimonin in 2011
[05:28:36] <pupnik_> :D
[05:29:04] <pupnik_> it's not exactly a M-MORPG
[05:29:26] <pupnik_> but with some ui tweakage it's pretty fun imo
[05:43:11] <-- DrMcCoy has left IRC (Ping timeout: 276 seconds)
[06:25:36] <-- |Cable| has left IRC (Remote host closed the connection)
[06:29:13] --> |Cable| has joined #gemrb
[06:37:20] <-- |Cable| has left IRC (Read error: Connection reset by peer)
[06:37:44] --> |Cable| has joined #gemrb
[07:38:26] --> lynxlynxlynx has joined #gemrb
[07:38:26] --- ChanServ gives channel operator status to lynxlynxlynx
[07:50:26] --> test32894789234u has joined #gemrb
[08:31:02] --> DrMcCoy has joined #gemrb
[11:10:08] <fuzzie> hm, back earlier than expected
[11:20:54] <dhewg> heya
[11:21:03] <dhewg> whoa, its hot outside :)
[11:24:43] <fuzzie> mm, it's not so bad here
[11:25:34] <fuzzie> 26C, it seems. lots of picnicing students around the uni building.
[11:26:13] <lynxlynxlynx> much earlier heh
[11:26:47] <fuzzie> plans changed, so after a bit of wheelchair-pushing around a garden centre and lugging plants about, got kindly driven back here
[11:27:23] <lynxlynxlynx> :)
[11:30:32] <dhewg> whats a nice way to poke at .bif contents?
[11:30:42] <fuzzie> define 'poke at'
[11:30:50] <dhewg> 'unbif'
[11:30:53] <fuzzie> i just use weidu for everything
[11:30:54] <lynxlynxlynx> both dltcep and weidu can do it
[11:31:16] <fuzzie> 'weidu --game /path/to/game --biff-get <filename>'
[11:32:48] <fuzzie> MCAR is CARRION_CRAWLER is MONSTER_LARGE16 is annoying
[11:33:13] <dhewg> hehe
[11:33:21] <dhewg> thats an awesome area btw
[11:34:35] <dhewg> it triggers a crash, has walkable area problems, and shows issues with the unconscious effect
[11:34:41] <lynxlynxlynx> i've been looking into the walkable problem
[11:34:58] <dhewg> is unconscious related to playdead?
[11:35:10] <fuzzie> we squash the searchmap with a 2da really really stupidly
[11:35:18] <lynxlynxlynx> with not much result though, but we seem to hit the guard in GetBlocked a lot
[11:35:31] <fuzzie> mangling the data completely
[11:35:42] <lynxlynxlynx> i dumped it after reading and it looked fine
[11:36:07] <lynxlynxlynx> currently for the problematic part we map it as-is anyway
[11:36:29] <lynxlynxlynx> that didn't stop me from trying with extra bits though, but no effect
[11:36:33] <fuzzie> which is the problematic part?
[11:37:00] <lynxlynxlynx> 1
[11:37:21] <lynxlynxlynx> ar0202, the sewer sludge
[11:37:41] <fuzzie> oh, right, sand
[11:41:28] <fuzzie> i'm confused about how this code is meant to work
[11:42:24] <fuzzie> we seem to have lost the search map
[11:42:55] <fuzzie> the GetInternalSearchMap stuff uses the mangled SrchMap..
[11:43:32] <fuzzie> i should've paid more attention to this at the time
[11:44:50] <fuzzie> e2cc8f4d "totally got rid of the old searchmap" switched code to use the internal searchmap, despite the fact the internal searchmap already destroyed all the needed info
[11:45:01] <fuzzie> not relevant to your problem, but not good at all
[11:48:00] --> mihairu has joined #gemrb
[11:48:14] <-- mihairu has left IRC (Client Quit)
[11:48:33] --> mihairu has joined #gemrb
[11:50:15] <lynxlynxlynx> are you sure?
[11:51:09] <lynxlynxlynx> we copy everything below 16 into our own and atleast in this area, the original doesn't even cross 9
[11:51:39] <fuzzie> where do we copy?
[11:52:10] <lynxlynxlynx> Map.cpp:439
[11:52:17] <fuzzie> where's the copy?
[11:52:46] <fuzzie> i mean, maybe i'm missing something
[11:53:30] <lynxlynxlynx> that's the translation right there
[11:53:31] <fuzzie> but the Passable[] lookup is the mangled squash thing
[11:53:55] <lynxlynxlynx> yes, the result looks fine though
[11:53:56] <fuzzie> so that line makes the SrchMap only useful for pathfind
[11:54:23] <fuzzie> i mean, sorry, to be clear: "not relevant to your problem" means, not relevant to the sand thing
[11:54:33] <lynxlynxlynx> if the rest of the info is stored in the original
[11:54:36] <lynxlynxlynx> i understood
[11:54:38] <fuzzie> but for example, ResolveTerrainSound also needs access to the searchmap
[11:55:03] <fuzzie> but Avenger's commit changes it to use GetInternalSearchMap, which uses this mangled-for-pathfind SrchMap thing
[11:56:05] <fuzzie> am i just craz? :)
[11:56:48] <lynxlynxlynx> no, i see what you mean
[11:57:42] <fuzzie> i was just looking to see if there might be other problems, if you say the mangling works fine for the sand then i don't have much of a clue about what goes wrong
[11:58:05] <fuzzie> i wrote a searchmap debugging thingy, does that show up fine?
[11:58:29] <fuzzie> the blue/red overlay
[11:58:42] <lynxlynxlynx> no, the relevant part is red
[11:59:09] <lynxlynxlynx> i was thinking the problem may be in the search square size and rounding when converting the position
[11:59:22] <fuzzie> right
[11:59:24] <lynxlynxlynx> the stream is not that thin though
[11:59:56] <fuzzie> i did complain about it being incorrect somewhere, i think in the lookup though, the rounding seems correct
[12:00:11] <fuzzie> but yes, you are ahead of me, the stream lookss wide enough
[12:01:39] <fuzzie> i saw also that Avenger changed the GetBlocked stuff recently to make it obey the PATH_MAP_DOOR values better, but i have no idea what those are
[12:01:45] <dhewg> which .py is the "remove party member" dlg?
[12:01:46] <lynxlynxlynx> by making the 3param Map::GetBlocked ignore the circle border it became crossable, but that seems bad
[12:02:09] <fuzzie> hm
[12:02:14] <lynxlynxlynx> try GUICommonWindows or GUIWORLD
[12:02:25] <fuzzie> well, the original does ignore the circle border while pathing, i think
[12:02:36] <lynxlynxlynx> ooh, it all starts in GUIREC though
[12:02:41] <fuzzie> but that's pretty weird, looks like there's enough space
[12:11:15] <lynxlynxlynx> negative VisibilityMasks :s
[12:12:06] <lynxlynxlynx> oh, that's normal
[12:17:01] <lynxlynxlynx> no, the mangling is bad
[12:17:20] <lynxlynxlynx> i should stop debugging stuff late at night
[12:17:33] <lynxlynxlynx> probably printed the original searchmap
[12:20:31] <dhewg> this gui drives me crazy
[12:21:47] <fuzzie> what's the issue?
[12:22:28] <dhewg> a dialog triggers while im in another dialog
[12:22:31] <dhewg> as always :P
[12:22:45] <dhewg> wouldnt it be a good idea to pause the game in showmodal?
[12:22:55] <dhewg> instead of adding it left and right
[12:23:01] <fuzzie> no
[12:23:11] <fuzzie> because then everyone's going to ignore all the cases whcih aren't using showmodal
[12:23:51] <fuzzie> anyway we don't have a stacking pause function yet afaik, so that is obvious first step to any of that
[12:24:12] <dhewg> hm
[12:24:33] <dhewg> well, this particual issue is when asking keldorn to join the party
[12:24:43] <fuzzie> the original engine actually does this in a completely different way i think
[12:24:55] <dhewg> i have 6 party members, and when adding him it triggers a dialog from nalia
[12:25:06] <dhewg> that dialog is hidden under the reform dlg
[12:25:13] <fuzzie> it effectively involves whitelisting when the game *is* run
[12:25:46] <fuzzie> which is game screen, map screen and inventory, i guess
[12:26:31] <dhewg> thinking about how often run into these problems, that seems like a good idea :)
[12:26:38] <fuzzie> but it's not that easy to do in gemrb
[12:26:58] <fuzzie> because the gui isn't blocking the whole thing
[12:27:30] <dhewg> isnt gemrb.pause + window.showmodal effectively a block?
[12:27:41] <fuzzie> no
[12:28:06] <fuzzie> i mean, it has the same effect, but then you have to call gemrb.pause somewhere and unpause when it's done
[12:28:21] <dhewg> yeh
[12:28:40] <dhewg> anyway, fixed it this way: http://pastie.org/private/v7qjah5i6jbnhmilzzikg
[12:28:51] <dhewg> probably totaly wrong :P
[12:29:13] <fuzzie> well the print("pause"); can't be good :P
[12:29:34] <dhewg> well that just for me as gemrb code noob :P
[12:30:31] <fuzzie> honestly i'm not sure what yiou're doing there though
[12:30:48] <fuzzie> the pauses are the changes with effect?
[12:32:04] <dhewg> yeah
[12:32:17] <dhewg> i stole that from the store pause commit
[12:33:11] <dhewg> the fix is that nalias dlg about keldorn joining triggers only after im done with the reforming
[12:33:58] <dhewg> on the other side, her trigger looks like i have 7 party members as long as the reform dlg is open?
[12:34:20] <fuzzie> yes
[12:34:37] <fuzzie> i have no idea if that's right
[12:35:14] <dhewg> me neither :)
[12:35:24] <dhewg> works for this situation at least
[12:35:34] <fuzzie> if you reform to remove keldorn?
[12:36:18] <dhewg> i ask him to join, so the trigger properly fires if i remove anyone except him or nalia
[12:36:37] <fuzzie> and it also doesn't fire if you remove him or nalia?
[12:36:43] <dhewg> yes
[12:36:55] <dhewg> if i remove her, she asks me what to do
[12:37:04] <dhewg> i say go away, no trigger
[12:37:17] <fuzzie> hm
[12:37:20] <fuzzie> i was wondering wtf
[12:37:25] <fuzzie> but then i guess you're using broken ol' 0.6.4
[12:38:08] <dhewg> yup
[12:38:25] <dhewg> is that different on master?
[12:38:45] <dhewg> at least there was the related shop issue, which also cherry-picked fine to 0.6.4
[12:41:50] <fuzzie> what does nalia say?
[12:41:55] <fuzzie> i can't find the dialog
[12:42:38] <dhewg> "So this is the guildhouse"...
[12:43:02] <fuzzie> oh!
[12:43:16] <dhewg> by what she's saying i guess it triggers only if you ask him in the temple district
[12:43:22] <fuzzie> yes
[12:43:27] <dhewg> prolly not on the first encounter in the sewers
[12:43:28] <fuzzie> not an on-join trigger
[12:43:47] <fuzzie> if Keldorn is in-party and visible and not asleep and in AR0903
[12:44:01] <dhewg> ah
[12:44:16] <dhewg> yeah, thats where he is if you dont take him in the sewers
[12:44:53] <fuzzie> i was just wondering because i haven't actually found any use of the on-join trigger
[12:46:14] <dhewg> ok, but it should show that triggering that while the reform dlg is open kinda breaks it atm
[12:46:17] <lynxlynxlynx> the kivan mod maybe uses it
[12:46:52] <fuzzie> yes, +1 to your pausing in that dialog
[12:47:06] <fuzzie> i was just hoping it might be an example :P
[12:47:21] <dhewg> of what?
[12:47:39] <fuzzie> of the Joins trigger. i know that AttackedBy, HitBy, TookDamage, Killed and Died are hard-coded in the actor trigger code (mostly for rep/XP/kill stats/morale)
[12:47:53] <dhewg> ah
[12:48:02] <dhewg> well sorry for confusing you then
[12:48:08] <fuzzie> no, it's fine
[12:48:15] <dhewg> like i have any clue what kind of triggers there are :)
[12:48:16] <fuzzie> no way to tell the difference
[12:49:57] <fuzzie> lynxlynxlynx: seems not
[12:51:18] <fuzzie> i'm mostly just curious what happens in dhewg's situation
[12:51:29] <fuzzie> if a party member joins, then gets immediately kicked out from the reform window
[12:51:38] <fuzzie> doesn't matter if nothing *uses* it, of course..
[12:52:08] <fuzzie> only mention i can find is avenger noting it exists :)
[12:52:20] <dhewg> if i kick him out with my patch, nalia doesnt say anything
[12:52:26] <dhewg> which seems correct to me
[13:00:28] <lynxlynxlynx> sounds sane
[13:01:52] <-- test32894789234u has left #gemrb
[13:03:28] --> _pickle has joined #gemrb
[13:05:33] <dhewg> keldorns sword is as broken as the insect spells
[13:06:23] <dhewg> it reads "5 point of magic damage to any who deal out any damage to the wielder", but that triggers until ppl are dead :)
[13:06:37] <dhewg> you let him stand there and everyone dies lol
[13:06:38] <fuzzie> that does sound like e8
[13:06:46] <fuzzie> do ctrl-m and check the effect?
[13:09:09] <dhewg> on keldorn or the victim?
[13:10:04] <fuzzie> keldorn
[13:11:25] <lynxlynxlynx> it is the same effect, don't bother
[13:11:39] <fuzzie> it should be pretty easy to implement that properly
[13:12:28] <lynxlynxlynx> cool ;)
[13:12:31] <fuzzie> basically, you just maintain a list on the target Actor, and then you check it whenever a new trigger is added, and do the casting as necessary
[13:12:36] <lynxlynxlynx> now lunch
[13:13:16] <fuzzie> but unfortunately this is ruined by the whole See/HP/etc checks
[13:15:20] <dhewg> the only e8 i see there is 61: 0xe8: CastSpellOnCondition (1, 0) S:
[13:15:29] <dhewg> and it seems to be applied on every frame
[13:15:30] <fuzzie> that's the one :)
[13:15:53] <fuzzie> can't be fixed on 0.6.4.
[13:16:16] <dhewg> heh
[13:16:34] <fuzzie> is it #1 on the annoying list?
[13:16:41] <dhewg> no
[13:17:09] <dhewg> while it kinda breaks athmosphere, its doable to skip those parts
[13:17:38] <dhewg> well except when fighting mages which combine that with the cast-crap-on-myself bug
[13:17:45] <dhewg> which is funny to watch though
[13:19:49] <dhewg> what about the unconscious effect?
[13:19:55] <dhewg> is that easy fixable?
[13:20:04] <fuzzie> what's the problem with it?
[13:20:05] <dhewg> its kinda easy to trigger on ar0202 too
[13:20:49] <dhewg> the animation is off, and you can still try to move actors then
[13:21:09] <dhewg> while thy wont move as long as the effect is there, they insta warp when its over
[13:21:10] <fuzzie> hm, i guess we sabotaged Immobile checks
[13:23:22] <-- mihairu has left IRC (Remote host closed the connection)
[13:23:44] <dhewg> that unconscious effect is a result of the stinking cloud, right?
[13:35:57] <lynxlynxlynx> possibly
[13:36:08] <lynxlynxlynx> that ooze mephit is the cause, right?
[13:36:27] <lynxlynxlynx> not sure if it casts the exact same spell
[13:36:55] <dhewg> its some spell from one of those 3 is 0202
[13:37:06] <dhewg> i think i've seen stinking cloud in the log
[13:37:51] <dhewg> whatever, but isnt that supposed to have an animation?
[13:37:51] <dhewg> like cloudkill?
[13:37:51] <dhewg> well, none of those have one, but iirc they should have?
[13:38:07] <fuzzie> i'm confused
[13:38:16] <fuzzie> you mean, you see no orange bits floating around?
[13:39:14] <lynxlynxlynx> right
[13:39:38] <-- dhewg has left IRC (Read error: Operation timed out)
[13:39:47] <lynxlynxlynx> but it may not be the complete spell
[13:40:13] <fuzzie> is there some simple test case for the on_condition effect?
[13:40:26] <fuzzie> it occurs to me that i can just walk through the effect list and check the conditions manually..
[13:40:29] --> dhewg has joined #gemrb
[13:43:04] <lynxlynxlynx> cg a sorceror into tob and cast fireshield
[13:43:27] <lynxlynxlynx> add some hostile summons or start the cutscene
[13:44:18] <lynxlynxlynx> or just summon an efreeti, it also has one
[13:44:32] <lynxlynxlynx> you can attack it to make it an enemy
[13:45:22] <dhewg> well, all clouds in my game are not visible
[13:45:35] <dhewg> if i cast cloud kill, you can only hear it
[13:46:14] <dhewg> i get stuff like the green roots from entagle
[13:47:47] <lynxlynxlynx> cloudkill doesn't draw here either
[13:48:06] <lynxlynxlynx> adhw still works though, so maybe just the projectile is incomplete
[13:48:17] <dhewg> just to confirm another fix: i kicked out yoshi for this paladin quest, took keldorn, fishished the quest, took yoshi again, and all his local are still there :)
[13:48:41] <lynxlynxlynx> cloudkill has an original projectile
[13:54:14] <lynxlynxlynx> i do remember seeing clouds, but that may've been in iwd
[13:54:23] <lynxlynxlynx> so i'm not sure if it is a regression
[13:54:54] <lynxlynxlynx> all those changes for pst projectiles could've broken something though
[13:57:56] --> mihairu has joined #gemrb
[13:58:44] <dhewg> related to that: the cast distance is off, right?
[13:59:25] <dhewg> ii seems i cant cast cloudkill, fireball or stuff like that from a safe distance, im always in the blast radius
[13:59:49] <lynxlynxlynx> yes
[14:00:10] <lynxlynxlynx> i'm pretty certain that's a real regression
[14:00:46] <-- mihairu has left #gemrb
[14:01:27] --> mihairu has joined #gemrb
[14:19:04] <fuzzie> i don't think much changed apart from the level calculations (which i know nothing about) and the added visibility checks
[14:21:41] <lynxlynxlynx> the latter could be it if we have a bad (visual)range
[14:22:48] <fuzzie> i guess you added it, but it seems to just call Map::IsVisible with the raw points, should be fine - it calls GetBlocked, but the 2param one
[14:51:20] --- ChanServ gives channel operator status to fuzzie
[14:51:38] <lynxlynxlynx> this is just wierd
[14:51:49] <lynxlynxlynx> the rest of the search map looks perfectly fine
[14:52:19] <lynxlynxlynx> and somehow only a subset get corrupted
[14:53:51] <fuzzie> how is it corrupted?
[14:54:40] <lynxlynxlynx> this stream thing
[14:54:48] <fuzzie> i mean, which values?
[14:55:06] <lynxlynxlynx> part of the 1s
[14:55:22] <fuzzie> replaced with just random corruption?
[14:55:32] <lynxlynxlynx> no, that'd be too easy
[14:55:40] <lynxlynxlynx> it's zero for unpassable
[14:55:41] <fuzzie> well, that is why i ask
[14:55:46] <lynxlynxlynx> and nicely shaped
[14:55:55] <lynxlynxlynx> really matches the wed
[14:55:58] <fuzzie> and really 0, not 0 after masking?
[14:56:59] <lynxlynxlynx> i have all 3 dumps
[14:57:25] <lynxlynxlynx> it's 1 before and after the masking, 0 after pathfind.2da
[14:57:43] <fuzzie> oh huh, it's actually corrupted right there?
[14:58:13] <lynxlynxlynx> i'm printing in Map::AddTileMap
[14:58:32] <fuzzie> interesting :-/
[15:00:11] <lynxlynxlynx> mhm
[15:00:27] <lynxlynxlynx> bbl, meeting
[15:02:19] <dhewg> what are all these sprite_is_dead* vars for?
[15:02:28] <fuzzie> dhewg: the Dead() trigger
[15:02:47] <dhewg> ?
[15:03:06] <fuzzie> Dead("name") checks whether SPRITE_IS_DEADname is set
[15:03:39] <dhewg> how is Dead() used?
[15:03:50] <dhewg> i mean, arent dead ppl part of my saves .are files?
[15:03:54] <fuzzie> Dead("mazzy")
[15:04:01] <fuzzie> not necessarily, no
[15:04:15] <fuzzie> corpses expire
[15:04:19] <dhewg> is that the way scripts check for dead ppl?
[15:04:27] <fuzzie> if they're stupid :P
[15:04:36] <dhewg> heh
[15:05:45] <fuzzie> but you are looking at many thousands of checks in each game's data
[15:05:57] <fuzzie> so if your question is "do we need this?", unfortunately yes we do.
[15:06:55] <fuzzie> the most awesome bit is e.g. the 55 bg2 scripts and 22 bg2 dialogs that manipulate the variable directly
[15:07:25] <fuzzie> although 10 of those dialog entries are nalia committing suicide
[15:08:31] <dhewg> hm
[15:10:35] <fuzzie> the Black Isle games have rather more sophisticated systems, especially PS:T
[15:11:38] <fuzzie> and i take it back, the most awesome bit is the 206 Dead("yself)") entries in default bg2, because some scripter wrote Dead(Myself) and you can't do that
[15:13:29] <dhewg> hehe
[15:29:26] <fuzzie> ok, so looking at backscroll
[15:29:31] <fuzzie> corrupt item info for just one item?
[15:35:07] <dhewg> hm?
[15:35:34] <fuzzie> 15:03 <dhewg> the guildhouse at the docks, with that mae'var dude
[15:35:34] <fuzzie> 15:03 <dhewg> you can buy the "nymph cloak" there
[15:35:35] <fuzzie> 15:03 <dhewg> that item info dialog is somehow broken
[15:35:43] <dhewg> oh
[15:35:46] <dhewg> yeah
[15:35:57] <dhewg> well, maybe its related to that other png i posted
[15:36:20] <dhewg> where the item gfx had an offset where y is too big
[15:36:51] <fuzzie> i don't think i saw thato ne
[15:38:06] <dhewg> http://static.hackmii.com/dhewg/shop.png
[15:38:22] <fuzzie> huh
[15:38:35] <dhewg> maybe taht only happens when viewing items in the shop
[15:38:48] <dhewg> i think i havent seen that from owned items in the inv
[15:39:50] <dhewg> but you can see that just the fg is scribbled over
[15:40:03] <dhewg> with that nymph cloak it was a little different
[15:40:24] <dhewg> there's pixel mess all around it, scribbling over the frame
[15:40:28] <fuzzie> mm
[15:40:37] <fuzzie> it does indeed look like the item info dialog in stores is simply broken
[15:40:51] --> Maighstir has joined #gemrb
[15:42:01] <fuzzie> i think the pixel mess isn't our fault, it's just that you usually can't see that they screwed up the graphic
[15:42:16] <dhewg> seeing it?
[15:42:25] <fuzzie> i assume so
[15:42:44] <dhewg> maybe its the same bug, just that they encoded the bg with that pic
[15:42:49] <dhewg> or something like that
[15:43:04] <fuzzie> imo it is
[15:44:31] <fuzzie> oh right, before i left i was fixing the store thing
[15:48:47] <fuzzie> i really have no idea what this code is doing
[15:51:14] <tomprince> win32 calls strchr a bunch of times when a program is exiting ... weird.
[15:51:26] <fuzzie> i'm pretty sure win32 doesn't do that :-P
[15:51:54] <fuzzie> still looking at the mingw stuff?
[15:52:03] <tomprince> It seems to be called from ntdll!RtlDeleteOwnerRanges
[15:52:04] <tomprince> Yes.
[15:52:11] <tomprince> tdm didn't fix it.
[15:54:23] <fuzzie> i've never heard of that function before
[15:54:59] <tomprince> Just si'ing through the exit, to see what is throwing bad_alloc
[15:55:00] <fuzzie> usually i'd assume atexit() but i'm pretty sure that's handled in the CRT
[15:55:14] <fuzzie> even for the magic global destructors
[15:58:04] <tomprince> Yes, but it doesn't seem to be us, since we don't do allocation in destructors (and I have patched out the ones that do anything). Plus, I have compiled with -fno-exceptions.
[15:58:30] <fuzzie> the whole thing, or just gemrb?
[15:59:13] <tomprince> I added it to CMAKE_CXX_FLAGS
[15:59:32] <fuzzie> i mean, your mingw C library is presumably still using exceptions
[15:59:59] <fuzzie> and if you're seeing it then I guess that's where it's coming from?
[16:02:26] <fuzzie> just making random guesses
[16:02:37] <fuzzie> my first suspicious would always be PluginMgr, if you don't have _DEBUG set
[16:03:20] <fuzzie> since it is a global variable for reasons unknown
[16:04:03] <fuzzie> oh, right, singleton thing for static linking.
[16:04:19] <fuzzie> and in fact i guess my guess is PluginMgr anyway
[16:06:38] <lynxlynxlynx> dhewg: re store: compare the item description stuff function in InventoryCommon.py and GUISTORE.py
[16:06:41] <fuzzie> since there's a bunch of std::map in there
[16:09:18] <fuzzie> and, the inv one sets IE_GUI_BUTTON_PICTURE | IE_GUI_BUTTON_CENTER_PICTURES | IE_GUI_BUTTON_NO_IMAGE and presumably the middle flag is responsible
[16:09:34] <tomprince> .... I have 45 branch in my gemrb repo. :P
[16:09:53] <fuzzie> i am really bad at deleting them :/
[16:15:11] <fuzzie> the item name is also wildly misplaced in gemrb, i see
[16:17:15] <dhewg> lynxlynxlynx: what?
[16:18:11] <lynxlynxlynx> fuzzie is already looking at it
[16:18:19] <fuzzie> i am not really
[16:19:01] <fuzzie> i worked out how the original deals with mismatched store stack sizes though
[16:19:18] <fuzzie> sell a small stack of arrows to a storekeep who already has stacks of, say, 40, and they'll just gain another stack of 40
[16:19:26] <fuzzie> so i should go implement that in gemrb first.
[16:23:23] --> mihairu_ has joined #gemrb
[16:26:01] <lynxlynxlynx> cool, exploitable
[16:26:36] <fuzzie> well, you have to have a stackable item which a storekeeper has by default
[16:27:58] <fuzzie> probably pretty limited
[16:28:22] <lynxlynxlynx> those are usually for 1gp anyway
[16:29:44] <fuzzie> i mean, all you can do is spend *more money* :P
[16:33:45] <fuzzie> i can't find any storekeeps with >1 but less-than-max stacks to test with
[16:33:58] <lynxlynxlynx> if the storekeep doesn't have an infinite number, it would be an exploit in reproduction
[16:34:31] <fuzzie> yes, i just did that as an experiment
[16:34:32] <lynxlynxlynx> eg. sell 5 +3 bolts and then you can buy back 40
[16:34:40] <fuzzie> selling single arrows
[16:35:14] <fuzzie> works fine
[16:39:47] <fuzzie> ok, if i buy 20 dart+1 followed by 20 dart+1, then sell back the stack of 40 dart+1, then the storekeep gains 2
[16:39:50] <fuzzie> how disappointing
[16:40:49] <fuzzie> anyway, should i implement that in gemrb or should i just add new items for different stack amounts?
[16:41:43] <lynxlynxlynx> i don't really care, it shouldn't be noticeable
[16:42:01] <fuzzie> well, i implemented the latter first, and it turns out to be really annoying
[16:42:13] <fuzzie> because you sell your random arrows/etc and you end up with 10 different items at the bottom of the store list
[16:45:54] <Maighstir> The most logical would be that the store has as many as you sold, split up into full stacks (sell 20 arrows +3, the store has one stack of 20, then sell another 30 of the same item, the store now has a stack of 40 and a stack of 10) except if he already has an infinite supply (infinite+x is still infinite so no extra stack should be added) - the original doesn't do the latter though if I remember correctly.
[16:46:21] <Maighstir> Of course, I have no idea how dificult that would be to implement, just an idea.
[16:46:26] <fuzzie> yes, infinite supply means no new stack
[16:46:40] <fuzzie> but this is about when the store already has a stack of some kind, i should clarify
[16:46:45] <fuzzie> *new* stuff is in stacks of 1.
[16:47:36] <Maighstir> if the store has a stack of 15 and you sell another 2 of the same item, the stack would logically be increased to 17
[16:47:45] <fuzzie> doesn't happen, though :P
[16:48:12] <lynxlynxlynx> all new stuff is added 1 by 1?
[16:48:15] <fuzzie> yes
[16:48:26] <lynxlynxlynx> must look annoying
[16:48:29] <fuzzie> no
[16:48:41] <fuzzie> well, maybe, i guess it depends on what you find annoying :P
[16:49:03] <lynxlynxlynx> sell 4 potions one by one -> screenful of the same potions?
[16:49:08] <fuzzie> no
[16:49:21] <fuzzie> you get [stack of 1] with 'Item Name (amount)' next to it
[16:49:58] <lynxlynxlynx> so the problem is only that it isn't merged with what the merchant had from the start?
[16:50:00] <fuzzie> it's more annoying to buy since you can't just buy a whole stack of 40 with a single click
[16:50:24] <fuzzie> which i guess is why they just add another item to those stacks, if the merchant already has one
[16:50:50] <fuzzie> i mean, this is *all* about the original engine
[16:50:53] <fuzzie> gemrb just corrupts itself
[16:52:35] <lynxlynxlynx> err ok
[16:52:46] <fuzzie> which is why i'm looking at this
[16:57:09] <fuzzie> i am just going to implement this like the original and then people can maybe complain then :P
[16:57:20] <fuzzie> Maighstir's idea is nice but it still means you get stacks scattered around
[17:00:35] <Maighstir> any reasonable way to group stacks of the same item so that they're sorted right after each other?
[17:01:54] <Maighstir> The original doesn't do that, but it would makes stores and bags a little more intuitive.
[17:02:33] <fuzzie> that would be nice
[17:04:31] <lynxlynxlynx> not hard to do, just order by resref and it will be perfect most of the time
[17:05:03] <fuzzie> but you'd need some GUI way to enable that
[17:05:54] <Maighstir> maybe to begin with, sort store and bag contents alphabetically? (first alphabetically, then by stack size, it'll make it easier to find what you're looking for) - of course that removes any kind of custom sorting, but that's not really relevand in stores anyway, the sorting could be replaced later if needed
[17:06:18] <fuzzie> i mean
[17:06:35] <Maighstir> (not relevant to the GUI comment)
[17:06:38] <fuzzie> i will club you with some blunt sword if you don't think Bioware carefully sorted stuff in many stores :P
[17:08:27] <Maighstir> of course, it's also nice if all swords are near each other
[17:10:54] <Maighstir> so I can look under "S" for Sword and Shield, or "H" for Hammer and Helm(et) (that might be a slightly tougher nut to crack though - which is why the sorting function may need to be replaced later)
[17:11:13] <fuzzie> yeah
[17:11:18] <fuzzie> but what if you want a Throwing Dagger?
[17:11:28] <fuzzie> if you use Bioware's stores, it's under Dagger
[17:11:56] <fuzzie> if you sort by name, it's under T, if you sort by resref, it's somewhere nearby under the specialist (e.g. +1) daggers
[17:13:33] <Maighstir> Yeah, and bastard swords, or large shields - which is the already mentioned tougher nut to crack
[17:14:36] <Maighstir> item type? proficiency type (if applicable)?
[17:14:53] <fuzzie> well, we could just have some sort buttons at the top
[17:16:08] <Maighstir> "look for anything that includes:" (where I'd type "sword")? and everything that doesn't have sword in its name is hidden?
[17:16:12] <Maighstir> :-P
[17:17:27] <-- _pickle has left IRC (Remote host closed the connection)
[17:18:24] <-- mihairu_ has left IRC (Quit: Leaving)
[17:18:45] <fuzzie> sounds perfect to *me*
[17:19:07] <fuzzie> as long as i get a little butler with it too
[17:21:08] <Maighstir> Sure you don't want whatever passes for a paperclip in Forgotten Realms?
[17:22:41] <fuzzie> hmm, gemrb doesn't even display item amounts?
[17:24:39] <fuzzie> argh.
[17:58:07] <fuzzie> ah i see
[17:58:20] <fuzzie> item amounts are shiny new bg2 feature, it seems
[17:58:47] <fuzzie> it still exists in bg1/iwd, it just doesn't actually show in the GUI :-/
[17:59:29] <fuzzie> iwd2 has them though
[18:00:31] <fuzzie> lynxlynxlynx: should I match original here, or just display amount in all versions?
[18:01:07] <lynxlynxlynx> it's an improvement, so i wouldn't shy away from it
[18:01:36] <fuzzie> then does http://fuzzie.org/nfs/gemrb/fix_store_text.txt make sense?
[18:03:38] <lynxlynxlynx> sure
[18:04:04] <lynxlynxlynx> i think it's leaking info if you're stealing unidentified stuff though
[18:06:02] <fuzzie> oops. refresh?
[18:09:45] <fuzzie> the rest still isn't working, it's odd
[18:11:59] <fuzzie> oh, someone hacked the guiscript caller..
[18:12:10] <fuzzie> oh it was lynx :P
[18:13:35] <lynxlynxlynx> what :P
[18:14:27] <fuzzie> i was wondering why this code worked at all :)
[18:14:57] <fuzzie> turns out you added a hack on the guiscript side to do the right thing, after the store did it wrong :P
[18:15:58] <fuzzie> good fix, just confused me for a moment
[18:16:24] <lynxlynxlynx> i'm faithful and trust instinctively
[18:17:43] <fuzzie> now the remaining problem is that StackAmount is bad..
[18:18:39] <fuzzie> will fix that after tea :)
[18:23:39] <lynxlynxlynx> s/StackAmount/MaxStackAmount/g
[18:26:52] <fuzzie> yes, that is also a great idea
[18:49:40] <CIA-52> GemRB: 03tom.prince * rfb68ee16b6c2 10gemrb/gemrb/core/PluginMgr.cpp:
[18:49:40] <CIA-52> GemRB: PluginMgr::libs is a map, not a vector, so do index into.
[18:49:40] <CIA-52> GemRB: This caused strange behaviour on mingw32.
[18:49:40] <CIA-52> GemRB: Signed-off-by: Tom Prince <tom.prince@ualberta.net>
[18:49:44] <tomprince> That is at least not terminally stupid.
[18:54:22] --> lynxlynxlynx_ has joined #gemrb
[18:54:50] <-- lynxlynxlynx has left IRC (Ping timeout: 260 seconds)
[19:01:44] --> lynxlynxlynx has joined #gemrb
[19:01:44] <-- lynxlynxlynx has left IRC (Changing host)
[19:01:44] --> lynxlynxlynx has joined #gemrb
[19:01:44] --- ChanServ gives channel operator status to lynxlynxlynx
[19:02:05] <-- lynxlynxlynx_ has left IRC (Ping timeout: 240 seconds)
[19:02:07] <lynxlynxlynx> that fixes the leak?
[19:03:10] <fuzzie> oh gosh, my Plugin? :P
[19:03:15] <fuzzie> PluginMgr guess was right?
[19:03:31] <tomprince> I don't know if it fixes everything, but it should at least be easier to debug now.
[19:03:53] <fuzzie> ah, pity :)
[19:24:03] <tomprince> It does work.
[19:24:10] <fuzzie> neat
[19:26:26] <lynxlynxlynx> :)
[19:26:43] <tomprince> I found it by trying to do 'print libs._M_impl._M_data[i]' in gdb :)
[19:26:52] <fuzzie> ick :)
[19:27:21] <fuzzie> old gdb?
[19:27:50] <tomprince> Whatever is included tdm-gcc.
[19:29:04] <fuzzie> oh, right, on windows
[19:29:31] <fuzzie> just wondering because gdb is a lot better at coping with direct operator usage nowadays
[19:31:44] <tomprince> I know it is supposed to, but it doesn't always seem to work for me.
[19:32:00] <tomprince> Maybe I just haven't used it enough recently.
[19:32:06] <fuzzie> well here it meant you spotted the bug.. :)
[19:33:20] <tomprince> yep. :)
[19:35:20] <tomprince> Although I also caused it. :(
[19:35:55] <fuzzie> hehe, i wouldn't let that take away from your victory, we all do such things :)
[19:37:05] <tomprince> No, I won't.
[19:43:10] <tomprince> All green !!! :)
[19:43:58] <fuzzie> hehe, what're you running to test?
[19:44:56] <tomprince> Just the minimal test data.
[19:45:24] <fuzzie> can you run python scripts on all your targets?
[19:45:45] <tomprince> msvc, mingw and cmake+autotools gcc <= 4.4
[19:45:48] <tomprince> Yes.
[19:46:16] <fuzzie> hm, now that i think of it, it's really unnecessary
[19:46:36] <fuzzie> i'd just like to put some basic actual tests in that data
[19:47:25] <fuzzie> unless you are getting there first
[19:48:02] <fuzzie> but if you can really just exit() from python for the error code, i guess a simple python test framework could be handled entirely within gemrb
[19:56:08] <tomprince> Any objection to commiting my warn_unused_result patch, that breaks DISABLE_WERROR=No?
[19:56:18] <fuzzie> yes
[19:57:00] <fuzzie> i mean, doesn't that break the default build?
[19:57:40] <tomprince> Well, that would lead to things getting fixed :P
[19:58:00] <fuzzie> well, or your patch getting reverted ;p
[19:58:07] <tomprince> :)
[19:58:21] <fuzzie> i mean, i'm not really sure about -Werror being left on
[20:04:22] <lynxlynxlynx> i'm not for it
[20:04:38] <lynxlynxlynx> fix the unusedness first then it won't be a problem
[20:04:54] <fuzzie> i am still struggling with stores unfortunately
[20:06:08] <lynxlynxlynx> same here with the searchmap :s
[20:06:39] <fuzzie> did you check if the incoming 2DA Passable values are valid at all?
[20:07:48] <tomprince> http://gemrb.hocat.ca/buildbot/builders/cmake%20g%2B%2B-4.6.0/builds/32/steps/compile/logs/warnings%20%2820%29
[20:10:03] <lynxlynxlynx> yep
[20:12:08] <fuzzie> i think the depreciation code is killing me here
[20:13:26] <lynxlynxlynx> didn't i do that all in python?
[20:13:30] <fuzzie> yep
[20:13:45] <fuzzie> it is reducing my v.expensive items to 0 GP, making it difficult to test :)
[20:14:10] <lynxlynxlynx> huh
[20:15:34] <lynxlynxlynx> the stored depreciation would have to be 0 for that
[20:15:52] <fuzzie> it isn't
[20:16:24] <lynxlynxlynx> right, this is per store, not per item
[20:17:26] <fuzzie> i'm a bit slow today, still going back/forth with prints
[20:20:27] <lynxlynxlynx> Slot['Usages0'] isn't 0 then, right? it would have to be an odd item, but that's a simple zero posibility
[20:20:34] <fuzzie> no
[20:22:26] <fuzzie> it is reducing mod to 0 though
[20:24:49] <fuzzie> an example is buymarkup 30, char mod -20 (so, 10), rep mod 75, so end up with 7
[20:25:04] <fuzzie> depreciation is 5, so with 2 items already in the store, that's 0
[20:32:02] <fuzzie> oh: trying with the same store in the original, and taking the ring of human influence on and off to switch between 5 CHR and 18 CHR, it makes no difference to sell prices
[20:35:17] <lynxlynxlynx> should be 0 vs -15
[20:35:57] <fuzzie> i mean, it changes the buy price significantly
[20:36:00] <fuzzie> but the sell price doesn't change
[20:36:20] <lynxlynxlynx> lame
[20:36:37] <fuzzie> and the manual table does say "item cost" and "sell items" :P
[20:36:47] <fuzzie> oh, that's for rep, too
[20:38:38] <fuzzie> right, if i disable those for buying, the prices match
[20:39:50] <fuzzie> and it works nicely
[20:39:53] <fuzzie> can i commit that? :P
[20:39:59] <lynxlynxlynx> sure
[20:40:45] <lynxlynxlynx> i'd prefer something like this: mod *= 1 - count * Store['Depreciation'] # but that's still different and can get very low
[20:46:11] <CIA-52> GemRB: 03fuzzie * ra36d717b7fc0 10gemrb/gemrb/plugins/STOImporter/STOImporter.cpp: initialize some STOItem fields at load time
[20:46:14] <CIA-52> GemRB: 03fuzzie * r21695a17a018 10gemrb/gemrb/core/Inventory.cpp: call CalculateWeight in AddStoreItem, so flags are updated when buying items
[20:46:22] <CIA-52> GemRB: 03fuzzie * r04e9ba63b7f8 10gemrb/gemrb/GUIScripts/GUISTORE.py: only use charisma/reputation modifiers when store is selling
[20:46:22] <CIA-52> GemRB: 03fuzzie * r3fa7fa76b44a 10gemrb/gemrb/GUIScripts/GUISTORE.py: display item amounts in stores
[20:46:31] <CIA-52> GemRB: 03fuzzie * r22721562a58d 10gemrb/gemrb/ (core/Store.cpp plugins/GUIScript/GUIScript.cpp): fix stacking/amounts when selling to stores to match bg2
[20:47:56] <fuzzie> there's probably still bugs in there, but i can at least buy and sell stuff without gemrb getting confused, now
[20:52:56] <lynxlynxlynx> nice
[20:53:47] <fuzzie> the CalculateWeight thing was caused by the pausing, since I guess it used to get called in the main loop
[20:54:17] <lynxlynxlynx> reminds of another wierd thing to fix
[20:54:41] <lynxlynxlynx> but i better not mention it
[20:58:28] <fuzzie> no?
[21:08:44] <fuzzie> my troll fix isn't so great either
[21:10:53] <fuzzie> lynxlynxlynx: is "level2 dragon eye" save probably from you and a gemrb run?
[21:11:24] <lynxlynxlynx> possibly
[21:11:34] <fuzzie> it is corrupt in interesting other ways
[21:11:35] <lynxlynxlynx> i did save in all major areas
[21:12:01] <lynxlynxlynx> but don't forget it is pretty old by now
[21:12:37] <fuzzie> the problem with the trolls is, i think, that the area overrides the wrong scripts
[21:12:56] <fuzzie> and i switched the ordering, and now the trolls work, but it is clearly still the wrong order, because some of them now have two troll scripts
[21:22:35] <fuzzie> so an original save here would be helpful
[21:26:07] <dhewg> uhm
[21:26:24] <dhewg> if a weapon has special, like a spell
[21:26:35] <dhewg> how is that supposed to work?
[21:27:28] <dhewg> i right click the weapon, left click the special and im supposed to get that spell target icon then?
[21:30:09] <fuzzie> no
[21:31:10] <fuzzie> on the action bar, after spellcasting, there's a 'use item' button.
[21:31:56] <dhewg> pretty sure i tried that too
[21:32:14] <fuzzie> i mean, i have no idea if it works in gemrb!
[21:33:34] <dhewg> but whats the right click bar supposed to do?
[21:33:48] <fuzzie> it lets you select abilities!
[21:33:58] <dhewg> and then? :P
[21:34:15] <fuzzie> and then you get to use it
[21:34:19] <fuzzie> by means of swinging the weapon
[21:37:28] <fuzzie> the original doesn't seem to be quite as buggy here
[21:38:47] <dhewg> also, its hilarious how master transforms when dropping all bags :)
[21:43:50] <dhewg> specials seem to work on some weapons, but i dont get any for the sword daystart
[21:44:07] <dhewg> is that supposed to be limited to paladins or something?
[21:49:57] <fuzzie> sunray?
[21:50:07] <dhewg> yes
[21:50:17] <fuzzie> my first google result for that is "Daystar's Sunray crashes the game" on Bioware's forum
[21:50:21] <fuzzie> not reassuring
[21:51:18] <fuzzie> but i don't know, ask lynx
[21:52:44] <lynxlynxlynx> we show all extended headers, not just the relevant ones
[21:53:02] <dhewg> i see sunray when i rightclick it
[21:53:12] <fuzzie> but not in use items?
[21:53:14] <dhewg> but i doesnt seem to show up on the use item bar
[21:53:20] <dhewg> tried a few chars now
[21:53:22] <lynxlynxlynx> so for weapons the choice makes sense when you're switching from the melee to ranged ability
[21:53:35] <lynxlynxlynx> or in wands the different spells
[21:53:51] <lynxlynxlynx> but never mixed, spells have separate targetting
[21:54:05] <lynxlynxlynx> dhewg: maybe you need to sleep
[21:54:11] <lynxlynxlynx> ingame i mean :)
[21:54:17] <dhewg> :P
[21:54:20] <dhewg> i tried 4 times in a row
[21:54:28] <dhewg> with inn and without
[21:55:59] <lynxlynxlynx> odd
[21:56:24] <lynxlynxlynx> i definitely have saves where specials work and i think some are from weapons
[21:56:35] <lynxlynxlynx> prod me tommorow
[21:57:16] <dhewg> i have a working katana here too
[22:03:54] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[22:04:52] <fuzzie> hm, traps are still buggy in gemrb too
[22:05:57] <dhewg> how does that "once a day" work anyway?
[22:06:15] <dhewg> is there an effect attached for that somewhere?
[22:09:13] <fuzzie> no, it's a charge type
[22:11:08] <dhewg> its working on another weapon
[22:11:22] <dhewg> when the charged is used, it gets a green border
[22:11:33] <dhewg> after resting i can use it again
[22:14:23] <dhewg> how do i 'give' myself an item via the python interface?
[22:14:48] <fuzzie> somethiong like CreateItem/
[22:15:47] <dhewg> 18: sw1h31 - (1 1 0) Fl:0x6ca1 Wt: 1 x 2Lb
[22:15:48] <dhewg> 35: sw1h51 - (1 1 1) Fl:0x6ce1 Wt: 1 x 3Lb
[22:15:57] <dhewg> the upper is the broken one
[22:16:05] <dhewg> that 0 never turn to 1
[22:16:10] <dhewg> *turns
[22:16:58] <dhewg> the sword has multiple properties
[22:17:13] <dhewg> maybe its not iterated through when its supposed to?
[22:17:43] <fuzzie> i have no idea how that works
[22:17:56] <fuzzie> can't see any code at a glance
[22:18:28] <fuzzie> i guess it's ChargeAllItems
[22:18:39] <dhewg> i found HackCharges :P
[22:19:03] <fuzzie> it shouldn't be relevant for this
[22:20:16] <fuzzie> also sw1h31 only has two extended headers
[22:20:57] <fuzzie> sunray is the second
[22:31:08] <dhewg> that looks good
[23:08:08] <-- mihairu has left IRC (Remote host closed the connection)
[23:09:46] --> mihairu has joined #gemrb
[23:14:02] --> Okasu has joined #gemrb
[23:14:17] <Okasu> hello
[23:15:13] <Okasu> http://paste.pocoo.org/show/377073/
[23:15:22] <Okasu> why its happening with me?
[23:22:44] <Okasu> i have sdl, openal, python, zlib and g++ installed
[23:46:42] <Okasu> but i have cmake 2.8.4-1
[23:47:05] <Okasu> is that a reason why it won't build?
[23:55:28] <Okasu> http://paste.pocoo.org/show/377084/
[23:58:19] <Okasu> 0.6.3 same