#gemrb@irc.freenode.net logs for 23 Dec 2013 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:03:32] <chiv> IT WORKS
[00:13:11] <brada> sweet. lets see the magic
[00:14:15] <chiv> oh theres still residual problems, like some points dont set themselves as the active dialog target and some do...
[00:14:29] <chiv> but at least I know what to do now
[00:35:26] <chiv> i still don't have a proper implementation yet, but stepping through my saves this is literally cutting my list of bugs in half
[00:37:01] <chiv> for like the cost of 5 lines
[00:38:53] <brada> thats not unusual at this stage of development
[00:41:10] <chiv> the best thing is, the majority of the other bugs, I already have a start point for them
[00:41:18] <chiv> I'm so excited
[00:48:46] <-- edheldil_ has left IRC (Ping timeout: 250 seconds)
[00:48:53] <chiv> this game was so hard to like when I first bought it, but it turned into one of my all time favourites
[00:52:15] <Lightkey> I heard that before
[00:53:12] <chiv> all the clunky interface and the plasticky 3d rendering nearly turned me away but the story and the characters are so well done, and the surrealness of everything becomes infectious
[01:10:18] <-- PKodon has left IRC (Quit: The Rodent Tracker 8000, just like on TV ... Because household pests never build up an immunity to bullets. (Tex Murphy))
[02:18:38] <-- chiv has left IRC (Quit: Page closed)
[03:50:52] --> edheldil_ has joined #gemrb
[04:23:24] --> Eli2 has joined #gemrb
[04:51:04] <-- edheldil_ has left IRC (Ping timeout: 252 seconds)
[05:15:27] --> edheldil_ has joined #gemrb
[07:02:53] <-- brada has left IRC (Quit: brada)
[08:24:10] --> WingedHussar has joined #gemrb
[09:39:37] <-- edheldil_ has left IRC (Ping timeout: 252 seconds)
[10:06:46] <-- nutron has left IRC (Ping timeout: 272 seconds)
[10:10:08] --> nutron has joined #gemrb
[10:10:54] --> Eli2_ has joined #gemrb
[10:11:35] <-- Eli2 has left IRC (Ping timeout: 245 seconds)
[10:49:06] --> edheldil_ has joined #gemrb
[12:00:25] <-- WingedHussar has left IRC (Ping timeout: 250 seconds)
[12:01:29] --> WingedHussar has joined #gemrb
[13:27:20] --> PKodon has joined #gemrb
[13:43:06] <-- edheldil_ has left IRC (Ping timeout: 252 seconds)
[15:11:33] <-- Eli2_ has left IRC (Quit: Ex-Chat)
[15:20:47] --> chiv has joined #gemrb
[15:22:11] <chiv> well, i've slept on it and read some more on gamescript, but I'm still not sure where to go with it, here's what I have at the moment in case anyone has any ideas: http://pastebin.com/bWnyfLYz
[15:22:13] <Pepelka> [C++] diff --git a/gemrb/core/GUI/GameControl.cpp b/gemrb/core/GUI/GameControl.cpp in - Pastebin.com
[15:22:58] <-- chiv has left IRC (Client Quit)
[15:55:05] --> brada has joined #gemrb
[16:13:22] <brada> I dont understand why the GUIscript functions CreateXXX return an int, but in python they seem to be actual GUI controls. what sorcery is going on here?
[16:13:58] <brada> i see that they all used to simply return Py_None
[16:14:11] <brada> or NULL...
[16:14:49] <brada> i would have thought NULL would get translated to none somewhere
[16:15:07] <brada> but this suggests otherwise
[16:42:11] <-- WingedHussar has left IRC (Quit: WingedHussar)
[16:53:38] <fuzzie> brada: it's meta!
[16:53:50] <fuzzie> (see MetaClasses.py)
[16:54:26] <fuzzie> or I assume that's what you're seeing anyway :-P
[16:54:45] <brada> maybe ill have to look
[16:54:50] <brada> currently sidetracked
[16:57:58] <wjp> black meta magic :-)
[17:03:29] <fuzzie> the gui-specific bits are in GUIClasses.py if I actually look, I suppose
[17:03:37] <fuzzie> best not to ask too many questions though
[17:04:21] <brada> :/
[17:04:58] <brada> did you see chiv's question?
[17:27:13] <fuzzie> chiv's code looks ok
[17:27:21] --> Beholder has joined #gemrb
[17:27:40] <brada> isnt he having a problem with it?
[17:28:38] <fuzzie> can't tell :)
[17:29:30] <brada> so if he sends that in a pull request i can merge it for him?
[17:33:45] --> jackhunter has joined #gemrb
[17:33:50] <jackhunter> hello
[17:34:02] <jackhunter> i have met a really boring bug
[17:34:17] <brada> ok
[17:36:09] <jackhunter> toward end of planescape
[17:36:16] <jackhunter> just after defeating final boss
[17:36:34] <jackhunter> i am supposed to talk with npcs, and just the, i have a bug with one of them, which doesnt speak to me
[17:36:40] <jackhunter> reloading doesnt fix anything:/
[17:38:30] <brada> i dont know what to tell you
[17:38:43] <brada> maybe chiv would have an idea of what is happening there
[17:38:59] <brada> and maybe he fixed it already
[17:39:20] --> raevol has joined #gemrb
[17:39:23] <jackhunter> i will wait for him
[17:39:29] <jackhunter> its really a strange bug
[17:39:39] <jackhunter> the npc has become unable to interact with me(speaking)
[17:39:48] <jackhunter> but yet he can be resurrected,healed,etc
[17:56:30] <jackhunter> it seems i have to restar game again sadly
[17:56:36] <jackhunter> gonna make a new playthrough:/
[17:56:46] <jackhunter> will be better now that i know the game completely
[18:00:34] <brada> id wait until chiv's fixes are merged then make a new build to start over with
[18:09:52] --> chiv has joined #gemrb
[18:10:23] <chiv> jackhunter, I thought you were playing the original right?
[18:10:35] <jackhunter> yes actually
[18:10:45] <jackhunter> it happened in original
[18:11:00] <chiv> yeah I don't know anything about bugs in the original
[18:11:02] <jackhunter> grace npc is considered to be a part of my team and at same time not being one
[18:11:19] <jackhunter> which breaks the game oso i restardee a complete new game
[18:11:23] <chiv> when I play, I just make sure I have all the fix packs installed I can find
[18:11:35] <jackhunter> actually i used the pst fix pack
[18:12:08] <chiv> I don't know who looks after those, but its probably worth telling them about it if you can find out
[18:13:48] <jackhunter> i wil have a look at it
[18:14:05] <jackhunter> its a quite boring bug, i remmber i had similars in bg2
[18:15:01] <chiv> brada: the code is still bad, because instead of starting the dialog with the infopoint entity, it starts it with the nearest party member eg morte if he is closest. but I don't know how to change that, I can't find a gamescript function that seems to fit
[18:16:44] <Beholder> hi guys
[18:17:17] <brada> hello
[18:17:22] <chiv> hi
[18:17:29] <jackhunter> to explain clearly the bug i think at some point of game grace died and i used no name power to resurrect her
[18:17:47] <jackhunter> and i think that then, a bug happened and she becamle tratred as a npc non companion, while being in my team
[18:17:59] <brada> I dont know what you expect us to do about bugs in the original
[18:18:23] <jackhunter> if you can avoid it to happen in gemrb version for future^^
[18:19:33] --> lynxlynxlynx has joined #gemrb
[18:19:33] --- ChanServ gives channel operator status to lynxlynxlynx
[18:19:56] <chiv> its very unlikely for gemrb to share bugs with the original, and if it does, that means they can probably fixed for the original anyway - if you're able to, you should probably go back to before grace died and see if that is really the reason
[18:21:18] <Beholder> What about PST, game now is more playable than year ago? I remember that more items was useless when I try to playing it...
[18:22:12] <jackhunter> i am gonna start a whole new palythrough cause i have no chocie, and it will be cklearer and faster this time
[18:22:25] <jackhunter> its faster than bg2
[18:22:58] <chiv> pst is still impossible to play normally, but I've identified a lot of problems recently that could be fixed
[18:24:34] <chiv> it's hard to say if that will be enough, but it should improve alot over the next few weeks
[18:24:36] <Beholder> I know that PST is more "hardcoded" compared to other
[18:25:20] <chiv> the main problem is it forked early before the release of bg1, so almost everything is just 'diferrent' in some way or another
[18:26:51] <lynxlynxlynx> ooo, it's Beholder!
[18:26:57] <Beholder> hi )
[18:30:14] <Beholder> I installed a 0.8 android build on my tablet. The official SDL is much better now
[18:31:41] <brada> chiv: I think your code should be easy to fix
[18:31:54] <Beholder> but pst still unplayable (... dreams...
[18:33:17] <chiv> well, I did a forced playthrough with cheats, and identified that most of the problems are the same 10 or so problems
[18:34:02] <chiv> when those are fixed, I will actually play it start to finish gemrb only and find out what still breaks
[18:35:16] <lynxlynxlynx> so the [PC] bit is bothering you?
[18:35:45] <chiv> no it always talks to the nameless one
[18:36:03] <lynxlynxlynx> I think you can just construct the action with actor->GetGlobalID() for the second parameter
[18:36:05] <chiv> just it uses the nearast available party member instead of the infopoint
[18:36:23] <brada> right because of the "[PC]"
[18:36:33] <brada> you need to specify the target
[18:36:37] <lynxlynxlynx> in pst only the nameless one can talk anyway
[18:36:49] <brada> right but he needs to talk to an object
[18:37:12] <lynxlynxlynx> oh, so then trap->GetGlobalID()
[18:37:15] <brada> yes
[18:37:21] <chiv> i must have it wrong then, I thought [PC] meant the protagonist
[18:37:39] <brada> well it just means start dialogue with a PC
[18:37:55] <brada> and that parameter is for the target
[18:37:56] <chiv> damn, this is why i shouldn't stay up late
[18:38:27] <brada> actor is the person you wnat to start dialog with whatever the parameter is
[18:39:10] <brada> oh and you probably shouldnt use CommandActor
[18:39:38] <brada> CommandActor behaves as if you click to command them
[18:39:47] <chiv> well, this happens when you click an infopoint
[18:40:12] <chiv> so the intended behaviour is to walk up to it and 'talk' to it
[18:40:17] <brada> i know that
[18:40:31] <brada> but commandActor will have them say their command lines
[18:40:37] <chiv> oh
[18:40:43] <brada> and this would probably result in them saying something twice
[18:41:36] <brada> i dont know maybe im wrong, i dont know when HandleActiveRegion is called
[18:41:53] <brada> it might be totally fine to use CommandActor
[18:45:58] <brada> chiv: anyway just do what lynx said and it should work
[18:46:47] <lynxlynxlynx> no pressure :D
[18:49:32] <lynxlynxlynx> oh, please check if startdialog is enough, it has it's own range checks
[18:51:11] <chiv> it doesn't seem to like taking globalId as a parameter...
[18:51:53] <brada> show what you have
[18:53:33] <chiv> http://pastebin.com/sJbEELzf
[18:53:35] <Pepelka> [C++] diff --git a/gemrb/core/GUI/GameControl.cpp b/gemrb/core/GUI/GameControl.cpp in - Pastebin.com
[18:54:27] <chiv> isnt gamescript completely different?
[18:54:43] <brada> different than what?
[18:55:18] <brada> what are the conditions in that dialog?
[18:56:08] <lynxlynxlynx> oh, just use ->GetScriptName() instead
[18:56:16] <chiv> i don't know, but it does start when using the previous way
[18:56:29] <lynxlynxlynx> and the movetopoint shouldn't be needed
[18:57:11] <chiv> but what I mean was, i thought globalid was an internal thing?
[18:57:54] <brada> chiv: does the info point need to start dialog with TNO or does TNO start it with the point?
[18:58:27] <brada> right now you are trying for the latter
[19:00:26] <chiv> thats actually hard to tell, I am doing it the way i am because in the orinal, he does walk up to it if too far away - but the dialog seems to start when tno is near enough the talk point, rather than directly on it, so it could be the point talks to tno
[19:00:59] <lynxlynxlynx> nah
[19:01:19] <lynxlynxlynx> but i won't repeat myself a third time :P
[19:05:33] <chiv> yeah i'm doing it the wrong way
[19:05:44] <brada> should be easy to reverse
[19:06:27] <chiv> torment.exe doesn't cancel the player move to make him talk, the point itself starts the dialog when he is near
[19:07:07] <brada> ug
[19:07:28] <brada> i dont know how we do proximity triggers
[19:07:51] <brada> fuzzie or lynx?
[19:08:25] <lynxlynxlynx> i don't see why we'd want to complicate the matter
[19:09:24] <brada> so just leave it as a click action?
[19:10:44] <brada> and this operates on first selected PC
[19:12:04] <brada> and we must handle triggers when PCs enter a given region because thats how traps work
[19:18:59] --> brada_ has joined #gemrb
[19:21:23] --> lynxlynx has joined #gemrb
[19:21:23] --- ChanServ gives channel operator status to lynxlynx
[19:22:16] <-- lynxlynxlynx has left IRC (Ping timeout: 240 seconds)
[19:25:26] <-- brada_ has left IRC (Ping timeout: 240 seconds)
[19:26:23] <-- brada has left IRC (*.net *.split)
[19:29:16] <chiv> can't seem to get it working, it generates what seems to be a reasonable action: StartDialog( DPTCOFF, "centralcoffin" ) but that doesn't work
[19:30:08] --> brada has joined #gemrb
[19:34:12] <Beholder> brad, I can publish android version in play market in pelya's account. Is current version stable? If not or controls not better than in published version, it's better do not publish, otherwise it will reduce the rating.
[19:34:14] <brada> chiv: InfoPoint::Entered?
[19:34:53] <brada> Beholder: I wouldnt pusblish anything right now
[19:35:10] <brada> the current version seems to not work on some devices
[19:35:19] <Beholder> hm
[19:35:29] <brada> and its super slow
[19:35:31] <Beholder> what problems?
[19:36:12] <brada> im not sure, i dont have an android
[19:36:31] <Beholder> i installed latest build from github on my tablet and it run with 30fps
[19:36:31] <brada> i just know people complain :)
[19:36:44] <brada> must have a powerful device
[19:36:53] <Beholder> 4core
[19:37:08] <brada> right most devices are lucky to get 20fps
[19:37:39] <Beholder> may be better build with old SDL 1.2 if possible?
[19:37:42] <brada> its possible it might be a bit better if somebody could make a new build with the latest SDL
[19:37:48] <brada> ew gross
[19:38:18] <brada> and it would have been nice if psch had finished his configuration interface
[19:38:36] <brada> ^ that would help a ton with people getting it running
[19:38:47] <Beholder> but what SDL 2.0 too slow? or gemrb renderer for 2.0 too slow?
[19:38:55] <Beholder> launcher for gemrb?
[19:39:11] <brada> sdl 2 is fast
[19:39:17] <brada> gemrb is slow
[19:39:50] <brada> we dont take advantage of hardware
[19:39:59] <brada> plus a few other things dont help
[19:40:05] <brada> like our text system is a wreck
[19:40:23] <brada> ^ also slow
[19:40:33] <brada> im rewriting that tho so that should help
[19:41:21] <Beholder> how gemrb renderer works? it use GLES 2.0 or not?
[19:41:22] <lynxlynx> but the renderer didn't change, so it's more of a vanilla sdl issue vs pimped pelya sdl
[19:41:30] <lynxlynx> no
[19:42:51] <brada> lynx: not entirely
[19:44:00] <brada> because now in our SDL2 driver we do software render -> upload to texture every frame
[19:44:25] <Beholder> I have little experience with the SDL + GLES
[19:44:27] <brada> and pushing the enitre frame buffer every frame slows things down a bit
[19:44:56] --> Yoshimo has joined #gemrb
[19:45:24] <lynxlynx> so some dirty recting is needed?
[19:46:02] <brada> that could help i guess, but really we just need to use textures instead of software blitting
[19:46:15] <brada> obviously a non-trivial thing to do
[19:47:11] <brada> I had a POC for an SDLTextureSprite2D that worked ok
[19:47:37] <brada> but I ran into issues because of my limited (zero) knowledge of opengl
[19:48:20] <Beholder> may be i can help
[19:49:34] <brada> be our guest :)
[19:50:06] <Beholder> btw, sound in latest not works for me (on tablet)
[19:51:24] <brada> OpenAL?
[19:51:29] <brada> i doubt anything is broken
[19:51:35] <brada> probably a setup problem
[19:51:43] <brada> or you didnt omplile a driver
[19:51:46] <brada> compile
[19:52:28] <brada> the OpenAL driver hasnt been changed in a long time
[19:52:46] <brada> and even then none of those changes would break sound
[19:53:07] <brada> well at least no all sound :D
[19:54:35] <Beholder> maybe a device problem
[19:55:25] <brada> well did you make sure you have a driver?
[19:55:33] <brada> and that it is correctly configured?
[19:55:46] <brada> chiv: do you get any console errors for that action?
[19:56:24] <chiv> yeah simple target not found: [GameScript/ERROR]: Target for dialog couldn't be found (Sender: nameless, Type: 0).
[19:57:10] <brada> chiv: makes sense
[19:57:22] <brada> looks like for some reason we expect target to be an actor
[19:57:35] <fuzzie> yes, what a strange idea :-P
[19:57:56] <brada> fuzzie: dont judge me for talking to inanimate objects!
[19:58:43] <brada> fuzzie: what is the harm in removing that check?
[19:58:48] <fuzzie> well, it'll crash
[19:58:52] <fuzzie> since you won't have an actor any more
[19:58:59] <brada> ah
[19:59:12] <brada> ok so chiv needs to have TNO be the target?
[19:59:17] <fuzzie> no
[19:59:25] <fuzzie> you have to wrap all the target checks I guess?
[19:59:31] <chiv> I need to look at how the portals do it...
[20:00:08] <fuzzie> there's only one way to initiate dialog in gemrb, and it's using actors
[20:00:09] <Beholder> we still using methods from sdlvideo? BlitSprite etc.?
[20:00:10] <brada> its in MapUpdateScripts iirc
[20:00:32] <brada> Beholder: nothing much has changed there
[20:00:38] <brada> other then cleanup/refactor
[20:00:45] <fuzzie> BlitSprite is easy though
[20:00:49] <fuzzie> BlitGameSprite is the tricky one
[20:00:53] <brada> yes
[20:00:57] <brada> and palettes
[20:01:06] <brada> those are tricky too
[20:01:07] <fuzzie> you have to obey all the flags, and the tint, and the cover, and the clip, and the palette, etc..
[20:02:23] <fuzzie> chiv: if you fix the dialog action code (BeginDialog in GSUtils.cpp) to cope with a non-actor target, then I *think* the rest (DialogHandler) should work but probably we missed some
[20:03:29] <brada> I do think the code he posted belongs elsewhere
[20:03:51] <brada> either in InfoPoint:Entered or in Map::UpdateScripts
[20:04:01] <fuzzie> oh?
[20:04:11] <chiv> you would never be able to walk on any of these points
[20:04:20] <fuzzie> I mean the only patch I saw was in the GameControl code
[20:04:23] <fuzzie> and it looked ok
[20:04:39] <fuzzie> probably you actually want to generate an internal action for doing both at once
[20:04:39] <brada> well the way he said the original worked is a proximity trigger
[20:04:58] <fuzzie> well
[20:04:59] <brada> not something that happens when you click on something
[20:05:12] <fuzzie> the way this works in non-pst, is: you click something, it generates an internal action, and it walks as close as it can get and then starts
[20:05:57] <chiv> that sounds like the only difference is pst cares less about how close you are
[20:06:03] <brada> ok if this is only a special case then i guess its ok
[20:06:16] <fuzzie> and that is the general case
[20:06:29] <brada> i thought it was like a trap
[20:06:34] <brada> so the point was a region
[20:06:38] <fuzzie> yes I think it's not that :)
[20:06:41] <brada> then you enter it and dialog begins
[20:06:45] <fuzzie> but I don't remember pst well enough honestly
[20:07:09] <brada> isnt there a debug setting to show regions?
[20:07:16] <chiv> yeah ctrl 4
[20:07:39] <brada> do its not an enterable region chiv?
[20:07:50] <chiv> theres the region polygon, and theres a point labeled 'talk location'
[20:08:08] <chiv> you don't actually enter the polygon at any point
[20:08:24] <brada> ok
[20:08:37] <brada> then i guess what you are doing is fine
[20:08:53] <fuzzie> but it might be a good idea to remember to look at this again sometime :)
[20:08:54] <brada> but you need to make BeginDialog work with non actors
[20:09:22] <chiv> that's the weird thing, I thought some one had already done that because the portals work
[20:09:35] <chiv> well... sometimes
[20:09:47] <brada> I know i saw something about protals in map::UpdateScripts
[20:09:57] <brada> when i was poking in there fixing timestop
[20:10:45] <fuzzie> I think the portals are secretly actors
[20:11:15] <brada> wierd
[20:12:21] <fuzzie> I mean in the other games, everything you can speak to is an actor
[20:12:28] <brada> chiv: didnt you say you had dialog reversed anyway?
[20:13:13] <brada> maybe it is the point that should be starting dialog with the actor
[20:13:27] <fuzzie> the begindialog action deals with switching them
[20:14:06] <fuzzie> oh
[20:14:17] <fuzzie> yes, come to think of it, the begindialog action begins with switchin them :-P
[20:15:06] <fuzzie> so what brada said except that's impossible due to the ordering
[20:15:14] <fuzzie> so you want to set BD_CHECKDIST
[20:15:30] <fuzzie> -> use NIDSpecial1?
[20:16:02] <fuzzie> see GameControl::TryToTalk
[20:16:32] <fuzzie> and ignore everything else I said
[20:17:32] <chiv> nidspecial1? no description on iesdp...
[20:17:37] <brada> right
[20:17:56] <brada> becaue its unused in the originals iirc
[20:18:05] <brada> i guess we hijack it for something
[20:18:33] <fuzzie> just look at that function :)
[20:19:02] <brada> ah yes you mean GameScript::NIDSpecial1
[20:19:11] <brada> where it says we are hijacking it
[20:19:43] <chiv> curiouser and curiouser
[20:20:05] <fuzzie> no I mean GameControl::TryToTalk
[20:22:19] <brada> so chiv needs something like "trap->AddAction(GenerateActionDirect( "NIDSpecial1()", TNO));"?
[20:22:27] <fuzzie> no
[20:22:56] <fuzzie> maybe
[20:24:16] <fuzzie> what you really want is to queue an ActionOverride onto the trap, right?
[20:24:52] <chiv> that sounds good, is that possible?
[20:24:53] <brada> this is all slightly above my current understanding of how actions etc work
[20:25:34] <fuzzie> it is possible.. somehow
[20:26:13] <fuzzie> you want to set objects[0] on the action
[20:26:50] <fuzzie> by making it a new Object and then setting objectFields[1] on it to the globalid of the trap
[20:29:37] <fuzzie> and setting objectFields[0] to -1 (to mark it as globalid)
[20:29:51] <fuzzie> should work. maybe :)
[20:30:02] <fuzzie> this is what lynx was referring to above with the global id of the trap I expect, anyway
[21:30:58] <-- Beholder has left #gemrb
[21:40:39] --> edheldil_ has joined #gemrb
[22:12:10] <lynxlynx> our iesdp backup is now up to speed
[22:12:23] <lynxlynx> didn't notice the december update until a few days ago
[22:29:26] <-- lynxlynx has left IRC (Read error: Connection reset by peer)
[22:33:11] <brada> is there a changelog?
[22:33:58] <brada> found it
[22:35:13] <edheldil_> not detailed enough, unfortunately
[22:35:16] <brada> yeah
[22:35:23] <brada> was about to complain about that
[22:35:45] <brada> would be nice to know what changed within the file formats
[22:35:52] <edheldil_> I should load it to git :/
[22:36:09] <edheldil_> yues, that's exactly my gripe
[22:36:57] <edheldil_> well, lynx or wjp might have a backup before update
[22:46:51] <-- PKodon has left IRC (Quit: The Rodent Tracker 8000, just like on TV ... Because household pests never build up an immunity to bullets. (Tex Murphy))
[23:09:40] <-- brada has left IRC (Quit: brada)
[23:31:29] --> brada has joined #gemrb
[23:38:50] <-- brada has left IRC (Quit: brada)
[23:43:07] <Lightkey> or the archive?
[23:44:37] --> brada has joined #gemrb
[23:47:52] <-- brada has left IRC (Client Quit)
[23:57:53] <-- jackhunter has left IRC (Quit: Page closed)