#gemrb@irc.freenode.net logs for 17 Feb 2012 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage


[00:14:04] <-- brad_a has left IRC (Quit: brad_a)
[00:15:12] --> brad_a has joined #gemrb
[02:00:34] <brad_a> tomprince: do you know what gem_grab is?
[02:04:45] <-- lostLinSoul has left IRC (Quit: Page closed)
[02:12:19] <brad_a> i mean i know what its use is i just dont get what key it is....
[02:26:50] --> joneirik has joined #gemrb
[02:53:40] <tomprince> The scroll lock key, which may not exists on mac.
[02:53:43] <tomprince> :)
[02:57:11] <brad_a> ah lol nope. dont have that
[02:58:05] <brad_a> and its hardcoded :-/
[02:58:42] <tomprince> Yes. One thing I was going to suggest to you after you refactored to unhardcode everything there that is still hardcoded. :)
[02:59:13] <brad_a> yup thatll have to happen
[03:02:50] <-- brad_a has left IRC (Quit: brad_a)
[03:05:44] <tomprince> I bet it wouldn't be too hard to make sdlvideo never reference core.
[04:46:24] --> brad_a has joined #gemrb
[05:23:53] <-- joneirik has left IRC (Remote host closed the connection)
[05:51:57] <-- brad_a has left IRC (Quit: brad_a)
[06:31:34] <-- Gekz has left IRC (Ping timeout: 276 seconds)
[09:12:36] --> Gekz has joined #gemrb
[09:12:37] <-- Gekz has left IRC (Changing host)
[09:12:37] --> Gekz has joined #gemrb
[09:16:55] <-- Gekz has left IRC (Ping timeout: 240 seconds)
[09:17:39] <-- Kiranos has left IRC (Remote host closed the connection)
[10:28:29] --> SiENcE has joined #gemrb
[10:54:43] --> Kiranos has joined #gemrb
[10:55:32] <-- Kiranos has left IRC (Remote host closed the connection)
[11:09:14] --> Kiranos has joined #gemrb
[11:46:26] --> Gekz has joined #gemrb
[11:46:27] <-- Gekz has left IRC (Changing host)
[11:46:27] --> Gekz has joined #gemrb
[11:50:35] <-- Gekz has left IRC (Ping timeout: 240 seconds)
[12:38:15] --> Dmike has joined #gemrb
[12:38:21] <Dmike> hello
[12:38:55] <Dmike> i have some problems running gemrb app on my nexus prime, android 4.0 phone
[12:39:24] <Dmike> any solution? tnx
[12:43:10] <Kiranos> there is an android thread in the gemrb forum
[12:43:14] <Kiranos> maybe you can look there
[12:43:27] <Kiranos> or type what kind of problem you have :)
[12:45:30] <Dmike> ok
[12:46:06] <Dmike> when i first start gemrb app, it installs itself on sd card
[12:46:25] <Dmike> later when i start germrb it just stops working
[12:46:39] <Dmike> it opens and closes it self
[12:47:14] <Dmike> is it compatible with android 4 and nexus prime?
[12:50:59] <Kiranos> I dont know
[12:51:02] --> lynxlynxlynx has joined #gemrb
[12:51:02] <-- lynxlynxlynx has left IRC (Changing host)
[12:51:02] --> lynxlynxlynx has joined #gemrb
[12:51:02] --- ChanServ gives channel operator status to lynxlynxlynx
[12:51:12] <Kiranos> maybe idle and see if someone comes by
[12:51:19] <Kiranos> or post in the andorid thread
[12:51:22] <Kiranos> on the forum
[12:53:34] <Dmike> ok tnx
[12:53:41] <-- Dmike has left IRC (Quit: Page closed)
[13:02:35] <-- Kiranos has left IRC (Read error: Operation timed out)
[13:14:35] --> Kiranos has joined #gemrb
[13:22:42] <-- Kiranos has left IRC (Quit: No Ping reply in 180 seconds.)
[13:27:50] --> Kiranos has joined #gemrb
[13:36:36] --> pmjdebruijn has joined #gemrb
[13:42:37] <-- Kiranos has left IRC (Read error: Operation timed out)
[13:46:51] --> Kiranos has joined #gemrb
[14:11:37] --> lostLinSoul has joined #gemrb
[14:12:37] <lostLinSoul> The amount of which I am ignorant seens to keep increasing!
[14:13:18] <lostLinSoul> In PluginLoader.cpp, there is the following:
[14:13:21] <lostLinSoul> typedef void *(* voidvoid)(void);
[14:13:34] <lostLinSoul> static inline voidvoid my_dlsym(void *handle, const char *symbol)
[14:14:18] <lostLinSoul> Wich also contains voidvoid ret;
[14:15:48] <lostLinSoul> I understand typedef char* char_ptr, but this typedef looks more like a function prototype
[14:16:25] <lostLinSoul> Can anyone explain what it is?
[14:17:45] <edheldil> the rule of thumb with typedefs is that you start in the middle and go on spiral
[14:18:34] <edheldil> so it says that voidvoid is a pointer to function having no parameters and returning void ptr
[14:19:31] <edheldil> my_dlsym then returns such a pointer
[14:26:25] <lostLinSoul> Thanks for the help, but my_dlsym takes two parameters whereas voidvoid takes none
[14:28:35] <lostLinSoul> Also when I've seen examples of function a function, they vould then do something like voidvoid func_ptr, then func_ptr = some_function
[14:29:13] <lostLinSoul> "function a function" - > "function typedef"
[14:36:48] <lostLinSoul> I read that dlsym returns the address of a symbol, so is that a function?
[14:38:05] <wjp> the _return type_ of my_dlsym is voidvoid
[14:38:19] <wjp> so, yes, it returns a function pointer
[14:47:10] --> Gekz has joined #gemrb
[14:47:10] <-- Gekz has left IRC (Changing host)
[14:47:10] --> Gekz has joined #gemrb
[14:50:12] <lostLinSoul> rbf
[14:50:38] <lostLinSoul> ...whoops wrong window
[15:02:34] --> Yoshimo has joined #gemrb
[15:09:48] <-- Kiranos has left IRC (Quit: No Ping reply in 180 seconds.)
[15:10:12] --> Kiranos has joined #gemrb
[15:23:29] <-- Kiranos has left IRC (Ping timeout: 245 seconds)
[15:24:24] --> Kiranos has joined #gemrb
[16:20:21] <-- SiENcE has left IRC (Quit: @all: cya)
[16:22:56] <lostLinSoul> Can anyone tell me where 'plugins', used by PluginMgr is declared? I've been unable to find it.
[16:28:49] <lostLinSoul> Nevermind, went past it more that once...couldn't find the wood for the tree...
[18:04:57] --> svante has joined #gemrb
[18:09:21] <svante> hey folks. is there a way to alter the special abilities bar ? i have dual classed a thief to cleric in BG1 and it keeps the thief bar, so i dont get a turn undead button
[18:11:01] <lynxlynxlynx> version?
[18:11:07] <lynxlynxlynx> and yes
[18:11:12] <svante> 0.7.0
[18:11:46] <svante> ooh great :) i hope i can do it
[18:11:48] <lynxlynxlynx> that's unexpected then
[18:12:01] <lynxlynxlynx> it is read from a table
[18:12:36] <svante> ok so i could alter that table ?
[18:14:21] <lynxlynxlynx> yes
[18:14:34] <lynxlynxlynx> did you try just going through a few other windows?
[18:14:40] <lynxlynxlynx> maybe it just wasn't refreshed
[18:14:51] <lynxlynxlynx> it's gemrb/override/bg1/qslots.2da
[18:15:03] <svante> yeah i played it a while until my cleric level matched the former thief level
[18:15:40] <svante> ok thank you! ill look into it !
[18:17:08] <lynxlynxlynx> requires a gemrb restart
[18:19:42] <svante> hm. i can see that cleric /thief is a mixture of pure cleric and pure thief numbers. i wonder if it is not read ? ill check the folder paths. thank you!
[18:27:19] --> brad_a has joined #gemrb
[18:39:49] <lynxlynxlynx> it definitely worked for some dualclasses, but i don't remember with which i've tested
[18:54:11] <-- svante has left IRC (Ping timeout: 245 seconds)
[18:56:45] <lynxlynxlynx> it works here, as soon as i dc-ed, new bar
[18:56:47] <lynxlynxlynx> but meh
[18:57:35] <lynxlynxlynx> a reactivated c/t doesn't have it though
[18:58:22] <lynxlynxlynx> i wonder which slot the original killed
[19:02:08] <brad_a> tomprince/anybody: anything else before i merge this? https://github.com/bradallred/gemrb/tree/SDL
[19:08:15] <-- Gekz has left IRC (Ping timeout: 240 seconds)
[19:13:45] --> SiENcE has joined #gemrb
[19:16:29] <tomprince> brad_a: I suggested doing this for PollEvents, but it probably makes sense for all the changes: Create two empty subclasses, and then a bit at a time, move functionallity into the subclasses.
[19:16:37] <tomprince> ^---- much easier to review, this way.
[19:16:56] <brad_a> ok
[19:17:02] <brad_a> if thats what we ant to do
[20:24:07] --> kettuz has joined #gemrb
[20:33:25] --> Gekz has joined #gemrb
[20:33:25] <-- Gekz has left IRC (Changing host)
[20:33:25] --> Gekz has joined #gemrb
[20:37:35] <-- Gekz has left IRC (Ping timeout: 240 seconds)
[20:42:57] --> Avenger has joined #gemrb
[20:43:10] --- ChanServ gives channel operator status to Avenger
[20:43:13] <Avenger> hi
[20:43:22] <brad_a> good day
[20:47:36] <lostLinSoul> In include/plugindef.h I have found the #define which ends 'GEM_EXPORT_DLL bool GemRBPlugin_Register(PluginMgr *mgr) {', can anyone tell me where the definition of 'GemRBPlugin_Register ()' is continued?
[20:47:53] <fuzzie> in the other macros
[20:47:59] <fuzzie> look at how it is used
[20:51:50] <brad_a> im not sure why you are so interested in the plugin code :)
[20:52:03] <brad_a> i thought you wanted to extend the party size
[20:52:33] <tomprince> The plugin code involves some dark magic that I can be blamed for. :)
[20:52:40] <tomprince> HERE BE DRAGONS. ;)
[20:52:47] <brad_a> yes i remember having to make a plugin and being confuse
[20:53:41] <tomprince> I tried to document it in plugindef.h
[20:53:53] <tomprince> I think that is the most documented part of the codebase.
[21:02:44] <lostLinSoul> Just following all the code at the moment and whereever it take me...
[21:03:26] <lostLinSoul> Until I can figure out where the code I'm interested in kicks in an how it also works
[21:04:15] <tomprince> lostLinSoul: If you are following all the code, are you keeping a record of your exploration, for the next person?
[21:04:48] <tomprince> That would be quite a useful thing to have
[21:05:06] <lostLinSoul> Fraid not for a few minutes in, it all started to go to hell, lines all over the place
[21:05:58] <lostLinSoul> So just walking through to find what I need and try to understand code I don't, at the moment
[21:08:22] <Avenger> tom, most of your changes make the code readable on the surface, but totally obfuscated if you try to dive deeper :)
[21:09:00] <fuzzie> well of course ideally you shouldn't *have* to dive deeper
[21:09:06] <lostLinSoul> Slow process for me by the way, keep getting lost - working this out and then realising that I had done that bit 1/2 hr ago ...
[21:09:26] <tomprince> The surface code is the code that people read/write most often, though.
[21:09:46] <Avenger> yeah, of course
[21:09:50] <fuzzie> i am rather happier about cleverer rewrites since it's clear tomprince is staying here to fix things
[21:10:15] <Avenger> i like the smart pointers too :D
[21:10:56] <fuzzie> and really I think the only real obfuscated bit so far has been the python smart pointersa
[21:11:03] <Avenger> and the directory importer, etc
[21:11:12] <Avenger> and the python metaclasses
[21:11:20] <tomprince> What do people think of putting ERROR/WARNING/etc. a the begining.
[21:11:20] <fuzzie> can't blame tomprince for metaclasses :-p
[21:11:32] <Avenger> well, they are the same category
[21:11:37] <fuzzie> yes, that is true
[21:11:52] <tomprince> But, I do want to make the smarter. We should be able to be generated automatically, since the functions they call have standard names.
[21:11:54] <Avenger> easier on the surface, but fixing them is a total nightmare
[21:12:26] <tomprince> Typically, it should be as easy as poking me here. :P
[21:13:01] <fuzzie> honestly I think you are first refactorer in any project I saw that cared enough to stay around, in situations far less crazy than gemrb
[21:13:42] <Avenger> yeah, part of me is scared of that. Hit and run refactoring :D
[21:14:20] <fuzzie> so in hindsight of course we should have been much happier with refactoring
[21:14:43] <tomprince> Nah.
[21:15:13] <tomprince> The code is better for having crtical eyes on it, worried about crazy code. :)
[21:18:43] <lostLinSoul> Mine could be more critial if they would stop spinning..
[21:18:55] <lynxlynxlynx> not much of an opinion on the msg move
[21:19:06] <lynxlynxlynx> have you fixed all of them not to be twopart?
[21:19:26] <tomprince> Not yet.
[21:19:45] <fuzzie> might be nicer to just have some info at the start of every line - coloured info/warning/error as I/W/E or something?
[21:19:46] <lynxlynxlynx> lostLinSoul: are you sure it's a good idea to start from the start? there's a lot of plumbing you don't need to care about
[21:19:53] <fuzzie> but i think leaving the [ERROR] at the end too is nicer
[21:20:14] <fuzzie> but I have not been keeping up with the code, trying to rewrite AGS..
[21:20:42] <tomprince> Well, right now I am expermenting with things.
[21:21:36] <brad_a> lostLinSoul: i agree with lynx. the deep guts of the core/plugin architecture will not help you in your quest :)
[21:21:36] <lostLinSoul> I figured that, but not knowing where the code that concerns what I want is, and the fact that there is moment between pythton and c++, I thought this would be easier in the long run
[21:22:25] <tomprince> I'd suggest finding a bit of code that is related to what you want to do, and explore from there, find what calls it, and what it calls.
[21:22:27] <lostLinSoul> And I'm leeching practiacal c++ I never knew existed in the process!
[21:23:20] <tomprince> Well, "practical". I'm not sure how practical some of the guts are. Just something that works well enough, and makes other stuff simpler.
[21:23:27] <lynxlynxlynx> i think you should start on the gui side
[21:23:39] <lynxlynxlynx> make it create 7 portraits
[21:23:53] <lynxlynxlynx> on the c++ side, the bindings are in the GUIScripts.cpp plugin
[21:24:09] <lynxlynxlynx> you're interested in CreateButton for example
[21:25:11] <lostLinSoul> I did try starting in that way, but when I changed the number of portraits the code stopped working because of control ids, which are apparently in chu files
[21:25:36] <lostLinSoul> Not understaning what that was all about, I thought I start from the beginning...
[21:25:58] <fuzzie> probably you won't understand that from our source at all, beware
[21:26:36] <tomprince> lostLinSoul: You should have a look at the places where GUIEnhancments is used.
[21:26:42] <lostLinSoul> I'll double check where I got to and then ask here for an explanation then
[21:28:40] <lynxlynxlynx> i suggest you download dltcep and open one of these chu files
[21:28:48] <lynxlynxlynx> all the fields will be clear then
[21:28:57] <Avenger> opening iesdp helps too
[21:29:34] <lynxlynxlynx> the fact that ids can't be contiguous anymore means all the loops need fixing
[21:30:17] <lynxlynxlynx> simple +1 iteration doesn't work, so you'll have to make touples, dicts or some other holder to iterate over
[21:30:48] <lynxlynxlynx> we already do that in a few places
[21:32:17] --> edheldil_ has joined #gemrb
[21:35:15] <lostLinSoul> okay thanks for the pointers - I'll start looking into that
[21:44:28] <CIA-28> GemRB: 03avenger_teambg * r0b00f3d89d8b 10gemrb/gemrb/core/Scriptable/PCStatStruct.cpp: just typos
[21:44:38] <CIA-28> GemRB: 03avenger_teambg * r5da73cac678c 10gemrb/gemrb/core/Scriptable/Actor.cpp: hardcoded version of toughness feat
[21:45:14] <tomprince> git add -e and :g/+^I/s/.... is awesome for fixing up whitespace style just on changed lines.
[21:47:15] <tomprince> Now printStatus is limited to ResourceManager.
[22:08:49] <brad_a> lynx: any idea of a timeframe for the next release? I would like to make sure mac/ios builds are in good working order beforehand.
[22:09:18] <lynxlynxlynx> not before april
[22:09:39] <lynxlynxlynx> extremely likely
[22:10:05] <brad_a> ok plenty of time :) probably enough to get sdl 2 video on par with SDL 1.2 driver
[22:21:21] <lostLinSoul> In 'Onload()' of GUILOAD.py, after 'GemRB.SetVar("LoadIdx",0)' there is 'for i in range(4):' and later, within that for there is also 'for j in range(PARTY_SIZE):'. What is the i loop interating through?
[22:22:16] <tomprince> The different save game slots displayed.
[22:22:35] <tomprince> It probably helps to look at the screen that the code is dealing with.
[22:24:20] <lostLinSoul> Kind of difficult was the screen showing the 'Load Game' clicked is still the one on the screen...
[22:24:23] <lynxlynxlynx> i'd just hardcode that to 6
[22:25:15] <lostLinSoul> Kind of perplex as to why that has anything to do with party size on that screen...
[22:25:28] <fuzzie> there should be little portraits of your party?
[22:28:28] <lostLinSoul> Ah yes, Never noticed that before...
[22:29:34] <lostLinSoul> or never paid any attention to it :p
[22:35:53] <lostLinSoul> Is MessagesWindow.py for where the dialogue text shows up?
[22:36:14] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[22:54:38] <lostLinSoul> MessagesWindow.py has 'GemRB.GameSetPartySize(PARTY_SIZE)'. If it is for where all the message show up, is it necessary to have that there?
[22:55:15] <brad_a> i think in IWD that is where the portraits go?
[22:55:35] <brad_a> i know some games have them along the bottom somewhere
[22:56:41] <brad_a> which messagesWindow.py file?
[22:58:07] <lostLinSoul> It in the GUIScripts/bg2
[22:58:22] <brad_a> oh ill bet its for when the actor talking to you displays a portrait then
[22:58:38] <brad_a> not sure at all
[22:58:55] <brad_a> i know as little about this particular bit of gemrb as you do :-P
[22:59:15] <lostLinSoul> Haha blind leading the blind eh!?
[22:59:22] <brad_a> yup
[23:02:17] <lostLinSoul> Well I disabled it and nothing seem to have trown a fit...
[23:02:58] <brad_a> FYI: MessageWindow.py - scripts and GUI for the main (walk) window
[23:03:04] <fuzzie> if you look at the rest of MessageWindow then it clearly isn't the mssage window
[23:03:10] <brad_a> no idea what that means :-P
[23:03:23] <brad_a> what fuzzie said
[23:09:04] <brad_a> messageWindow is apparently the window where you remove party members?
[23:09:05] <lostLinSoul> Well it seems to do all sorts of things, which is why I asked - from the comment at teh top I would have guess the main UI, but the filename suggested otherwise...
[23:14:35] <-- Avenger has left IRC (Quit: bye!)
[23:25:04] <-- SiENcE has left IRC (Quit: cya)
[23:28:48] <brad_a> lostLinSoul: have you already read this: http://www.gemrb.org/wiki/doku.php?id=guiscript:start
[23:29:11] <brad_a> also feel free to expand our wiki :)
[23:30:37] <brad_a> also i dont know how versed you are in python
[23:30:57] <brad_a> but its of upmost importance you indent with tab characters
[23:31:03] <brad_a> (for our scripts)
[23:31:07] <lostLinSoul> I saw that back when I was first looking at gemrb and did a quick scan. I'll have a closer look now that you've reminded me about it
[23:31:15] <lostLinSoul> Thanks,
[23:32:09] <lostLinSoul> I'll beat that in mind. I think I found that out for a previous code edit where I just wanted to do a print statement
[23:32:21] <lostLinSoul> beat -> bear
[23:32:39] <brad_a> yes. python is super strict about whitespace and we choose to indent with tabs
[23:34:39] <lostLinSoul> how does one look ate the UI chu file with dltc?
[23:36:03] <lostLinSoul> Only seems useful if you already know what you're working with inside out...
[23:36:22] <brad_a> CHU isnt self contained interface
[23:36:30] <brad_a> have you looked at iedsp?
[23:36:49] <lostLinSoul> not yet
[23:37:29] <brad_a> http://iesdp.gibberlings3.net/file_formats/ie_formats/chu_v1.htm
[23:39:01] <brad_a> i think you should start by looking at how GUIEnhancements are done as tomprince suggested
[23:39:12] <brad_a> since that is essentially what you are doing
[23:45:12] <-- Yoshimo has left IRC (Quit: Yoshimo)
[23:50:23] <lostLinSoul> Where's that?
[23:50:35] <lostLinSoul> In Interface.*
[23:50:46] <lostLinSoul> ?
[23:54:34] <-- brad_a has left IRC (Quit: brad_a)