--- Log opened Tue Jan 19 00:00:27 2016 20160119 00:09:03-!- ancestral [~ancestral@209.181.254.220] has quit [Quit: i go nstuf kthxbai] 20160119 00:09:52-!- horrowind [~Icedove@2a02:810a:8b00:1a54:21b:fcff:fee3:c3ff] has quit [Quit: horrowind] 20160119 00:25:33-!- louis94 [~~louis94@16.152-243-81.adsl-dyn.isp.belgacom.be] has quit [Quit: Konversation terminated!] 20160119 00:33:48< gfgtdf> vultraz: nodes are th elements o the treeview 20160119 00:33:51< gfgtdf> the* 20160119 00:36:20< gfgtdf> vultraz: the wml contains different [node_definition] which are like [/list_definition] in listboxes. For some reason i dont know currelty [node_definition] alsoways has to be rwapped in a [node] tag 20160119 00:45:06-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 240 seconds] 20160119 00:48:54-!- mjs-de [~mjs-de@x4db5ae3e.dyn.telefonica.de] has joined #wesnoth-dev 20160119 01:00:10-!- prkc [~prkc@gateway/vpn/privateinternetaccess/prkc] has joined #wesnoth-dev 20160119 01:01:13< vultraz> gfgtdf: so if i wanted to have a tree view inside a listbox, how should it be set up - listbox - treeview - node - node_definition - toggle_panel - widget? 20160119 01:01:27< vultraz> or tree view inside the toggle_panel? 20160119 01:01:44< gfgtdf> vultraz: hmm why do you want a treeview inside a lisbox? 20160119 01:02:38< vultraz> trying to make it so when you click on a listbox row the tree view for that row will expand 20160119 01:03:07< gfgtdf> any why dont you put all rows in one treeviw ? 20160119 01:03:26< vultraz> hm 20160119 01:03:40< vultraz> if i put a toggle panel inside a tree node i can select it like a listbox? 20160119 01:04:28< gfgtdf> vultraz: well sure you can select it but it wonde deselect the other rows by default 20160119 01:05:30< gfgtdf> vultraz: i actually think that both lisstoxes and treeviews have currently the problem that the position is set to 0 if items are added/removed/resized aftee preshow. this might be a problem here 20160119 01:23:59-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20160119 01:26:27-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160119 01:29:12-!- iceiceice [~chris@50.245.222.235] has joined #wesnoth-dev 20160119 01:29:12-!- iceiceice [~chris@50.245.222.235] has quit [Changing host] 20160119 01:29:12-!- iceiceice [~chris@wesnoth/developer/iceiceice] has joined #wesnoth-dev 20160119 01:42:25< vultraz> gfgtdf: hm I observed that in the campaign dialog 20160119 01:43:16< gfgtdf> do you know whether gui2 has toggelpanels with a mouseover 'animation' ? 20160119 01:43:23< gfgtdf> like buttons have 20160119 01:43:33< gfgtdf> they glow slightly 20160119 01:44:11< vultraz> i don't think that exists 20160119 01:44:18< vultraz> you could probably implement that though 20160119 01:44:38< vultraz> thing is buttons use their own images for hover 20160119 01:44:56-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20160119 01:45:06< vultraz> wesnoth has a bad habit of doing almost nothing graphics-related procedurally 20160119 01:45:19< vultraz> everything is moving images around 20160119 01:47:24< iceiceice> vultraz, i mean, that is simpler for people who don't really know C++ 20160119 01:47:47< iceiceice> pixel artists like jetrel can just make exactly what they want by hand anyways 20160119 01:48:02< iceiceice> but yeah i mean its not really the modern style 20160119 01:48:56< iceiceice> vultraz, i mean how would you want to do it 20160119 01:49:10-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160119 01:49:10< iceiceice> like each unit type / animation tag could have a "shader" field where you write glsl? 20160119 01:49:44< vultraz> spritesheets for pixel art, particle effects for certain halos, etc, and generated effects for stuff like button glow 20160119 01:50:23< gfgtdf> vultraz: ok it seels like its actualyl disabled becasue its borken currently 20160119 01:50:30< vultraz> gfgtdf: oh? 20160119 01:50:50< vultraz> iceiceice: we need ogl support though, and that's awhile off 20160119 01:51:11< gfgtdf> vultraz: becasue its only recoginizes itself as 'fucussed' it the mose is directly over the togllepanel, meaning it doesnt wokr liek there is an image or a text between liek it is usually the case 20160119 01:51:20< iceiceice> vultraz, i guess in principle we could use image path functions for button glow 20160119 01:51:43< gfgtdf> mouse 20160119 01:51:49< vultraz> we could 20160119 01:52:09< vultraz> but that's still having an image for something that could be done procedurally 20160119 01:52:22< iceiceice> i mean, ipfs are procedural 20160119 01:52:36< iceiceice> its just not "hardware accelerated procedural", its cached 20160119 01:52:49< vultraz> but you can't generated vfx 20160119 01:52:52< vultraz> generate 20160119 01:53:10< vultraz> gfgtdf: so it won't work if you hover over the text inside a panel? 20160119 01:53:11< iceiceice> i didn't get it 20160119 01:53:16< iceiceice> what do you mean 20160119 01:53:18-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Client Quit] 20160119 01:53:52< iceiceice> what's vfx? 20160119 01:54:01< vultraz> visual effects 20160119 01:54:19< iceiceice> oh 20160119 01:54:38< iceiceice> yeah i see, i mean if you wanted like animated lighting or something 20160119 01:55:02< vultraz> our IPFs are very simple functions designed for very simple operations 20160119 01:55:13< iceiceice> we could make nicer ones though 20160119 01:55:28< iceiceice> i mean if you wanted to make a "button lighting" one it would not be too hard it hnk 20160119 01:55:36< vultraz> we still need opengl eventually 20160119 01:55:48< vultraz> thankfully, the sdl2 transition might make adding ogl support easier 20160119 01:55:49< iceiceice> you could make a fancy one that like, heuristically detects the ridges of the button and lights accordingly 20160119 01:57:32-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160119 01:59:16< shadowm> GUI2 wasn't made with animations in mind AFAIK. 20160119 02:00:21< shadowm> Widgets have multiple states and switch between them in response to events (e.g. mouse over) but there's no notion of animation frames or timelines. 20160119 02:01:43< shadowm> And having seen how events are implemented in GUI2, I fear for the sanity of whoever decides to take on an optional task like that. 20160119 02:03:14-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20160119 02:07:37< gfgtdf> vultraz: yes afaik 20160119 02:08:16< gfgtdf> shadowm: y i didnt meanr real animation just the mosouseover state 20160119 02:08:19< shadowm> It's funny that when I was first learning C++, when I discovered templates I was like "oh man this is sooo cool". 20160119 02:09:23< shadowm> Now I don't think there's a language aspect I despise more. 20160119 02:10:44< shadowm> gfgtdf: From a cursory glance at the WML, it seems GUI2 made the same mistake as GUI1 and conflated "focus" with "mouse over" and "selected status". 20160119 02:11:52< shadowm> Or maybe not, actually. 20160119 02:12:01< gfgtdf> shadowm: hmm it looks to me here like focus is just an alias for mouseover. 20160119 02:12:16< shadowm> So toggle_panel has two state sets, each with their enable/disabled/focused states. 20160119 02:12:35< shadowm> The first state set is not described, but the second claims to be the selected state set. 20160119 02:12:56< shadowm> So presumably you can modify the focused states of both sets to implement a mouse over effect without having to touch the C++. 20160119 02:13:18< shadowm> Right now each focused state is identical to the enabled state of its containing set. 20160119 02:14:36< vultraz> shadowm: why do you hate templates? they're kinda useful 20160119 02:15:20< shadowm> They are. 20160119 02:15:53< gfgtdf> shadowm: Yes that what i fpund out too, but actually it wont work becasue it doesnt recognize the mouseover correctly of there is text or an image on it 20160119 02:15:59< gfgtdf> found* 20160119 02:16:11< gfgtdf> if* 20160119 02:16:23< shadowm> vultraz: Until people decide to hurl code at you that uses template instantiations of template instantions of instantiations of template instantiations of template instantiations of template instantiations of template instantiations [...] 20160119 02:17:02< shadowm> Your backtraces become unintelligible and the code impossibly dense to understand or change. 20160119 02:17:39< vultraz> you're talking about GUI2, right 20160119 02:17:45< gfgtdf> shadowm: how do templates hurt backtraces? 20160119 02:18:11< shadowm> You probably have never got a > 300 characters long type name then. 20160119 02:18:20< shadowm> Full type name, that is. 20160119 02:18:23< vultraz> what 20160119 02:18:25< vultraz> how 20160119 02:18:38< shadowm> That's the kind of stuff you'll find if you look too much into GUI2's internals. 20160119 02:19:23< vultraz> tell me 20160119 02:19:29< shadowm> I just told you. 20160119 02:19:52< vultraz> is gui2 implemented the way it is due to a failure in c++ that makes template use the method that must be used 20160119 02:19:55< shadowm> It's reaaally fortunate that I found out I was barking at the wrong tree. 20160119 02:19:58< vultraz> or is it just a shitty design decision 20160119 02:20:47< shadowm> No, it's because C++ essentially allows you to use templates like you'd use macros and some programmers like taking that to its logical conclusion. 20160119 02:21:21< shadowm> But I'm talking at the code level here. Templates certainly aren't to blame for the fact that GUI2 doesn't make coffee. 20160119 02:21:25< iceiceice> shadowm, look i realize you would prefer if wesnoth had been written in C but you are probably alone in that 20160119 02:21:39< shadowm> I don't like C either. :p 20160119 02:21:42< iceiceice> templates are pretty crucial to using C++ effectively 20160119 02:21:54< iceiceice> after destructors they are probably the most useful thing in C++ 20160119 02:21:56< shadowm> Although I do see the value in not sugar-coating everything like in the C++ way. 20160119 02:22:24< shadowm> Unfortunately it does result in exceedingly verbose code and fault-prone programming. 20160119 02:22:35< iceiceice> its a lot better in C++11 20160119 02:22:43< iceiceice> because you can use variadic templates and that makes the type names shorter 20160119 02:23:08< iceiceice> the only time i've ever had truly unintelligible backtraces is through the use of boost variant 20160119 02:23:19< shadowm> Well, good luck getting someone to retrofit that kind of stuff into some of our shadier template-using parts. 20160119 02:23:20< iceiceice> but in c++11 you can make a better variant anyways 20160119 02:23:39< iceiceice> i dont think i had any unintelligible backtraces while working on wesnoth code 20160119 02:23:50< iceiceice> i mean part of it is also just, using intelligent typedefs for things 20160119 02:23:52< vultraz> the thing I personally dislike about GUI2 is the fact that it requires an advanced degree in The Mind of Mordante to use 20160119 02:24:05< shadowm> Did you ever have to try to debug an event signaling sequence in GUI2? 20160119 02:24:05< iceiceice> oftentimes clang / more modern versions of gcc will shorten the names for you when possible, at least in compiler error messages 20160119 02:24:20< shadowm> i.e. figure out exactly where an event is going (or not going)? 20160119 02:24:32< iceiceice> look its pretty clear that gui2 is not really a good base for future development 20160119 02:24:39< iceiceice> at least that's pretty clear in my mind 20160119 02:24:43< vultraz> iceiceice: this has been known 20160119 02:24:54< iceiceice> i dont think its because of overuse of templates 20160119 02:24:55< vultraz> but we cannot seem to decide on its successor :P 20160119 02:25:09< shadowm> We can't decide on a successor if there's no successor, vultraz. 20160119 02:25:17< shadowm> I mean, no candidates. 20160119 02:25:53-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 20160119 02:25:59< celticminstrel> People have brought up various existing frameworks as candidates, but... 20160119 02:26:02< shadowm> Write a candidate and then I'll probably embrace it in no time, like I did with GUI2 back when GUI1 was the de facto standard. 20160119 02:26:12< celticminstrel> It's not like you can just drop one of those in. 20160119 02:26:12< vultraz> *Write*? 20160119 02:26:14-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 02:26:34< shadowm> Write can be synonymous with "wire an existing framework into Wesnoth to be used in parallel with GUI2". 20160119 02:26:41< celticminstrel> Even if you use an existing framework you'll at least want to have some way to load WML dialogs into that engine. 20160119 02:27:10< iceiceice> imo the thing is that the graphics framework is also somewhat in flux 20160119 02:27:12< shadowm> It doesn't have to be immediate, GUI2 can stay on life support for that end. 20160119 02:27:18< iceiceice> an dthat is lower level than gui 20160119 02:27:29< iceiceice> if you guys want to go to ogl then you could try to do that first, and then use an ogl based gui 20160119 02:27:50< vultraz> shadowm: well first I want to kill off GUI1. So we don't have GUI0, GUI1, GUI2, and GUIX all around at once 20160119 02:27:51< iceiceice> you could instead try to do like 20160119 02:27:53< iceiceice> some SDL software based gui 20160119 02:28:10< iceiceice> but also idk if there is a better thing htan gui2 in that department 20160119 02:28:13< shadowm> vultraz: GUI1's code footprint is laughably small compared to GUI2. 20160119 02:28:42< shadowm> The only obvious issue with GUI1 being _there_ is that it requires SDL_ttf, which should be killed with fire and its maintainers sent to jail. 20160119 02:28:48< vultraz> Irrelevant 20160119 02:28:50< iceiceice> +1 20160119 02:29:10< vultraz> Look how much trouble GUI1 is giving Aginor 20160119 02:29:15< iceiceice> fwiw i'm not really a fan of the whole pango text stack either 20160119 02:29:28< iceiceice> i mean, i like the pango markup and i like the results, when it works... 20160119 02:29:36< iceiceice> but it seems like the fontconfig thing is kind of a disaster 20160119 02:29:51< shadowm> fontconfig happens to be a de facto standard in X11 land, though. 20160119 02:29:54< iceiceice> until recently building pango seems to have been really hard for OS X? 20160119 02:30:02< iceiceice> *for the OS X maintainers? 20160119 02:30:20< vultraz> Adding another GUI system will only complicate the mix 20160119 02:30:23< vultraz> we need ONE gui system 20160119 02:30:25< vultraz> not four 20160119 02:30:39< iceiceice> vultraz, its capitalism :) 20160119 02:30:44< shadowm> Like, in theory, all applications using fontconfig can enjoy consistent font settings handling. (In theory, I can attest to the actual reality of the situation being far more disappointing.) 20160119 02:30:49< iceiceice> we'll just have lots of competing gui systems 20160119 02:30:56< iceiceice> and then they will fight to the death somehow 20160119 02:31:28< iceiceice> shadowm, i think in anura they only use freetype for font 20160119 02:31:36< shadowm> But yes, the Pango/Cairo pipeline is very awkward because of its dependencies and inflexibility. 20160119 02:31:36< iceiceice> also in some other games / guides for making font in ogl 20160119 02:31:54< iceiceice> iiuc they don't use pango for text in web browsers anymore either 20160119 02:32:15< shadowm> SDL_ttf is a FreeType wrapper. 20160119 02:32:27< iceiceice> i mean, freetype is not that complicated 20160119 02:32:40< iceiceice> freetype itself is a way higher quality library than SDL_ttf 20160119 02:32:41< shadowm> Needless to say, that means that if you want rich formatting you will need to do some of the work yourself. 20160119 02:33:09< iceiceice> i thought we converged on a solution there 20160119 02:33:10< iceiceice> of like 20160119 02:33:18< iceiceice> just having multiple .ttf files for the various rich text formatting 20160119 02:33:26< iceiceice> meaning like bold, italic etc. 20160119 02:33:29< iceiceice> maybe you mean other stuff 20160119 02:33:44< celticminstrel> Having multiple .ttf files is pretty much the usual way to do it. 20160119 02:33:59< celticminstrel> But if you don't have multiple .ttf files there are ways to generate the bold and italic versions. 20160119 02:34:14< shadowm> Mixing colors and attributes in the same fragment, RTL rendering, etc. 20160119 02:34:16< iceiceice> celticminstrel, yeah, sdl_ttf has the procedural tricks for that built in and that's what we used for a lnog time, 20160119 02:34:21< iceiceice> but the results aren't so great 20160119 02:34:31< vultraz> This is ridiculous 20160119 02:34:38< vultraz> This is the *same conversation* we always have 20160119 02:34:55< vultraz> Where we decry an existing standard we use and then don't move to replace it 20160119 02:35:22< vultraz> Look at the state of GUI1->GUI2. Until I got to converting more dialogs, barely any had been converted since 2011 20160119 02:35:24< celticminstrel> As far as I know FreeType doesn't have any sort of attributed string handling, though, which is really the way to handle rich text. 20160119 02:35:33< iceiceice> yeah i see what you mean 20160119 02:35:46< shadowm> vultraz: Okay, give me a CS degree and maybe I can fix GUI2 for you. 20160119 02:36:04< celticminstrel> I guess Pango handles that, maybe? 20160119 02:36:10< iceiceice> yeah thats what we use it for 20160119 02:36:18< celticminstrel> But Pango syntax is very bleh. 20160119 02:36:19< iceiceice> pango is basically like a layout enigine iiuc 20160119 02:36:30< iceiceice> it reads the markup, and lays out the characters, 20160119 02:36:34< iceiceice> and also you can query it like, 20160119 02:36:40< iceiceice> "what character is this pixel over in this text box" 20160119 02:36:42< shadowm> iceiceice: Also, I really doubt Pango was ever used in a web browser for anything other than UI. 20160119 02:37:02< iceiceice> shadowm, i thought firefox used pango for ui for a long time 20160119 02:37:03< shadowm> You can do all kinds of crazy crap with CSS that Pango has never been intended to support, to my knowledge. 20160119 02:37:36< vultraz> shadowm: it's not even about fixing GUI2. It's about converting dialogs. 20160119 02:37:51< vultraz> shadowm: look at what I did with the attack dialog and tell me that needed to wait 5 years 20160119 02:37:56< iceiceice> yeah i didn't mean for like, rendering html pages 20160119 02:38:44< shadowm> Then a web browser's UI isn't much different than any other UI wrt text rendering. 20160119 02:39:29< vultraz> I'm spending valuable time I could be doing, oh, I dunno, coursework because I'm trying to get something moving here 20160119 02:39:51< vultraz> But it's so frustrating when we come back to the same conversation - which is partly my own fault, I admit 20160119 02:39:57< shadowm> I'm not sure what you are trying to achieve with this. 20160119 02:39:57< vultraz> Because I brought it up 20160119 02:40:06< vultraz> But this is getting us nowhere 20160119 02:40:47< iceiceice> vultraz, so here's the thing, 20160119 02:41:05< iceiceice> it might make more sense to focus on getting a new gui candidate than porting old guis 20160119 02:41:17< iceiceice> because if your belief is that gui2 will be tossed 20160119 02:41:23< iceiceice> i mean you are writing code that you know is going to go away 20160119 02:41:31< iceiceice> also like, 20160119 02:41:43< iceiceice> if you are fixing bugs / the dialogs are working better now , then that is progress 20160119 02:41:47< iceiceice> but like, if its just pure porting, 20160119 02:41:54< iceiceice> you are taking what is fairly stable code and rewriting it 20160119 02:42:05< iceiceice> without a clear goal i guess 20160119 02:42:21< vultraz> The porting is useful because it allows us to slim down our codebase and make it easier for Aginor 20160119 02:42:22< iceiceice> idk i mean i guess you think it makes it easier to introduce a new gui if there is only one current gui 20160119 02:42:31< vultraz> Unfortunately, there are things that are harder in GUI2 20160119 02:42:35< vultraz> like the whole slider step thing 20160119 02:42:41< shadowm> vultraz: That need came into existence around Q3 2015. 20160119 02:42:43< iceiceice> i think that benefit might be overstated 20160119 02:43:03< shadowm> It didn't "wait 5 years", it just wasn't considered. 20160119 02:43:26< vultraz> shadowm: the gui2 transition was started *10* years ago 20160119 02:43:37< vultraz> it's not a matter of whether it needs to happen now or not 20160119 02:43:40< shadowm> In fact, I think most of the issues with GUI1 that bother Aginor were discussed during my absence so I don't know about them. 20160119 02:43:42< vultraz> it's a matter of what should have happened 20160119 02:43:55< shadowm> The only one _I_ am aware of is keyboard event handling. 20160119 02:44:11< iceiceice> look all i will say is, i think it would be way better for the project if it relied on an externally maintained gui lib 20160119 02:44:21< shadowm> vultraz: Okay so here's the thing. At the time I was one of the people pushing for porting as much as possible to GUI2. 20160119 02:44:24< iceiceice> there are tons of gui projects out there, made by pretty good programmers 20160119 02:44:33< iceiceice> there are gui projects out there that alone have more developers than we do 20160119 02:44:44< shadowm> One of the fruits of my labor was the generic list dialog, tsimple_item_selector or such. 20160119 02:45:02< iceiceice> if a gui project is like a library and people can see that it gets reused, 20160119 02:45:08< iceiceice> they are way more likely to contribute to it 20160119 02:45:09< shadowm> I got reprimanded by mordante for committing it. 20160119 02:45:17< vultraz> shadowm: .... WHY 20160119 02:45:26< vultraz> that is a great addition 20160119 02:45:31< shadowm> Because "GUI2 is not intended to be used in production" (paraphrasing). 20160119 02:45:39 * vultraz flips table 20160119 02:45:49< shadowm> This despite the fact that at the time he himself had converted almost every prompt dialog to use tmessage. 20160119 02:46:10< vultraz> Mordante is the worst type of developer 20160119 02:46:13< shadowm> Much later, I started work on the GUI2 filechooser dialog. 20160119 02:46:49< shadowm> Then I found that bug where removing listbox items results in an assertion failure. I reported this to mordante. 20160119 02:47:01< shadowm> AFAIK the bug was only finally fixed last year by gfgtdf. 20160119 02:47:05< vultraz> Yes 20160119 02:47:11< vultraz> HUGE thanks to him for that 20160119 02:47:34< shadowm> In the meantime, I couldn't really get mordante to give it priority. 20160119 02:48:04< shadowm> So is it my fault for waiting 5 years? 20160119 02:48:10< vultraz> No, it's his fault 20160119 02:48:23< vultraz> But it's also *our* fault for waiting on him 20160119 02:48:48< shadowm> I can't decipher half of GUI2's internals, I couldn't do anything other than wait on him. 20160119 02:49:08< shadowm> Same goes for AI or low level rendering issues. There isn't anything I can do other than wait on other people. 20160119 02:50:05< vultraz> Another think that sucks about GUI2 are how inflexible the internals are 20160119 02:50:08< vultraz> Look at this: https://github.com/Vultraz/wesnoth/commit/8450afa57ebeba01dac2ae7ad9201f54b73a1492 20160119 02:50:16< shadowm> I think of all the people who were primarily active in the 2007-2013 period, I must be the one who spent time dabbling with the most areas of code besides mordante. 20160119 02:50:25< vultraz> iceiceice has to write it just so I could pass an argument to a bound callback function for a listbox 20160119 02:50:32< shadowm> If I couldn't figure it all out by myself, I doubt anyone else ever had the time or energy for it either. 20160119 02:50:33< vultraz> had* 20160119 02:50:51< shadowm> So pointing fingers at us doesn't really do anything. 20160119 02:51:21< vultraz> I'm not pointing fingers 20160119 02:51:31< vultraz> I'm saying we have a chance now to fix stuff 20160119 02:51:34< shadowm> Likewise, pointing fingers at mordante doesn't fix anything. 20160119 02:51:48< vultraz> People like iceiceice, gfgtdf, and Aginor have given us momentum 20160119 02:51:51< shadowm> We all are humans and we all make mistakes. mordante's was biting far more than he could chew. 20160119 02:52:31< vultraz> That might have been his mistake 20160119 02:52:44< shadowm> GUI2 was an overambititous project with some neat ideas, but in the end it failed because he couldn't produce code and solutions as fast as it'd have been optimal for the project. 20160119 02:53:05< vultraz> His continued failing was acting like GUI2 was a scared baby to which it was blasphemy to even touch 20160119 02:53:09< shadowm> OTOH nobody really made an effort to make an alternative either. 20160119 02:53:51< shadowm> But if you have people working on Wesnoth only two hours a week, isn't it too much to ask from them to invest extra time to learn skills and code that's beyond their current focus? 20160119 02:54:01< vultraz> Apparently The Angry Guy will meet him at fosdem this year 20160119 02:55:27-!- gfgtdf [~chatzilla@x50abb190.dyn.telefonica.de] has quit [Quit: ChatZilla 0.9.92 [Firefox 43.0.4/20160105164030]] 20160119 02:56:47< vultraz> ANYWAY 20160119 02:56:49< vultraz> yes, you're right 20160119 02:56:50< iceiceice> The Angry Guy = fabi? 20160119 02:56:54< vultraz> yes 20160119 02:56:56< vultraz> why did you speak his name 20160119 02:57:09< shadowm> I don't even know who that is, but I'd expect the Community Manager to be able to spell people's names. 20160119 02:57:13< iceiceice> just checking :p 20160119 02:57:53< vultraz> I don't want to summon him 20160119 02:58:02< vultraz> speaking e s r's name brought him back from the dead last year 20160119 02:58:29< shadowm> Yeah, don't summon _that_ guy. 20160119 02:58:41< celticminstrel> I don't think you could call him dead. He's probably the type of guy who lurks everywhere and pops up only when mentioned. 20160119 02:59:04< shadowm> Otherwise he'll come back to evangelize us on the divine boons of using Python instead of C++. 20160119 02:59:27< shadowm> (Remember when Wesnoth was almost ported to Python?) 20160119 02:59:29< iceiceice> til we should be writing it all in rust now 20160119 02:59:37< celticminstrel> Is that actually a thing that happened? 20160119 02:59:56< shadowm> Sort of, maybe. There were talks at least. Very unilateral and very doomed to failure. 20160119 03:00:08< iceiceice> fabi may or may not be porting the whole thing to lua 20160119 03:00:18< celticminstrel> I noticed that too. 20160119 03:00:44< shadowm> Lua has to run on something, though. 20160119 03:00:57< iceiceice> nah it can just run on the lua run time 20160119 03:01:04< iceiceice> and link to c libs and use them 20160119 03:01:17< shadowm> Then it's running on a C-based platform. 20160119 03:01:24< iceiceice> yeah sure 20160119 03:01:32< iceiceice> you don't have to maintain that platform though 20160119 03:01:41< shadowm> I mean, the game logic itself in Lua? I'd be all over that. 20160119 03:02:05< shadowm> The UI logic in Lua too? Sure, but I don't think you can do cross-platform graphics on Lua alone. 20160119 03:02:29< iceiceice> yeah i think that would be hard 20160119 03:03:00< iceiceice> i mean there are engines like that but at some point... idk 20160119 03:03:12< vultraz> Could we maybe sit down in the coming weeks and try to come up with a concrete plan going forward? 20160119 03:03:14< shadowm> For example X11 relies a lot on networking and IPC mechanisms AFAIK. 20160119 03:03:14< iceiceice> i think wesnoth is a little too complicated and the ai is too involved 20160119 03:03:31< vultraz> The SDL2 transition is over the hump, and it opens opportunity for a lot of other stuff 20160119 03:03:36< iceiceice> to run well in pure lua or something like that 20160119 03:04:57< shadowm> From what little I know, it seems like OpenGL could probably work as Lua-to-C bindings well since it's mostly function calls directed at a blackbox. 20160119 03:05:38< shadowm> vultraz: Yeah, remember last time I tried that? 20160119 03:05:54< vultraz> What, the release schedule? 20160119 03:06:04< shadowm> https://mail.gna.org/public/wesnoth-dev/2015-12/index.html 20160119 03:06:14< shadowm> You like other people seem convinced that it was only about the release schedule. 20160119 03:06:47-!- mjs-de [~mjs-de@x4db5ae3e.dyn.telefonica.de] has quit [Remote host closed the connection] 20160119 03:07:02< iceiceice> vultraz, fabi also would have like a "feature plan roadmap" thread 20160119 03:07:08< iceiceice> some months ago 20160119 03:07:16< iceiceice> i think we both wrote stuff in there while we were still engaged 20160119 03:07:20< iceiceice> but we were the only ones 20160119 03:07:34< iceiceice> it was in the dev forum iirc 20160119 03:07:41< shadowm> Yeah, that doesn't really work I'm afraid. There needs to be actual discussion. 20160119 03:07:54< vultraz> Oh, right, GSoC and the Devroadmap 20160119 03:08:09< shadowm> This was the thread: https://forums.wesnoth.org/viewtopic.php?f=2&t=41389 20160119 03:09:01< shadowm> Like "do we need this?" "is it worth focusing on this for the next stable series?" "perhaps it'd make more sense to move it to a future series?" 20160119 03:09:26< iceiceice> i mean i think it works okay in some situations 20160119 03:09:34< iceiceice> like if you aren't planning to rip out the gui / graphics pipelines 20160119 03:09:44< iceiceice> and people mostly can have independent projects that get merged together 20160119 03:09:57< shadowm> And "are the people working on this really up to the task or will they do a GUI2 and quit years later with an unfinished projecct". 20160119 03:10:00< iceiceice> but if you want to talk about like gutting parts of the project then yeah a discussion is better 20160119 03:10:30< shadowm> We're at a point where the foundations are in our way and need to be refurbished, yes. 20160119 03:10:57< vultraz> I think we should actually talk 20160119 03:10:58< shadowm> And I don't mean that only because of SDL 2. 20160119 03:11:06< vultraz> Like a skype/hangouts/facetime call 20160119 03:11:13< vultraz> A bunch of us 20160119 03:11:15< shadowm> And not because of OpenGL either. 20160119 03:11:20< vultraz> And discuss this stuff 20160119 03:11:25< iceiceice> or, we could like, 20160119 03:11:29< iceiceice> have an irc channel where we all meet 20160119 03:11:32< iceiceice> and discuss in real time :) 20160119 03:11:42< shadowm> Oh yeah wouldn't that be great. 20160119 03:11:48< vultraz> iceiceice: isn't it even better to actually talk :P 20160119 03:11:50< iceiceice> awesome its decided 20160119 03:12:25< vultraz> Chatting here isn't as productive as actually chatting 20160119 03:12:37< celticminstrel> I don't see why not. 20160119 03:12:47< iceiceice> vultraz, i know someone who got rid of his phone, and tells me that he only talks "via text" now 20160119 03:12:55< iceiceice> his entire house has an irc channel on which everyone talks 20160119 03:13:02< shadowm> vultraz: We... what? 20160119 03:13:06< vultraz> iceiceice: what?? 20160119 03:13:16< iceiceice> he lives in SF 20160119 03:13:26 * shadowm bbiab 20160119 03:13:34< vultraz> Don't poison the city for me D: 20160119 03:13:43 * celticminstrel is confused now. 20160119 03:14:20< iceiceice> i was like "man can't i just call you" 20160119 03:14:30< iceiceice> and he like, no, please just come to the channel 20160119 03:14:46< vultraz> iceiceice: I'm sorry, that is the *stupidest* thing I've ever heard 20160119 03:14:52< iceiceice> haha 20160119 03:14:55< celticminstrel> What's stupid about that? 20160119 03:14:56< iceiceice> its very progressive... or something 20160119 03:15:13< vultraz> celticminstrel: it's downright antisocial 20160119 03:15:18< vultraz> not progressive, it's regressive 20160119 03:15:31< celticminstrel> Doesn't seem antisocial to me. 20160119 03:16:02< vultraz> It's antisocial if you phase out voice communication in favor of text on a screen 20160119 03:16:13< iceiceice> text on a screen is pretty efficient 20160119 03:16:14< vultraz> It's NOT if you complement them 20160119 03:16:28< iceiceice> you can be paying attention to lots fo conversations at once 20160119 03:16:33< iceiceice> and its easier to look back at the history 20160119 03:16:35< iceiceice> and share links and such 20160119 03:16:38< vultraz> Though I suppose I can't criticize since I don't really voice chat my friends on skype :| 20160119 03:16:50< vultraz> (not my choice, that's just the dynamic) 20160119 03:17:02< celticminstrel> I don't either. 20160119 03:17:09< vultraz> I wish I did, though 20160119 03:17:13< vultraz> BUT 20160119 03:17:15< vultraz> anyway 20160119 03:17:33< vultraz> I think a voice conference would be beneficial 20160119 03:17:39< iceiceice> i think what you should do is like 20160119 03:17:43< iceiceice> make a call for proposals 20160119 03:17:47< iceiceice> regarding the gui situation 20160119 03:18:30< iceiceice> just like solicit either written proposals or even just PRs showing the beginnings of something 20160119 03:18:32< iceiceice> and see what you get 20160119 03:18:39< vultraz> From whom? 20160119 03:18:44< vultraz> NOT the community 20160119 03:18:53< iceiceice> from whoever you are imagining is going to do all this work :p 20160119 03:19:05< vultraz> I don't know 20160119 03:19:14< vultraz> It's not like we have Magic Programming Gods to go to 20160119 03:19:20< vultraz> it's something I'd like to discuss 20160119 03:19:22< shadowm> I couldn't participate in a voice conference, I'm afraid. 20160119 03:19:53< vultraz> oh? 20160119 03:22:01< vultraz> Could anyone? 20160119 03:25:29< iceiceice> vultraz, i mean what would be the point of the voice conference? 20160119 03:25:45< vultraz> because it forces people to discuss things 20160119 03:26:05< vultraz> you can't just back out 20160119 03:26:40< shadowm> That's not necessarily a good thing. 20160119 03:26:45< iceiceice> i think you need people to just start programming their way out of things 20160119 03:26:48< iceiceice> if the problem is This is the *same conversation* we always have 20160119 03:27:01< iceiceice> i mean, odds are high that a voice conference would lead to the same result 20160119 03:27:45< shadowm> Same actors, same story, same movie, except now in 3D! 20160119 03:27:58< iceiceice> --> profit 20160119 03:28:40< vultraz> We could bring other people who know what they're doing in on the call 20160119 03:28:58< vultraz> The point is just so if an idea is out there, people actually have to discuss it 20160119 03:30:13< shadowm> Yeah, you don't need voice or a different channel for that. 20160119 03:30:14< iceiceice> vultraz, another thing is, 20160119 03:30:31< shadowm> Only ~~~organization~~~. 20160119 03:30:34< iceiceice> it might be better to give up on some of the more ambitious goals of like 20160119 03:30:40< iceiceice> rewriting wesnoth so that it is like a "real" engine 20160119 03:30:57< iceiceice> and instead just think up small projects and do them 20160119 03:31:21< iceiceice> i mean wesnoth is what it is 20160119 03:31:34< iceiceice> if you want to rewrite the engine from scratch i mean thats a reasonable option 20160119 03:31:41< iceiceice> but at some point i mean like 20160119 03:32:13< iceiceice> it doesn't really make sense to rip out the guts of the project 20160119 03:32:18< iceiceice> the project already works 20160119 03:32:36< iceiceice> which part of the project is the like, really good core that you are trying to save? 20160119 03:32:41< iceiceice> is it wml / 20160119 03:32:42< iceiceice> ? 20160119 03:32:51< iceiceice> is it the terrain graphics / graphics pipeline? 20160119 03:33:10< iceiceice> if its like, you have a dying patient, 20160119 03:33:21< iceiceice> and your plan is to basically replace the entire body of the patient except like a fingernail, 20160119 03:33:30< iceiceice> it doesnt make sense to like 20160119 03:33:36< iceiceice> first rip out the heart and do a heart transplant 20160119 03:33:44< iceiceice> then cut off the legs and try to attach new ones 20160119 03:33:47< iceiceice> and replace limbs like one at a time 20160119 03:34:34< shadowm> Most of the time what we do instead is to take the existing leg and add more flesh and bones to it and expect it to work. 20160119 03:34:52< iceiceice> imo the most valuable thing is like, the art and the campaigns 20160119 03:35:01< iceiceice> and the code itself is mostly like, not particularly good 20160119 03:35:09< iceiceice> except htat it is fairly stable 20160119 03:35:21< iceiceice> and lots of people are very familiar with the intriciacies of how it works 20160119 03:35:26< iceiceice> and the docs are pretty good for how to use it 20160119 03:36:33< iceiceice> i talked with fabi a lot some months ago while he was still around, 20160119 03:36:59-!- ancestral [~ancestral@63.236.20.2] has joined #wesnoth-dev 20160119 03:37:10< iceiceice> i mean my opinion is that what makes sense is like try to port the part that reads wml and executes scenarios 20160119 03:37:18< iceiceice> into either like a C lib or a lua module or something 20160119 03:37:23< iceiceice> just make some externl thing 20160119 03:37:35< iceiceice> and then people can try to attach graphics / input etc. to it 20160119 03:38:10< iceiceice> i think fabi was initially skeptical of this, and then he started to play around with lua, 20160119 03:38:18< iceiceice> and became like an evangelical moonscriptist 20160119 03:39:07< iceiceice> vultraz, i think its just not very likely that you are going to get like some large coordinated effort to rip out the guts of the program and refurbish it all 20160119 03:39:23< iceiceice> its more likely that like, people like Aginor who are motivated will hack away on it and eventually someone will succeed 20160119 03:39:30< iceiceice> but idk how you can speed that up 20160119 03:39:38< iceiceice> i mean its not trivial, alot of people tried to port wesnoth to OGL 20160119 03:39:43< iceiceice> as i understand Dave tried, 20160119 03:39:47< vultraz> Well we could start with a coordinated discussion 20160119 03:39:48< iceiceice> also AI0867 maybe? 20160119 03:39:53< vultraz> That's why I proposed a call 20160119 03:40:46< vultraz> Because talking here is basically just chatting 20160119 03:41:01< celticminstrel> I honestly don't see how that would be any different. 20160119 03:41:18< celticminstrel> Either way is chatting, just a different medium. 20160119 03:41:27-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 03:41:31< iceiceice> i mean i tend to agree sometimes when there's a social situation where people can't leave or are pressured not to leave it changes the quality of it 20160119 03:41:36< shadowm> iceiceice: alink did, not AI0867. 20160119 03:42:08< iceiceice> vultraz, probably FOSDEM is the best chance to actually have such a meeting 20160119 03:42:13< vultraz> iceiceice: there's a reason people meet in conference when they need to get things done 20160119 03:42:14< shadowm> AFAIK everyone tried a trivial port first and drained out their batteries before realizing that more in-depth architectural changes are needed to make OpenGL work with Wesnoth. 20160119 03:42:33< vultraz> such as last December's Climate conference in Paris 20160119 03:42:43< shadowm> IOW Wesnoth is designed for software rendering. 20160119 03:43:04< iceiceice> wesnoth was just not designed at all to become what we want it to grow up to be 20160119 03:43:14< iceiceice> it was just kind of thrown together in a few weekends :) 20160119 03:43:18< vultraz> iceiceice: that is true. but the people at fosdem are the people I do not think can offer valuable contributions to the future of the main project 20160119 03:43:32< shadowm> Okay, yes, frankly Wesnoth was designed to be Dave's toy and then people added crap on top of it until it became what it is today. 20160119 03:43:40< shadowm> The world's tallest jenga tower. 20160119 03:43:49< vultraz> (ie, mordante, fabi (whose project has promise but I don't think can become a replacement)) 20160119 03:44:14< shadowm> vultraz: That's rather harsh. 20160119 03:44:15< vultraz> Plus key figures like shadowm and Aginor cannot go 20160119 03:44:26< shadowm> The correct way to put it is "they are retired developers". 20160119 03:45:03< shadowm> If you stop looking at Wesnoth for six months, in my experience, everything stops making sense. 20160119 03:45:17< vultraz> Yes, they are retired, but I'm afraid mordante would come up with some trivial reason why not to do x y or z 20160119 03:45:28< shadowm> It helps when people move code around while pursuing higher goals like "better engine" and "more audience". ;) 20160119 03:45:47< vultraz> What do you think I've been trying to help do the past month :| 20160119 03:45:48< shadowm> So yeah, that's the only reason that matters that is why retired developers can't contribute. 20160119 03:46:00-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20160119 03:46:01< vultraz> I undertook a big refactor of our window handling pipeline after the SDL2 merge 20160119 03:46:18< shadowm> Yes, and I'm explaining why this makes retired developers useless from an objective standpoint. 20160119 03:46:25< vultraz> Ah 20160119 03:46:29< vultraz> in that case, I agree 20160119 03:46:31< shadowm> (Unless they decide to un-retire or can offer useful insight.) 20160119 03:47:41< vultraz> If I needed to pick a core team, it would consist of you, me, Aginor, gfgtdf, iceiceice, and celticminstrel 20160119 03:48:25< shadowm> The thing is that you of all people should know I too am pursuing more abstract goals that extend beyond Wesnoth at this point. 20160119 03:48:49< shadowm> That coupled with some complications means I can't really promise much (useful) output. 20160119 03:48:55< iceiceice> what are your more abstract goals nowadays? 20160119 03:49:15< vultraz> I should have bigger goals myself but so far wesnoth is the only project I've really contributed to 20160119 03:49:18< shadowm> I made two Wesnoth campaigns, I now want to make my own game. 20160119 03:49:26< vultraz> Since it's familiar and I'm not confident I could do better :| 20160119 03:49:27< iceiceice> what kind of game 20160119 03:49:40< shadowm> Although to be fair that was my goal when I started working on Wesnoth as well. 20160119 03:49:49< shadowm> "I'm going to help people and learn to code." 20160119 03:49:54< shadowm> Oh boy did that work out well. 20160119 03:49:55-!- ancestral [~ancestral@63.236.20.2] has quit [Quit: i go nstuf kthxbai] 20160119 03:50:20< vultraz> I looked at wesnoth as an opportunity to learn code too 20160119 03:50:25< vultraz> I'm not sure if I should be thankful 20160119 03:50:27< vultraz> or not 20160119 03:50:32< vultraz> it's sucked away so much of my time 20160119 03:50:41-!- un214 [~un214@2602:306:cccf:d299:56a0:50ff:fe57:101d] has joined #wesnoth-dev 20160119 03:50:43< vultraz> I could have dedicated to more important matters 20160119 03:50:50< shadowm> Well, at least you didn't waste 10 years of your life like me. 20160119 03:50:56< vultraz> and honestly I hate myself for it sometimes 20160119 03:51:21< vultraz> but if I pull out, who will actually make stuff happen around here 20160119 03:51:28< celticminstrel> Aginor, probably. 20160119 03:51:35< shadowm> I mean, they aren't wasted, really. I did learn C++. 20160119 03:51:42< celticminstrel> And gfgtdf. 20160119 03:51:50< celticminstrel> Maybe a few others. 20160119 03:51:55< shadowm> Will I get to do something with that knowledge in the future? I don't know. 20160119 03:52:14< iceiceice> wesnoth is pretty good in that, if you are beginning or rusty in C++, it is really not that easy to get random strangers to download your code / compile it on their platform and tell you if it crashes :D 20160119 03:52:15< celticminstrel> I personally intend to use C++ for all (most?) of my games. 20160119 03:52:24< shadowm> Oh and I also learned to pixel art, and improved my English considerably. 20160119 03:52:39< vultraz> I learned how to work as part of a project 20160119 03:52:43< celticminstrel> So if you want to make a game, C++ isn't useless. 20160119 03:52:48< iceiceice> also its pretty good in that, there is just like an endless supply of low-hanging fruit of bugs and features to make 20160119 03:53:00< iceiceice> so if you are looking for like, small projects that you can do in like a day 20160119 03:53:07< iceiceice> idk its pretty easy to invent stuff like that 20160119 03:53:43< vultraz> But I'm nowhere near good enough to work at a major game studio 20160119 03:53:46< iceiceice> celticminstrel, i'm not sure if i would use C++ for another game if i were starting today 20160119 03:53:57< iceiceice> if i were starting today i would be strongly tempted to use rust 20160119 03:53:59< vultraz> Or anything similar 20160119 03:54:31< iceiceice> c++ is pretty good and safe though 20160119 03:54:43< celticminstrel> And I feel like I know it pretty well, too. 20160119 03:55:44< vultraz> lot better than I at least :P 20160119 03:56:04< vultraz> but I've gotten better the past year, I think 20160119 03:57:25< celticminstrel> Lua/JS do have some advantages for game logic though, so maybe I'll combine that with C++. 20160119 04:01:41< iceiceice> vultraz, yeah i mean i would say you've gotten a lot better if you are like, more comfortable with templates / boost function and such 20160119 04:02:30< iceiceice> C++ is a pretty hard language to learn well though 20160119 04:02:37< iceiceice> its not really a feasible language to learn just by hacking on things 20160119 04:02:49< un214> yeah, need a book 20160119 04:02:52< iceiceice> i mean there are a lot of people who learn it in highschool and use it without ever really studying much 20160119 04:03:02< iceiceice> but yeah you need to get a book at some point 20160119 04:03:15< iceiceice> alot of it doesn't really make sense if you dont have an okay understanding of C also, IMO 20160119 04:03:40< un214> meh I got a good understanding of C++ about as fast 20160119 04:04:04< iceiceice> i thought i knew C++ pretty well 20160119 04:04:12< iceiceice> then at some point i started actually reading the standard :O 20160119 04:05:34< vultraz> yeah, im getting a little better with templates 20160119 04:05:38< iceiceice> un214, i mean there's also like a lot of people who like, 20160119 04:05:54< iceiceice> program C++ code, but can't tell you for sure like, will this object's dtor get called if ane xception is thrown here? in all cases 20160119 04:06:01< vultraz> i still don't fully understand the stuff that looks like void (func) (bool) 20160119 04:06:14< shadowm> C function pointers? 20160119 04:06:15< celticminstrel> You don't need to learn C to learn C++. 20160119 04:06:25< celticminstrel> vultraz: There should be a * in there too. 20160119 04:06:31< shadowm> Let me tell you a thing about C function pointers: they are the worst. Don't worry about them. 20160119 04:06:33< un214> that's ok you don't have to use that construct in normal C++ 20160119 04:06:47< iceiceice> celticminstrel, there are some things i remember doing in college that were like, extremely informative 20160119 04:06:51< celticminstrel> Yeah, you can use boost/std::function. 20160119 04:06:54< un214> yeah that is the worst, should be void (*func)(void *, bool) 20160119 04:06:57< shadowm> iceiceice: So how many weeks did it take you to read the standard? 20160119 04:07:05< iceiceice> like we had to write our own memory allocator in C, as a stand-in for malloc / free 20160119 04:07:10< shadowm> I downloaded a copy at some point and I still haven't got to it. 20160119 04:07:13< un214> ewwwww 20160119 04:07:25< iceiceice> that is like, one of the only CS assignments i actually remember *doing* 20160119 04:07:35< celticminstrel> I think I read the standard in a day or too. That was before C++11 though. Probably C++03? 20160119 04:07:51< celticminstrel> I think I was the only one in my class to do so. 20160119 04:07:56< iceiceice> shadowm, i have not read the entire standard, i dont think i would be able to retain that mch info 20160119 04:08:02< celticminstrel> Though, it's not like I actually asked anyone. 20160119 04:08:03< iceiceice> in a short amount of time 20160119 04:08:20< iceiceice> i have read many of the chapters, each in liek an hour or two 20160119 04:08:21 * celticminstrel can't remember, but probably only read the language part of the standard, not the libs part. 20160119 04:08:39< iceiceice> the templates chapter is really horrible and unintelligible, i have not read all of it 20160119 04:08:48< iceiceice> i have occasionally like, tried to pick through it in order to answer SO questions 20160119 04:09:40< shadowm> The copy I have is the last C++14 draft I think, about 1261 pages not counting the indexes at the end (1349). 20160119 04:10:16< shadowm> IIRC Game of Thrones (ASoIaF 1, not the TV series) is about as long. 20160119 04:10:23< vultraz> 1200+ pages?! 20160119 04:10:25< vultraz> what! 20160119 04:10:32< vultraz> why would you read that 20160119 04:10:42< vultraz> 1200 pages of programming jargon 20160119 04:10:44< shadowm> Exactly, that's why I haven't touched it. 20160119 04:11:06< iceiceice> i mean, 20160119 04:11:21< iceiceice> my opinion is that if you haven't read a lot the standard, you shouldn't really write code that throws C++ exceptions at all 20160119 04:11:29< iceiceice> or like, you shouldn't feel that safe doing it 20160119 04:11:38< iceiceice> there's a lot of wierd and bad things that can happen 20160119 04:11:50< shadowm> Even if you aren't throwing from a destructor? 20160119 04:11:51< iceiceice> i try to avoid throwing exceptions whenever i can now :p 20160119 04:11:59< iceiceice> idk i mean 20160119 04:12:07< iceiceice> that's a controversial thing, not everyone agrees with that 20160119 04:12:13< celticminstrel> I had issues with custom exception classes which would've been solved by the C++11 overrides tag. 20160119 04:12:19< iceiceice> i just dont like exceptions anymore 20160119 04:12:28< celticminstrel> Also I wasn't catching by reference, I think. 20160119 04:12:28< iceiceice> my preference now is like, 20160119 04:12:51< iceiceice> basically create your own "error" class which is like a struct with line number / file name / an error message 20160119 04:13:02< shadowm> The only thing I've heard against C++ exceptions is the fact that unwinding is sometimes inefficient depending on which platform and compiler you are using. (i.e. "don't use exceptions in performant code".) 20160119 04:13:08-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 20160119 04:13:16< iceiceice> and functions that would throw, instead return a "boost::variant" between like, their normal return value, and the error type 20160119 04:13:29< shadowm> Although honestly I've always wondered exactly how the memory allocation part of it works. 20160119 04:13:32< celticminstrel> That sounds kinda ugly. 20160119 04:13:39< iceiceice> thats basically how you do it in haskell 20160119 04:13:40< iceiceice> and in rust 20160119 04:13:51< un214> I think the allocation dynamically grows the stack 20160119 04:13:58-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 04:14:03< un214> which is why there is no stackoverflow exception in C++ 20160119 04:14:28< celticminstrel> You can get stack overflow errors though... but you're right that it's not an exception. 20160119 04:14:42< celticminstrel> So, you can't recover from them. 20160119 04:15:13< celticminstrel> Though stack overflow really isn't the sort of thing you'd recover from anyway... 20160119 04:15:14< shadowm> But what happens if you attempt to throw an exception right at the stack limit? :p 20160119 04:15:18< vultraz> shadowm: wait, so in a line like 20160119 04:15:19< vultraz> void tpreferences::single_toggle_callback(const std::string& widget, void (*setter) (bool), twindow& window) 20160119 04:15:21< vultraz> that's a C function pointer? or a c-style function pointer? or what. I'm confused 20160119 04:15:28< un214> shadowm: then allocating the stack handler fails 20160119 04:15:29< iceiceice> that is a c style function pointer 20160119 04:15:34< celticminstrel> That's a C function pointer. 20160119 04:15:45< shadowm> void foobar(bool). 20160119 04:15:56< shadowm> That's what setter points to. 20160119 04:16:17< un214> they used to do it in ancient C with signal handlers, where signals used a special type which was a register called function 20160119 04:16:38< vultraz> yes, I know what the setter points to - but why is it written like that 20160119 04:16:42< vultraz> and should I do it differently 20160119 04:16:45< un214> so you really could handle stack overflow, but the function could have no local variables and call no functions 20160119 04:16:59< celticminstrel> Well, if you wrote it "void *setter(bool)" it would be a function that returns void* 20160119 04:17:03< iceiceice> how could you plausibly recover from a stack overflow though 20160119 04:17:16< celticminstrel> So you need the parentheses to change the default binding of * 20160119 04:17:24< iceiceice> idk throw an exception and kill off like half the function calls? 20160119 04:17:38< vultraz> celticminstrel: that seems...inelegant 20160119 04:17:42< celticminstrel> If you're writing that function, vultraz, use boost::function instead. 20160119 04:17:51< un214> growing the stack used to be a userspace operation -- the stack handler called mmap() 20160119 04:17:52< celticminstrel> Yes, it's very inelegant. 20160119 04:18:00< shadowm> un214: Right but does that actually mean? Purportedly, whenever you throw an exception, the current function is aborted as part of the stack unwinding process. If there's no stack space available then there isn't an exception object to throw, which means... 20160119 04:18:02< vultraz> is there a standard library version of boost::function? 20160119 04:18:07< iceiceice> in c++11, yes 20160119 04:18:10< iceiceice> in wesnoth C++, no 20160119 04:18:11< vultraz> ugh 20160119 04:18:12< vultraz> of course 20160119 04:18:33< shadowm> Can the stack be unwound in spite of that and if so what abomination will previous exception handlers see if any at all? 20160119 04:18:54< vultraz> so i should not use c-style function pointers? 20160119 04:18:57< un214> well we could still throw stackoverflow * (the pointer type would go in a register) 20160119 04:19:07< iceiceice> vultraz, there's nothing wrong with c-style function pointers 20160119 04:19:12< celticminstrel> vultraz: By using boost::function instead of C function pointers you make it more versatile. 20160119 04:19:18< iceiceice> sure, there's that 20160119 04:19:23< celticminstrel> A C function pointer can only take a pointer to a function. 20160119 04:19:38< celticminstrel> A boost::function can also take other types of objects that can be called like a function. 20160119 04:19:39< un214> but if you throw again on unwind you call _terminate() 20160119 04:19:41< iceiceice> but like, unless you know you need that i wouldnt bother 20160119 04:19:56< iceiceice> idk 20160119 04:19:58< celticminstrel> I'd bother, because the boost::function syntax is also less ugly. 20160119 04:20:01< shadowm> un214: Well, yeah, but thinking about larger types here. Most people want to throw a 4 KiB struct or something. 20160119 04:20:03< celticminstrel> In my opinion, at least. 20160119 04:20:10< iceiceice> celticminstrel, yeah, thats a fair argument 20160119 04:20:16< iceiceice> otoh, including boost brings in a ton of headers 20160119 04:20:20< celticminstrel> ...why would you want to throw a 5KiB struct? 20160119 04:20:27< shadowm> That was hyperbole. 20160119 04:20:30< un214> which is why you preallocate your stackoverflow and outofmemory exceptions 20160119 04:20:43< vultraz> iceiceice: if we switch to c++11 we wouldn't have to :P 20160119 04:20:44< celticminstrel> iceiceice: True, but in the case of wesnoth, it already depends on those headers, so it's not a huge problem, is it? 20160119 04:20:49< celticminstrel> Also what vultraz said. 20160119 04:21:03< iceiceice> celticminstrel, avoiding unnecessary inclusions brings down the compile time al ot 20160119 04:21:08< celticminstrel> Who's still relying on old (pre-2013?) MSVC versions? 20160119 04:21:18< iceiceice> in general, if you compile a C++ program with n compilation units, 20160119 04:21:20< celticminstrel> iceiceice: Well okay, that's true. 20160119 04:21:30< iceiceice> and each unit includes every other header, 20160119 04:21:33< iceiceice> that's like O(n^2) time 20160119 04:21:39< iceiceice> for an O(n) sized program 20160119 04:21:40< shadowm> vultraz: There is some value in using C-style function pointers, but we have and the Boost quivalent for that as an alternative. 20160119 04:21:44< celticminstrel> Actually, I suspect the include tree could be simplified by forward declaring some things rather than including their header. 20160119 04:21:50< iceiceice> yeah i mean 20160119 04:21:53< iceiceice> forward declares, 20160119 04:21:55< iceiceice> pimpl, 20160119 04:22:02< un214> I always liked the glob compile for release builds 20160119 04:22:03< iceiceice> idk i usually prefer to use those things when i can 20160119 04:22:06< vultraz> what's forward delalring? 20160119 04:22:15< shadowm> vultraz: So for example, I would embrace C-style function pointers if I know the code in question is highly performance-sensitive. 20160119 04:22:16< celticminstrel> I think simplifying the include tree would be a good project. 20160119 04:22:16< un214> buildall.cpp #includes all other .cpp files and all headers are include guarded 20160119 04:22:24< celticminstrel> vultraz: It's when you write "class myClass;". 20160119 04:22:25< iceiceice> celticminstrel, i worked alot on that like 2 years ago 20160119 04:22:29< iceiceice> i had some script that like, 20160119 04:22:42< shadowm> vultraz: But in an application like Wesnoth you don't really need to worry about the footprint of function objects unless you are doing something really special. 20160119 04:22:45< iceiceice> estimated what proportion of the compile process was spent including what header files 20160119 04:23:02< iceiceice> there was a time when wesnoth took 40 mint o compile on travis 20160119 04:23:06< iceiceice> and would time out like every other time 20160119 04:23:20< iceiceice> there were two changes that made a significant difference, 20160119 04:23:25< celticminstrel> Currently, changes to certain headers result in the need to recompile tons of files, in some cases nearly every file (for example, config.hpp and a lot of the GUI headers). 20160119 04:23:27< shadowm> vultraz: And by the point you got to be able to write that kind of special code you'd already know what to do anyway. 20160119 04:23:33< iceiceice> (1) it turned out that the "t_string" class used in config.hpp 20160119 04:23:40< iceiceice> is based on boost::mutliidnex container 20160119 04:23:50< iceiceice> and it would include all of boost multiiindex in its header 20160119 04:23:57< iceiceice> whcih is a huge lib 20160119 04:24:03< iceiceice> and that would get included in everything that includes config 20160119 04:24:06< iceiceice> which is pretty much every thing 20160119 04:24:10< celticminstrel> Yeah. 20160119 04:24:18< shadowm> I didn't know this. 20160119 04:24:22< iceiceice> so i found a way to move that out of hte header and into tstring compilation unit 20160119 04:24:28< iceiceice> and that brought the time down by like 5 minutes 20160119 04:24:33< iceiceice> like that change alone iirc 20160119 04:24:46< shadowm> I always assumed t_string had remained relatively unchanged since our pre-Boost days. 20160119 04:24:51< iceiceice> the other big change that made a difference was, i read in travis docs that travis builds actually have 2 cores that you can use 20160119 04:24:58< iceiceice> so i passed "-j2" to scons :) 20160119 04:25:05< shadowm> (Yeah, Wesnoth didn't use Boost at all once upon a time, can you believe that?) 20160119 04:25:09< iceiceice> that was the most important thing to discover :) 20160119 04:25:41< iceiceice> shadowm, yeah i dont think it has changed much since then either 20160119 04:25:49< iceiceice> like other than that way 20160119 04:26:33< celticminstrel> Maybe using a precompiled header would help, but I vaguely recall problems with precompiled headers years ago. 20160119 04:27:23< celticminstrel> Prefix header, whatever. 20160119 04:27:44< iceiceice> maybe 20160119 04:27:49< iceiceice> i mean 20160119 04:28:00< iceiceice> wesnoth dev times were fine iirc for like actual developers 20160119 04:28:06< iceiceice> if you are using ccache and have a decent machine 20160119 04:28:22< iceiceice> it was only like, from a cold start that it was bad 20160119 04:28:36< vultraz> I don't have ccache :| 20160119 04:28:38< iceiceice> maybe its a lot worse for msvc / xcode folks, idk 20160119 04:28:50< celticminstrel> For me it's bad anytime major headers change, which has been a lot recently with all these GUI changes. 20160119 04:29:26< iceiceice> yeah idk what to say 20160119 04:29:39< iceiceice> dave is not really a fan of pimpl / forward declares all tha tstuff 20160119 04:29:44< iceiceice> as i recall 20160119 04:29:54< iceiceice> i dont think mordante thouht it was too important either 20160119 04:30:16< celticminstrel> I don't think I'm a fan of pimpl, but forward declares might be useful to reduce compilation times in some situations. 20160119 04:30:27< iceiceice> i really like pimpl, especialy when you are startin ga project 20160119 04:30:28< celticminstrel> A forward declaration means you don't need to include the header. 20160119 04:31:01< iceiceice> pimpl helps you like, encapsulate things 20160119 04:31:02< vultraz> is there a benefit of one over the other? 20160119 04:31:04< vultraz> or is it just style 20160119 04:31:05< celticminstrel> But then it also means you can only have pointers or references to that type, or functions that return it. (Possibly functions that take it as an argument too?) 20160119 04:31:14< celticminstrel> vultraz: Benefit of which over what? 20160119 04:31:23< iceiceice> vultraz, they are sort of different things 20160119 04:31:31< vultraz> forward declaration over including the header 20160119 04:31:36< iceiceice> i gtg, bbl 20160119 04:31:37< celticminstrel> Yeah. 20160119 04:31:39-!- iceiceice [~chris@wesnoth/developer/iceiceice] has quit [Quit: Leaving] 20160119 04:32:21< celticminstrel> The compiler needs to reparse the header every time it's included. Liberally using forward declarations thus reduces the amount of work the compiler needs to do. 20160119 04:32:50< celticminstrel> However, if you use a forward declaration, the type becomes an "incomplete type" and there are limits on how you can use it without also including the header. 20160119 04:33:11< shadowm> I'm not a fan of pimpl myself except when there's a policy reason for it. 20160119 04:33:27< celticminstrel> So you still need to include the header in the source files that access it. 20160119 04:33:28 * Aginor goes to read the backlog 20160119 04:33:34< Aginor> (hi) 20160119 04:33:35< celticminstrel> Have fun. <_< 20160119 04:33:43< shadowm> For example, I have this interface, but the implementation details are constantly changing and use their own convoluted interface that's hidden from users. 20160119 04:34:22< shadowm> The alternative is to have the interface have two or three pages of private members, and that's tacky. 20160119 04:35:27< un214> I know that trick -- waste 8 bytes for faster compiles 20160119 04:35:28< shadowm> Forward declaration usually requires you to get out of your way to make the compiler happy (read: pointers), so not a fan of that either. 20160119 04:36:04< celticminstrel> I'd only use forward declarations if everything was pointers or references anyway. 20160119 04:36:26< celticminstrel> If I actually need composition I won't use a forward declaration. 20160119 04:38:35< shadowm> TIL dragging text from the comment box into the comment timeline on GitHub pull request pages causes the text to be posted. 20160119 04:38:41< shadowm> Never doing it again. 20160119 04:39:10< shadowm> Stupid hipsters and their nonsensical UI design ideas. >.< 20160119 04:40:43< celticminstrel> Uh. What. 20160119 04:42:54< shadowm> I think that's what happened anyway. 20160119 04:43:22< shadowm> Okay, maybe I just accidentally clicked on Comment somehow. 20160119 04:44:27< Aginor> Everyone, thank you for the confidence you're expressing in me :) 20160119 04:46:17< shadowm> So, constantly changing... I guess that's what iceiceice meant with "when you are starting a project". 20160119 04:46:37< shadowm> Moving things around every few days. 20160119 04:48:37 * Aginor pulls on his hair 20160119 04:48:54< Aginor> why did I think it wsa a good idea to organise two sport leagues at the same time? 20160119 04:49:31< Aginor> shadowm: what kind of game is it you want to make? And are you planning to leverage an existing engine/framework? 20160119 04:50:28< shadowm> Oh I haven't decided yet, but it's probably be very much like a Wesnoth campaign. 20160119 04:50:49< shadowm> Which is why I'm planning to prototype it in Wesnoth in fact. 20160119 04:50:52< vultraz> You should decide 20160119 04:51:20< vultraz> Aginor: that does not sound like a good idea :P 20160119 04:51:22< shadowm> ... Yes. I know that. 20160119 04:51:35< shadowm> I'm not sure why you like so much to state the obvious to me. 20160119 04:52:37< vultraz> because like myself, you suffer from captain obvious syndrome 20160119 04:52:54< shadowm> No, I don't. I'm not stating the obvious here, _you_ are. :p 20160119 04:53:09< Aginor> Here's my thoughts on GUI1 vs GUI2 vs GUI3 vs GUI4: Don't make any more changes than what's needed at this stage. Maintain it, but don't add to many new things or pen too much effort porting it. Help out getting SDL2 port sorted, and then potentially opengl support running with HW acceleration. After that we can look at making a concentrated effort on replacing both GUI1 and GUI2. It should actually be reasonably straightforward in a sensible fram 20160119 04:53:26< shadowm> Or maybe that was some sophisticated trolling on your part to make me state the obvious. 20160119 04:53:52< Aginor> We don't have the resources to spend doing lots of things in parallel, so let's focus on one thing and do it well 20160119 04:54:07< vultraz> Aginor speaks the truth 20160119 04:54:34 * Aginor stops channeling his "work" voice 20160119 04:54:36< shadowm> >agrees with Aginor 20160119 04:54:41< shadowm> >continues doing a thousand things in parallel 20160119 04:54:46< Aginor> hehe 20160119 04:55:01< shadowm> vultraz: Remember when you were going to do the one thing we needed the most? 20160119 04:55:16< Aginor> invent a more hours in the week? 20160119 04:55:30< shadowm> No, but that'd help too. 20160119 04:55:31< Aginor> s/a// 20160119 04:56:43< Aginor> time to go tell a team they can't play and re-do the draws 20160119 04:58:57-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has quit [Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] 20160119 04:58:59< Aginor> celticminstrel: my main reason for contributing to wesnoth is because I enjoy having something useful to hack away on and I feel like I'm making a positive contribution. 20160119 04:59:03< Aginor> bah :D 20160119 05:00:26< un214> well I did write a campaign 20160119 05:00:42< un214> maybe someday I'll port up to latest version -- somehow every version something's broke again 20160119 05:01:23< shadowm> That's the most frustrating part about UMC development, and it's funny because I've been responsible for some compatibility-breaking changes myself. 20160119 05:01:43< shadowm> Suffice to say, this double-militancy thing has worn me out. 20160119 05:02:45< shadowm> On one hand, as a Wesnoth developer, I want the project to move forward [insert more fluff here] backwards compatibility is hard [more fluff here possibly allusions to Microsoft's always-backwards-compatibility-first development model]. 20160119 05:03:09< un214> hmmm 20160119 05:03:16< shadowm> On the other hand, as an add-on content creator, I feel like the development team doesn't value my efforts, which are not small at all. 20160119 05:03:35< un214> about half the time I've ran smack into an outright engine bug 20160119 05:03:42< shadowm> That stupid shadowm person who keeps breaking my campaign is the worst of them all. 20160119 05:04:13< un214> too bad I'm not around much anymore I had this knack if finding breaker bugs right before stable release 20160119 05:06:38< vultraz> shadowm: what is that? 20160119 05:07:23< shadowm> What is what? 20160119 05:07:26-!- un214 [~un214@2602:306:cccf:d299:56a0:50ff:fe57:101d] has quit [Remote host closed the connection] 20160119 05:07:53< vultraz> [15:54:59] shadowm vultraz: Remember when you were going to do the one thing we needed the most? 20160119 05:08:27< shadowm> Actually, I forgot. 20160119 05:08:51< shadowm> https://forums.wesnoth.org/memberlist.php?mode=viewprofile&un=vultraz <- Maybe it had something to do with this page? I'm too lazy to check. 20160119 05:08:52< vultraz> as for doing things in parallel, you could help me finish this huge thing 20160119 05:09:11< vultraz> oh right that 20160119 05:09:12< vultraz> yes 20160119 05:09:14< vultraz> i remember 20160119 05:09:36< shadowm> What huge thing? Also, why should I help you before helping _me_? 20160119 05:09:48< vultraz> 581! 20160119 05:09:50< shadowm> Remember I had a huge thing to do too? 20160119 05:09:53< vultraz> i need someone to code it with me! 20160119 05:10:03< shadowm> It was far more important than this. 20160119 05:10:14< shadowm> Oh, and let's not forget about the _other_ huge thing I had to do. 20160119 05:10:38< shadowm> Or the huge set of smaller things I also had to do. 20160119 05:11:26< vultraz> yes I know you haven't gotten to the Lua 5.3 PR 20160119 05:11:28< vultraz> but that's not urgent 20160119 05:11:36< shadowm> I had completely forgotten about that. 20160119 05:11:45< shadowm> I was thinking of: https://forums.wesnoth.org/viewtopic.php?f=2&t=42966 20160119 05:12:24< shadowm> As well as the other thing that has four letters and the extremes are I and U. 20160119 05:12:25< vultraz> In keeping with Aginor's suggestion, why don't we focus on closing up 581 before starting more major projects 20160119 05:12:41< shadowm> Not to mention that other thing that has three letters and the extmres are A and S. 20160119 05:13:41< vultraz> Yes yes 20160119 05:13:50< vultraz> But mainline has momentum right now 20160119 05:13:53< vultraz> Let's capitilize 20160119 05:13:59< vultraz> capitalize 20160119 05:14:02< shadowm> vultraz, if you think I'm doing this on purpose you are sorely mistaken. :\ 20160119 05:14:20< shadowm> I don't exactly feel great being useless. 20160119 05:14:51< vultraz> You are not useless 20160119 05:15:04< vultraz> if you were useless I wouldn't be asking for assistance 20160119 05:15:15< shadowm> Being, as in at the moment. 20160119 05:15:38< vultraz> I should not have undertaken 581 alone 20160119 05:15:40< shadowm> I've always wondered why English doesn't have that important difference built into it. 20160119 05:18:02< shadowm> Ugh, I need to mess my cross-compile environment again to upgrade SDL 2.0.3 → 2.0.4. 20160119 05:18:13< shadowm> Also I skipping words for reason. 20160119 05:18:56< vultraz> russian shadowm returns 20160119 05:18:59< Aginor> shadowm: you are not useless, even in this exact moment. You might not be able to do what you normally do, but that doesn't make you useless. 20160119 05:19:06< Aginor> he accidentially a word 20160119 05:20:33< shadowm> I keep wondering why the SDL companion libraries aren't linked from libsdl.org anymore. 20160119 05:21:09< shadowm> It's not like they are abandoned, since they keep making releases (AND IGNORING PATCHES), but the way it is now it's almost as if they didn't want people using them. 20160119 05:21:47< shadowm> Which is perfectly understandable for SDL_ttf or SDL_net, but not so with SDL_image or SDL_mixer. 20160119 05:22:34< shadowm> loonycyborg: By the way, any progress on Asio wesnothd? We still want to get rid of SDL_net. 20160119 05:23:16< Aginor> asio == asynchronous io? 20160119 05:23:42< shadowm> Yes, it's one of the Boost libraries. It primarily deals with cross-platform networking. 20160119 05:24:02< shadowm> The name is a bit misleading, since it can also be used for synchronous I/O. 20160119 05:24:10< vultraz> so we want to drop SDL_ttf and SDL_net? good 20160119 05:24:34< shadowm> SDL_net's demise is inevitable since it only supports IPv4. 20160119 05:24:55< shadowm> Furthermore, the way we use it, we wind up breaking protocol and vultraz I already explained this to you before. 20160119 05:25:06< vultraz> You did 20160119 05:25:37< vultraz> You said we made use of non-public implementation in an assumed way and we're lucky it works because it could break at any time 20160119 05:25:50< shadowm> Yes. 20160119 05:26:11< shadowm> It has to be the worst kluge I've ever seen in my life in production code. 20160119 05:27:10-!- Kwandulin [~Miranda@p200300760F6924CCDDFA49EFEC1BC54C.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 05:28:43< shadowm> I should clarify that SDL_mixer isn't the best at its job, but it suits us just fine. 20160119 05:29:14< shadowm> After all, this is a 2D game and we don't need to do anything fancy. 20160119 05:29:45< shadowm> SDL_image though, I can't see why anyone would want to use anything else. 20160119 05:30:04< shadowm> Unless, of course, they were working with proprietary graphics formats. 20160119 05:30:19< shadowm> Like, you know, all those games on Steam. And Sam Latinga happens to be employed by Valve. 20160119 05:30:54< shadowm> Valve wanted SDL 2. SDL 2 made the companion libraries disappear from the site front page. 20160119 05:31:00< shadowm> I feel like I'm on to something here. :p 20160119 05:32:29-!- iceiceice [~chris@wesnoth/developer/iceiceice] has joined #wesnoth-dev 20160119 05:33:21< iceiceice> shadowm, i mean, the sdl "companion" libraries are not really meant to be used afaict 20160119 05:33:25< iceiceice> they are like "example libs" or something 20160119 05:33:35< iceiceice> for like beginners or something 20160119 05:33:44< shadowm> In that case they shouldn't have made them so stupidly useful. 20160119 05:34:00< iceiceice> i mean they made them to get people using SDL 20160119 05:34:02< iceiceice> but like, 20160119 05:34:12< iceiceice> they certainly didn't maintain them to be like top notch libraries 20160119 05:34:17< shadowm> SDL_image: "It loads images as SDL surfaces and textures, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, WEBP, XCF, XPM, XV" 20160119 05:34:30< iceiceice> there are lots of image loading libs though 20160119 05:34:35< shadowm> If I wrote sample code, I'd leave as much as possible out as homework. 20160119 05:34:36< iceiceice> and realistically you only need png 20160119 05:35:20< shadowm> SDL_mixer is even worse because it even supports formats no-one uses nowadays. 20160119 05:35:56< shadowm> And by "no-one uses" I mean "actually a few people use for some reason". 20160119 05:36:10< iceiceice> does it support ogg directly or something? 20160119 05:36:15< iceiceice> what is the attractino of SDL mixer? 20160119 05:36:35< iceiceice> i remember that stupid stuff where it wouldn't take our custom filesystem functions unless we upgraded versions 20160119 05:36:50< shadowm> Like SDL_image, you get a unified transparent interface for working with different formats without having to know about them. 20160119 05:36:55< iceiceice> i think if i were making a game today i would use OpenAL 20160119 05:37:04< iceiceice> because that is like super stable 20160119 05:37:21< iceiceice> and its available on OS X so i dont have to compile it there :) 20160119 05:37:25< vultraz> iceiceice: do you still not like FlatUI/FPLBase? 20160119 05:37:38< iceiceice> i didnt look at it more since we last talked 20160119 05:37:59< shadowm> So yeah, people like us in quick need of making a game as soon as possible use these libraries. 20160119 05:38:10< shadowm> Then they expect to be able to do _more_ stuff with these libraries. 20160119 05:38:25< shadowm> I'm pretty sure that's how the atrocity that is src/network_worker.cpp came to be. 20160119 05:38:26< iceiceice> i mean, dave is the one who made the game quick 20160119 05:38:31< iceiceice> we've been here for like 12 years :p 20160119 05:38:44< shadowm> The other people. Dave's original game didn't have sound or networking. :p 20160119 05:38:48< iceiceice> hehe 20160119 05:38:52< iceiceice> it didn't have sound when he released it? 20160119 05:38:55< iceiceice> thats kind of awesome actually 20160119 05:39:31< shadowm> It didn't ship with any sound files and IIRC the code makes no use of SDL's audio API. 20160119 05:39:59< shadowm> (SDL's builtin audio API is limited to .wav files IIRC, like the video API is limited to Windows .bmp files.) 20160119 05:40:28< shadowm> (Which is why Wesnoth 0.1 used .bmp files.) 20160119 05:41:30< shadowm> So yeah, if people wanting to make stuff look at the sample libraries and they have all these features, I feel it's pretty weird to label them as such. 20160119 05:41:45< iceiceice> yeah i mean, idk, 20160119 05:41:58< iceiceice> my experience has been that, they are all rather squirrelly 20160119 05:42:04< iceiceice> except the main SDL lib 20160119 05:42:21< iceiceice> i guess fabi also complained bitterly about even the main SDL wrt hotkeys 20160119 05:42:31< iceiceice> idk 20160119 05:42:40< shadowm> (And for those who haven't seen, yes, they do label themselves as such in-code (SDL_net.c:2: "SDL_net: An example cross-platform network library for use with SDL").) 20160119 05:44:41< shadowm> (Relatedly, why anyone saw it fit to tie a networking library to SDL of all things is beyond me.) 20160119 05:48:18< iceiceice> i mean its just like, all the low level crap that most / many games need to do 20160119 05:48:41< iceiceice> actually i'm surprised there's not like an "SDL_credit_card_payments" lib :p 20160119 05:49:42< iceiceice> i would never trust my credit card with an SDL lib though :p 20160119 05:49:43< shadowm> Right, but AFAICT the only "SDL" thing about it is that it uses SDL's types (UintXX etc.), some utility functions (there's a SDL_memset apparently), and a few miscellaneous utility macros that every C programmer and their dog can write. 20160119 05:50:02< iceiceice> yeah i mean, i think its just the branding 20160119 05:50:11< shadowm> Barring that, it could've easily been some_generic_network_library. 20160119 05:50:41< shadowm> Or more appropriately, my_first_ipv4_library. 20160119 05:50:47< iceiceice> but what people want is like, some_generic_network_library with the SDL cross-platform brand of approval 20160119 05:56:14< shadowm> Oh finally, I can cross-compile again! 20160119 05:57:03 * shadowm hits a linker error. 20160119 05:57:13< vultraz> spoke too soon 20160119 05:57:14< vultraz> :P 20160119 05:57:15< shadowm> That didn't even last a minute. 20160119 05:57:30< vultraz> i need to ask, do you have a windows build? 20160119 05:57:33< shadowm> build/release/libwesnoth_core.a(filesystem_boost.o):filesystem_boost.cpp:(.text+0x1176): undefined reference to `boost::filesystem::path_traits::convert(char const*, char const*, std::__cxx11::basic_string, std::allocator >&, std::codecvt const&)' 20160119 05:57:39< shadowm> Blah blah blah. 20160119 05:57:49< vultraz> THAT 20160119 05:57:55< vultraz> CURSES UPON THAT ERROR 20160119 05:58:00< vultraz> (I think it's the same one) 20160119 05:58:06< shadowm> -lboost_filesystem is in the command line. 20160119 05:58:35< shadowm> So what's the deal with this? Did someone inadvertently bump or Boost.Filesystem requirement? (But then I'd be surprised it results in a _linker_ error.) 20160119 05:58:36< vultraz> shadowm: I had similar problems compiling with boost 1.60 here. undefined reference errors to boost::system and boost::filesystem something 20160119 05:58:48< vultraz> for the life of me I could not figure out the cause 20160119 05:59:01< vultraz> I reverted to 1.58 and it worked again 20160119 05:59:15< shadowm> shadowm@nanacore:~/src/wesnoth/scons-win32-crosscompile% fgrep VERSION /home/shadowm/win32/wesnoth-xcompile-sdk/boost/include/boost/version.hpp 20160119 05:59:19< shadowm> #define BOOST_LIB_VERSION "1_58" 20160119 05:59:24< shadowm> Nope. 20160119 05:59:28< vultraz> whut 20160119 05:59:40< vultraz> well if you fix it let me knowhow 20160119 05:59:47< vultraz> for the life of me I can't figure it out 20160119 05:59:52< shadowm> OH. 20160119 05:59:59< shadowm> Wait. 20160119 06:00:07< shadowm> No, that can't be it. 20160119 06:00:31< vultraz> I went through multiple solutions including defining BOOST_SYSTEM_NO_DEPRECATED 20160119 06:00:37< shadowm> I thought for a moment it was more GCC 5 C++11 ABI shenanigans, but... 20160119 06:00:38< vultraz> and specifying win23winnt or something 20160119 06:00:49< vultraz> nothing worked 20160119 06:00:54< shadowm> ... I don't even remember what I used to compile that Boost. 20160119 06:01:07< vultraz> for me the system error was in addon.c 20160119 06:01:09< vultraz> er 20160119 06:01:13< shadowm> Currently: i686-w64-mingw32-g++ (GCC) 5.3.1 20151207 20160119 06:01:16< vultraz> addon/client.c 20160119 06:01:30< shadowm> Perhaps I should try rebuilding Boost anyway. 20160119 06:01:58< shadowm> I mean. 20160119 06:02:23< shadowm> Sigh. If I'm going to compile Boost I might as well get the newest version I guess. Stupid Boost and its byzantine build system. 20160119 06:02:37< vultraz> yes, get 1.60 20160119 06:02:47< shadowm> Reason? 20160119 06:03:00< vultraz> it's the latest version 20160119 06:03:03< shadowm> Let me guess: "because 60 ≥ 58". 20160119 06:03:03< vultraz> and i want to see if it works for you 20160119 06:03:05< shadowm> Yep. 20160119 06:03:11< vultraz> since I had problems with 60 20160119 06:03:41< shadowm> I hate building Boost because it's a chore no matter what, and if I hit the same linker error later and it turns out I wasted my time barking at the wrong tree I'll be livid. 20160119 06:04:06< shadowm> You can throw a whole build farm at it and it's still a chore. 20160119 06:04:48< shadowm> Oh and Boost still uses SF.net. Good to see we're not alone. 20160119 06:05:07< shadowm> I wonder what all the C++-loving SF.net-haters at Reddit would say about that. 20160119 06:07:58-!- flowerhack [sid6775@gateway/web/irccloud.com/x-mckjyiupjiukrpoh] has quit [Quit: Connection closed for inactivity] 20160119 06:08:19-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 06:08:25< shadowm> -rw-r--r-- 1 shadowm shadowm 1084 Jul 21 22:35 linux-win32-crosscompile-notes 20160119 06:08:43< shadowm> Looks like past me decided to make things easier for me this time. 20160119 06:09:02< shadowm> There's even a full command line invocation and an IRC log pointer. 20160119 06:12:15-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 240 seconds] 20160119 06:14:37< shadowm> Complete with vital typos. 20160119 06:16:06< shadowm> And that built in less than a minute. 20160119 06:17:56< shadowm> /home/shadowm/src/wesnoth-sdl2/src/actions/../play_controller.hpp: In member function ‘void play_controller::reset_end_level_data()’: 20160119 06:17:59< shadowm> /home/shadowm/src/wesnoth-sdl2/src/actions/../play_controller.hpp:140:47: error: no matching function for call to ‘boost::none_t::none_t()’ 20160119 06:18:11< shadowm> Waaaaait. 20160119 06:18:22< shadowm> >_< 20160119 06:19:13< shadowm> I was building the wrong source tree all along. That's an obsolete version of the sdl2 branch. 20160119 06:20:04 * Aginor frowns at shadowm 20160119 06:20:12< Aginor> stay away from old broken code :) 20160119 06:20:27< Aginor> stay with current broken code :) 20160119 06:20:32< vultraz> xD 20160119 06:20:49< shadowm> Yeah, I wasn't paying attention and tried to rebuild at the same prompt I was using to look at the SCons configuration. 20160119 06:21:32< shadowm> I suppose that's as good a excuse as any to upgrade my Boost build. 20160119 06:21:59< shadowm> -rwxr-xr-x 1 shadowm shadowm 4228319 Jan 19 03:21 campaignd.exe 20160119 06:22:10< shadowm> vultraz: I think Boost 1.60 works for me. 20160119 06:22:36< shadowm> Would Boost 1.58 have worked even without rebuilding it? I don't know and I probably don't care. 20160119 06:22:49 * Aginor thinks shadowm is up very late too 20160119 06:23:00< shadowm> I am tempted to say it's a factor, since IIRC the last time I cross-compiled I was still on GCC 4.9. 20160119 06:23:07< vultraz> :| 20160119 06:23:09< vultraz> god dammit 20160119 06:23:37< shadowm> Mingw-w64 GCC 4.9, not host GCC 4.9, I was forced to move to GCC 5 last August. 20160119 06:25:30< vultraz> do we still support 4? 20160119 06:25:41< shadowm> Yes, and don't start. 20160119 06:25:57< Aginor> debian users need a way to compile too 20160119 06:26:13< shadowm> Not only travis is still on GCC 4.7 or 4.8 or 4.9 (I don't remember which), but there are other platforms like Debian, RHEL, and CentOS. 20160119 06:26:36< shadowm> Last time I checked, Wesnoth could still be built with GCC 3.3. 20160119 06:26:52 * Aginor remembers those days 20160119 06:27:17< shadowm> -rwxr-xr-x 1 shadowm shadowm 27057362 Jan 19 03:26 wesnoth.exe 20160119 06:27:39< shadowm> Build success-ness confirmed. 20160119 06:28:46< shadowm> Um. 20160119 06:29:17< shadowm> You know, someone ought to tell the Wine guys to at least print an error to stderr when the library linkage step of process initailization fails. 20160119 06:30:04< shadowm> That always gets me and makes me think it's a Wesnoth bug, when it's just an environment setup issue that isn't visibly acknowledged anywhere. I just get returned to the prompt with a status of 53. 20160119 06:30:20< shadowm> Native Windows would display a message box. :\ 20160119 06:30:46< iceiceice> gcc 4.9 is a good compiler 20160119 06:31:35< shadowm> Not to mention that my guess of missing libraries turns out to be incorrect. 20160119 06:32:09< vultraz> Perhaps we could at least reassess the c++11 situation 20160119 06:32:19< vultraz> not sure many people still need to use pre vs2013 20160119 06:32:22< vultraz> since 2015 is out now 20160119 06:32:25< shadowm> Okay, not incorrect, only incomplete. 20160119 06:32:37< shadowm> vultraz: Yes, 2015 was already out last time we checked. 20160119 06:32:46< shadowm> In fact, it was mid-to-late 2015. 20160119 06:33:13< shadowm> You'll have to ask aquileia and zookeeper and gfgtdf what they're using right now. 20160119 06:34:14< shadowm> I proposed using only features supported by those compilers (and GCC ≥ 4.9) but then someone advocated for an all-or-nothing approach. 20160119 06:34:38< shadowm> Er, GCC ≥ 4.7. 20160119 06:37:32< shadowm> TIL Dependency Walker can't resolve symbols from Windows core libraries on Wine for some reason. 20160119 06:38:05< shadowm> shadowm@nanacore:~/src/wesnoth/win32-x-run% ./wesnoth.exe --wconsole 20160119 06:38:06< shadowm> wine: Call from 0x7bc52989 to unimplemented function libfreetype-6.dll.InterlockedCompareExchange@12, aborting 20160119 06:38:13< vultraz> will ask them 20160119 06:38:16< shadowm> Okay now this is just silly. 20160119 06:38:25< vultraz> is there some switch we then have to flip 20160119 06:38:37< vultraz> to discontinue 03/98 support 20160119 06:39:00< shadowm> We've been building Wesnoth in C++11 mode for years. 20160119 06:39:05< shadowm> (Plot twist.) 20160119 06:39:38< shadowm> Don't believe me? Look at the build matrix on https://travis-ci.org/wesnoth/wesnoth/ again. 20160119 06:40:07< vultraz> I know 20160119 06:40:13< shadowm> So yes, there is a switch, but if that's all it took to use C++11 effectively then it wouldn't be an issue. 20160119 06:40:17< vultraz> I said discontinue 20160119 06:40:23< vultraz> And yes 20160119 06:40:24< vultraz> I know 20160119 06:40:26< vultraz> that's just a start 20160119 06:40:57< shadowm> There is no such thing. 20160119 06:41:19< shadowm> If you start writing C++11 code without guarding it with preprocessor conditionals, it simply won't compile in C++98/C++03 mode. 20160119 06:41:49< shadowm> Kind of obvious, really. 20160119 06:42:53< shadowm> shadowm@nanacore:~/src/wesnoth/win32-x-run% for f in ~/win32/sdl2-i686-w64-mingw32/bin/*.dll; do rm `basename $f`; ln -s $f; done 20160119 06:43:05< shadowm> Finally. 20160119 06:43:36< shadowm> So Wine will visibly complain about unresolved symbols but not about unresolved modules. 20160119 06:43:49< shadowm> Go figure. 20160119 06:44:54< shadowm> http://i.imgur.com/H6GqNda.png \o/ 20160119 06:45:52< vultraz> i hate you :| 20160119 06:46:01< vultraz> boost works for you 20160119 06:47:37< shadowm> Did you build it yourself? 20160119 06:48:03< vultraz> yes 20160119 06:48:20< shadowm> With the same compiler you use for Wesnoth? 20160119 06:48:39< vultraz> I specified --toolset=gcc, yes 20160119 06:49:40< shadowm> That doesn't tell me much since I don't speak the same language as Boost's build system. 20160119 06:50:03< vultraz> I specified gcc as the compiler 20160119 06:50:04< shadowm> Ensuring that both that and whatever mechanism you use Wesnoth are seeing the same compiler is up to you. 20160119 06:50:16< shadowm> (Especially if you have multiple compilers installed.) 20160119 06:51:49< vultraz> I'll stick with 58 for now 20160119 06:52:18< shadowm> But yeah, you need to get over that obsession with numbers. 20160119 06:52:28< vultraz> what obsession? 20160119 06:52:43< shadowm> 60 ≥ 58, etc. 20160119 06:53:15< shadowm> The fact that we still allow older versions usually means that you, as an end-user, don't get any tangible benefits from sticking newer versions into your environment. 20160119 06:53:43< shadowm> Especially not for libraries like Boost where most changes are only relevant to programmers using the product. 20160119 06:55:14< shadowm> So, interestingly enough, the section size mismatch errors from the Mingw-w64 linker are gone. 20160119 06:55:55< shadowm> Sounds like I could use -Werror for cross builds now, right? Wrong. 20160119 06:56:13< shadowm> /home/shadowm/win32/wesnoth-xcompile-sdk/boost/include/boost/type_traits/detail/template_arity_spec.hpp:13:83: note: #pragma message: NOTE: Use of this header (template_arity_spec.hpp) is deprecated 20160119 06:56:59< shadowm> Looks like Boost 1.60 shipped with parts using deprecated APIs. 20160119 07:03:27< shadowm> Hm, seems like those don't trip -Werror. 20160119 07:03:57< shadowm> But this does and I'm too lazy to figure out the fix: 20160119 07:03:57< shadowm> /home/shadowm/src/wesnoth/src/campaign_server/campaign_server.cpp:103:3: error: #warning monotonic_clock() is not truly monotonic! [-Werror=cpp] 20160119 07:06:18< vultraz> what does that even mean 20160119 07:15:40< vultraz> shadowm: is your window geometry behavior correct in your windows build? 20160119 07:19:36-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has joined #wesnoth-dev 20160119 07:47:56< ancestral> vultraz, shadowm, Aginor: No 1.13.3 release this week? 20160119 07:48:59< Aginor> ancestral: no, postponed to end of month 20160119 07:49:00< Aginor> -t 20160119 07:49:08 * ancestral nods 20160119 07:49:09< ancestral> Thanks! 20160119 07:49:12< Aginor> it was in the topic 20160119 07:49:19< Aginor> but no longer it appears 20160119 07:50:10< Aginor> `ä,ä 20160119 07:50:14< Aginor> hmm 20160119 07:50:25< Aginor> I do not have the keyboard loayout active I thought I did 20160119 08:09:26-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20160119 08:20:04-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 08:24:50-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20160119 08:31:16-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Quit: wedge009] 20160119 08:46:52-!- zookeeper [~lmsnie@37.35.27.57] has joined #wesnoth-dev 20160119 08:46:56-!- zookeeper [~lmsnie@37.35.27.57] has quit [Changing host] 20160119 08:46:56-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20160119 09:16:32< zookeeper> urgh, only halfway through the log... 20160119 09:32:36-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20160119 09:33:49< zookeeper> phew. 20160119 09:45:31-!- mjs-de [~mjs-de@x4db54a26.dyn.telefonica.de] has joined #wesnoth-dev 20160119 10:26:51-!- Kwandulin_2 [~Miranda@p200300760F69244CDDFA49EFEC1BC54C.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 10:28:30-!- Kwandulin [~Miranda@p200300760F6924CCDDFA49EFEC1BC54C.dip0.t-ipconnect.de] has quit [Ping timeout: 260 seconds] 20160119 10:44:22-!- Kwandulin_2 [~Miranda@p200300760F69244CDDFA49EFEC1BC54C.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160119 10:46:54-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 10:49:27-!- atarocch [~atarocch@81-208-118-75.ip.fastwebnet.it] has joined #wesnoth-dev 20160119 10:51:50-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20160119 11:04:11-!- zombah [~zombah@2a02:28:3:1:214:4fff:fe47:5920] has joined #wesnoth-dev 20160119 11:36:47-!- Kwandulin [~Miranda@p200300760F69244CC06D37C019BAF762.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 12:16:05-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160119 12:24:46-!- irker269 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20160119 12:24:46< irker269> wesnoth: Peter Elmers wesnoth:asio_wesnothd fc5b3e5ed222 / src/actions/attack.cpp: refactor some replay validation out of perform_hit https://github.com/wesnoth/wesnoth/commit/fc5b3e5ed2229868bd2773e47d60ae4c532180ca 20160119 12:24:46< irker269> wesnoth: Peter Elmers wesnoth:asio_wesnothd 2f2ea4bedbb6 / changelog src/actions/attack.cpp: Fix bug 23108: expected damage for aborted attacks https://github.com/wesnoth/wesnoth/commit/2f2ea4bedbb6d07b647cea3258a99bb91143d2d4 20160119 12:24:46< irker269> wesnoth: Peter Elmers wesnoth:asio_wesnothd 7076df5ee6d1 / changelog: fix typo in changelog https://github.com/wesnoth/wesnoth/commit/7076df5ee6d1aa98c6122eee57d3bfc04ceb1124 20160119 12:24:47< irker269> wesnoth: Chris Beck wesnoth:asio_wesnothd 56e685b7e056 / src/server/game.cpp: fixup server controller tweaks, dont tweak host https://github.com/wesnoth/wesnoth/commit/56e685b7e0560a275ee63eef5930a5022b44da9a 20160119 12:24:48< irker269> wesnoth: gfgtdf wesnoth:asio_wesnothd d3652e1b6d4b / src/ (saved_game.cpp saved_game.hpp): add [resource] tag simlar to mp modifications. https://github.com/wesnoth/wesnoth/commit/d3652e1b6d4be59108d0a017d43b56002f826438 20160119 12:24:50< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd 2459e7db10a5 / / (14 files in 5 dirs): This reworks the hotkey system to rely on keycodes. https://github.com/wesnoth/wesnoth/commit/2459e7db10a5f5437e30279ab6952bd9ad9a9123 20160119 12:24:52< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd 56eb59df5ede / / (5 files in 3 dirs): Replace keycode with scancode and fix broken keybindings. https://github.com/wesnoth/wesnoth/commit/56eb59df5edeedb824e9e9ccfed36370ab7b62f2 20160119 12:24:54< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd 05c1d8a5a97c / src/hotkey/hotkey_item.cpp: Incorporate review feedback from Spindel. https://github.com/wesnoth/wesnoth/commit/05c1d8a5a97c208a57960afb3e711d6300f9b933 20160119 12:24:56< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd e4ddf68c64a9 / src/hotkey/hotkey_item.cpp: Fix potential null pointer being returned from "create hotkey" https://github.com/wesnoth/wesnoth/commit/e4ddf68c64a93f576ee7483ff2247ec783872f00 20160119 12:24:58< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd a7cb3f871da4 / src/hotkey/ (hotkey_item.cpp hotkey_item.hpp hotkey_preferences_display.cpp): Fix mods in hotkey creation and scope matching in bindings_equal. https://github.com/wesnoth/wesnoth/commit/a7cb3f871da44c483f3ce14e10dc25f8cf29cb8c 20160119 12:25:00< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd 7943cf034c2a / src/hotkey/hotkey_item.cpp: Incorporate new review feedback from Spindel. https://github.com/wesnoth/wesnoth/commit/7943cf034c2a42620a0dabfe8cbb56b36569af02 20160119 12:25:02< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd cc28414c4be6 / src/ (hotkey/hotkey_item.cpp hotkey/hotkey_item.hpp sdl/keyboard.cpp sdl/keyboard.hpp): Fix presentation bug of keyboard hotkeys and incorporate review feedback. https://github.com/wesnoth/wesnoth/commit/cc28414c4be62542d1ed411ee7682a7596ecec79 20160119 12:25:04< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd 91cd168ec82d / / (14 files in 5 dirs): Merge pull request #466 from aginor/hotkeyrewrite https://github.com/wesnoth/wesnoth/commit/91cd168ec82de530244170568d99e46ac940ac30 20160119 12:25:06< irker269> wesnoth: Andreas Löf wesnoth:asio_wesnothd a4b957c347db / / (8 files in 4 dirs): Merge branch 'master' into sdl2 https://github.com/wesnoth/wesnoth/commit/a4b957c347db782b94b14d6a3e33dbc6d6b83930 20160119 12:25:08< irker269> wesnoth: Celtic Minstrel wesnoth:asio_wesnothd c35387982cfa / / (8 files in 6 dirs): Generalize Quit to Desktop hotkey so it works in-game and at titlescreen https://github.com/wesnoth/wesnoth/commit/c35387982cfa5428e1abfa5848f07d50cce032ce 20160119 12:25:10< irker269> wesnoth: Celtic Minstrel wesnoth:asio_wesnothd 59f6b7e720b7 / src/ (controller_base.cpp hotkey/command_executor.cpp hotkey/hotkey_command.cpp): Move special-case handling of Escape key used to quit game https://github.com/wesnoth/wesnoth/commit/59f6b7e720b746cfb53d0870514482cfff3590b3 20160119 12:25:11-!- mode/#wesnoth-dev [+q *!*@uruz.ai0867.net] by ChanServ 20160119 12:25:11-ChanServ:#wesnoth-dev- loonycyborg quieted *!*@uruz.ai0867.net 20160119 12:48:47-!- irker269 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20160119 12:49:53-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 20160119 12:50:34-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 12:52:04-!- Kwandulin [~Miranda@p200300760F69244CC06D37C019BAF762.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160119 12:59:36-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20160119 13:07:30-!- mode/#wesnoth-dev [-q *!*@uruz.ai0867.net] by ChanServ 20160119 13:35:55-!- louis94 [~~louis94@16.152-243-81.adsl-dyn.isp.belgacom.be] has joined #wesnoth-dev 20160119 14:03:36-!- travis-ci [~travis-ci@ec2-54-145-146-5.compute-1.amazonaws.com] has joined #wesnoth-dev 20160119 14:03:37< travis-ci> wesnoth/wesnoth#8260 (asio_wesnothd - 7666030 : loonycyborg): The build has errored. 20160119 14:03:37< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/103329312 20160119 14:03:37-!- travis-ci [~travis-ci@ec2-54-145-146-5.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160119 14:50:29-!- Appleman1234 [~Appleman1@KD119104014150.au-net.ne.jp] has quit [Ping timeout: 265 seconds] 20160119 14:54:48-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has joined #wesnoth-dev 20160119 14:58:08-!- prkc [~prkc@gateway/vpn/privateinternetaccess/prkc] has quit [Ping timeout: 272 seconds] 20160119 15:00:26-!- aidanhs_ [~aidanhs@81.4.110.234] has quit [Ping timeout: 240 seconds] 20160119 15:17:20-!- Kwandulin [~Miranda@p200300760F69244CB5D015F7B48D78D2.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 15:17:43-!- prkc [~prkc@46.166.190.196] has joined #wesnoth-dev 20160119 15:52:38< Rhonda> Btw., I just booked my flight for FOSDEM. :) 20160119 16:11:20-!- gfgtdf [~chatzilla@f054171105.adsl.alicedsl.de] has joined #wesnoth-dev 20160119 16:12:40-!- louis94 [~~louis94@16.152-243-81.adsl-dyn.isp.belgacom.be] has quit [Ping timeout: 260 seconds] 20160119 16:23:12-!- louis94 [~~louis94@16.152-243-81.adsl-dyn.isp.belgacom.be] has joined #wesnoth-dev 20160119 16:24:35-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 16:24:51-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160119 16:24:58-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 16:33:11-!- boucman_work [~jrosen@wesnoth/developer/boucman] has quit [Ping timeout: 260 seconds] 20160119 16:36:05-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 20160119 16:36:35-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 16:50:32-!- Kwandulin [~Miranda@p200300760F69244CB5D015F7B48D78D2.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160119 17:04:43< gfgtdf> Aginor: you know how to make a gui2 dialog automatically slose itself when the window resizes? 20160119 17:10:06< gfgtdf> close* 20160119 17:11:37-!- Kwandulin [~Miranda@p200300760F69244CC59B6DE06AB000B2.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 17:24:26-!- louis94 [~~louis94@16.152-243-81.adsl-dyn.isp.belgacom.be] has quit [Ping timeout: 240 seconds] 20160119 17:25:29-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 20160119 17:25:51-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 17:32:33-!- atarocch [~atarocch@81-208-118-75.ip.fastwebnet.it] has quit [Remote host closed the connection] 20160119 17:39:38-!- zombah [~zombah@2a02:28:3:1:214:4fff:fe47:5920] has quit [Quit: Leaving] 20160119 17:40:32-!- EdB [~edb@89-158-11-138.rev.numericable.fr] has joined #wesnoth-dev 20160119 17:58:31-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160119 18:03:11-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 18:13:43< Aginor> gfgtdf: why would you want that? - to do it you have to listen for window events and invoke the close-code, it might be rather hard though as I don't think they have the concept of anything else closing them 20160119 18:14:57< gfgtdf> Aginor: becasue that the normal behviour for context menus and other menus. 20160119 18:15:34< Aginor> are they implemented as a dialog? 20160119 18:15:56< celticminstrel> I think menus are currently a GUI1 dialog. 20160119 18:16:10< celticminstrel> I seem to recall the inherit from listbox or something like that. 20160119 18:16:13< celticminstrel> ^they 20160119 18:16:16< Aginor> they're a special class in GUI1, not dialogs 20160119 18:16:57< celticminstrel> Come to think of it, that would make them a GUI1 widget, not a GUI1 dialog, wouldn't it... 20160119 18:17:08< gfgtdf> imn talking about gui2 dialogs.... 20160119 18:17:11< gfgtdf> i*m 20160119 18:17:48< Aginor> celticminstrel: yes 20160119 18:19:05< Aginor> gfgtdf: to answer you question; extend the listening for window events and try to do something suitable when the event is received. 20160119 18:20:55< gfgtdf> Aginor: is there a SDL event that is fired whenever the winodw is resozed (unrelated to whether its caused by toggeling fullscreen, maximizing the window or by normal rezire) 20160119 18:21:08< Aginor> gfgtdf: yes 20160119 18:21:54< gfgtdf> Aginor: ok think i found it 20160119 18:22:06< Aginor> have a look at the gui2 event code, I beleive that the window class registers as a handler already 20160119 18:25:20-!- prkc [~prkc@46.166.190.196] has quit [Ping timeout: 255 seconds] 20160119 18:27:44-!- louis94 [~~louis94@16.152-243-81.adsl-dyn.isp.belgacom.be] has joined #wesnoth-dev 20160119 18:33:54-!- Lohengramm [sid1929@gateway/web/irccloud.com/x-zsatrdxkjazsgtdr] has quit [Ping timeout: 255 seconds] 20160119 18:35:43-!- Lohengramm [sid1929@gateway/web/irccloud.com/x-ryghzmvscsamjtxx] has joined #wesnoth-dev 20160119 18:35:46-!- horrowind [~Icedove@2a02:810a:8b00:1a54:21b:fcff:fee3:c3ff] has joined #wesnoth-dev 20160119 18:39:26-!- prkc [~prkc@gateway/vpn/privateinternetaccess/prkc] has joined #wesnoth-dev 20160119 18:40:07-!- louis94 [~~louis94@16.152-243-81.adsl-dyn.isp.belgacom.be] has quit [Ping timeout: 260 seconds] 20160119 18:45:13-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has joined #wesnoth-dev 20160119 19:15:42-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160119 19:16:08-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 19:16:12-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160119 19:16:34-!- travis-ci [~travis-ci@ec2-54-145-146-5.compute-1.amazonaws.com] has joined #wesnoth-dev 20160119 19:16:35< travis-ci> gfgtdf/wesnoth-old#578 (gui2_combobox - 50c654b : gfgtdf): The build failed. 20160119 19:16:35< travis-ci> Build details : https://travis-ci.org/gfgtdf/wesnoth-old/builds/103417198 20160119 19:16:35-!- travis-ci [~travis-ci@ec2-54-145-146-5.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160119 19:16:53< gfgtdf> vultraz: i made a pr for gui2 comboboxes. 20160119 19:17:48< vultraz> gfgtdf: what version of msvc do you use? 20160119 19:18:00< gfgtdf> vultraz: maybe you can use it in the advanced tab, in any case i will merge it sooner or later to make it avaialbe for lua 20160119 19:18:29< vultraz> gfgtdf: if we don't really use pre-2013 msvc we could just start using c++11 20160119 19:18:47< gfgtdf> vultraz: 2010, mostlikley i can update it, but i cant ensure anything before i actualyl manages to build boost and the other dependencies with a newer version 20160119 19:18:59< vultraz> hm ok 20160119 19:21:12< vultraz> gfgtdf: is there a testcase in the pr i can look at? 20160119 19:21:46-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 19:22:48< vultraz> oh titlescreen 20160119 19:22:50< vultraz> ok 20160119 19:24:50< vultraz> ima test 20160119 19:41:17< vultraz> C:\Users\Charles\Documents\wesnoth-git\src\gui\dialogs\drop_down_list.cpp|71|error: no matching function for call to 'gui2::tlistbox::set_callback_item_change(gui2::tdrop_down_list::pre_show(CVideo&, gui2::twindow&)::)'| 20160119 19:41:30< vultraz> hm 20160119 19:41:37< vultraz> i guess bc Im not building in c++11 mode 20160119 19:42:19-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160119 19:44:40< vultraz> gfgtdf: are the options supposed to have a hover effect? 20160119 19:51:52-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 19:52:43< vultraz> gfgtdf: also the last option in the testcase (ABCD) goes a little over the edge of the box 20160119 19:53:01< vultraz> gfgtdf: also maybe you should make it so the minimum size is the width of the button 20160119 19:53:11< vultraz> since that would allow for more space 20160119 20:02:36< gfgtdf> vultraz: they currely dont have, but we cna easily enable one by using a cusont lixtvix definition 20160119 20:02:54< gfgtdf> vultraz: i i also noticed the over teh edge issue 20160119 20:03:00< gfgtdf> vultraz: i dont eally know what causes that 20160119 20:03:16< gfgtdf> vultraz: seems to be a bug in teh listbox or togglepanel code 20160119 20:06:38< gfgtdf> vultraz: ok i pushed a commit to make the list with at lest the buttons with 20160119 20:07:56< vultraz> hm it still seems to be a little bit less 20160119 20:08:01< vultraz> but much better :) 20160119 20:10:20< vultraz> gfgtdf: ok I fixed the over the edge issue 20160119 20:10:26-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160119 20:11:03< vultraz> gfgtdf: can you commit this http://pastebin.com/C8dBCCY4 20160119 20:11:11< vultraz> also makes the text left-aligned 20160119 20:13:25< vultraz> gfgtdf: edited the paste with a small change to button width 20160119 20:13:32< vultraz> adding 5 seems to make it flush 20160119 20:17:34-!- louis94 [~~louis94@16.152-243-81.adsl-dyn.isp.belgacom.be] has joined #wesnoth-dev 20160119 20:18:25-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 20:18:41-!- iceiceice [~chris@wesnoth/developer/iceiceice] has quit [Quit: Leaving] 20160119 20:19:33-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Read error: Connection reset by peer] 20160119 20:25:33-!- Kwandulin [~Miranda@p200300760F69244CC59B6DE06AB000B2.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160119 20:35:56< gfgtdf> vultraz: what do you mean by flush ? 20160119 20:36:20< vultraz> gfgtdf: even with your commit the menu was still a little thinner than the button 20160119 20:36:30< vultraz> so I added 5 so it lined up exactly 20160119 20:43:11-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 20:47:41< gfgtdf> vultraz: committed that 20160119 20:47:50< gfgtdf> vultraz: i i dotn know why it was still smaller 20160119 20:47:57 * celticminstrel wishes gfgtdf would spellcheck his commit messages. 20160119 20:48:09< gfgtdf> vultraz: i more or less literly said menu_width=button_width 20160119 20:48:09-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 265 seconds] 20160119 20:48:47< celticminstrel> Flush here means "touching the edge"? 20160119 20:48:49-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 20:57:01-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160119 20:57:02-!- boucman [~rosen@wesnoth/developer/boucman] has quit [Remote host closed the connection] 20160119 21:00:08-!- travis-ci [~travis-ci@ec2-54-145-146-5.compute-1.amazonaws.com] has joined #wesnoth-dev 20160119 21:00:10< travis-ci> gfgtdf/wesnoth-old#579 (gui2_combobox - 5b7a2e3 : gfgtdf): The build is still failing. 20160119 21:00:10< travis-ci> Build details : https://travis-ci.org/gfgtdf/wesnoth-old/builds/103435167 20160119 21:00:10-!- travis-ci [~travis-ci@ec2-54-145-146-5.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160119 21:23:39-!- travis-ci [~travis-ci@ec2-54-161-244-128.compute-1.amazonaws.com] has joined #wesnoth-dev 20160119 21:23:40< travis-ci> gfgtdf/wesnoth-old#580 (gui2_combobox - 1ad3b40 : gfgtdf): The build is still failing. 20160119 21:23:40< travis-ci> Build details : https://travis-ci.org/gfgtdf/wesnoth-old/builds/103442401 20160119 21:23:40-!- travis-ci [~travis-ci@ec2-54-161-244-128.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160119 21:25:41-!- EdB [~edb@89-158-11-138.rev.numericable.fr] has quit [Quit: Konversation terminated!] 20160119 21:28:34-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20160119 21:29:33-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160119 21:31:23-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 260 seconds] 20160119 21:31:23-!- wedge010 is now known as wedge009 20160119 21:36:50-!- horrowind [~Icedove@2a02:810a:8b00:1a54:21b:fcff:fee3:c3ff] has quit [Quit: horrowind] 20160119 21:39:31< gfgtdf> vultraz: any thought before i merge the combobox patch ? 20160119 21:46:48-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20160119 21:51:37-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.] 20160119 21:54:20-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 22:29:24-!- travis-ci [~travis-ci@ec2-54-167-167-45.compute-1.amazonaws.com] has joined #wesnoth-dev 20160119 22:29:25< travis-ci> gfgtdf/wesnoth-old#582 (gui2_combobox - eb4b8ea : gfgtdf): The build is still failing. 20160119 22:29:25< travis-ci> Build details : https://travis-ci.org/gfgtdf/wesnoth-old/builds/103464542 20160119 22:29:25-!- travis-ci [~travis-ci@ec2-54-167-167-45.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160119 22:47:42< vultraz> gfgtdf: you should rebase and remove the titlescreen test commit 20160119 22:48:17< celticminstrel> And spellcheck your commit messages. 20160119 22:48:50< vultraz> gfgtdf: also um... are arrows supposed to appear? because they don't 20160119 22:49:29< celticminstrel> ...also, is it still failing? 20160119 22:49:34< vultraz> gfgtdf: also when you fixed drop_down_list.cfg the indent got screwed up (spaced not tabs in the lines I gave you) 20160119 23:00:00< gfgtdf> vultraz: which arrows? 20160119 23:00:38< vultraz> button_drobbox.cfg:38 20160119 23:02:23< gfgtdf> vultraz: hmm right, thex where there in the first version, but vanished for some unkown reason. I actualyl think it isnt that bad becasue they didnt look that good anyway. 20160119 23:03:29< vultraz> gfgtdf: i was thinking the arrows in icons/arrows/short_arrow_left_30 would look better 20160119 23:03:39< vultraz> gfgtdf: but scale it down 50% 20160119 23:07:49-!- midzer [~quassel@p4FFCE8C5.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160119 23:08:04< shadowm> Sorry, the 1.13.x add-ons server didn't come backup after the server restart because I messed up the init script. It's all fixed now. 20160119 23:08:08< shadowm> back up 20160119 23:08:55< shadowm> (OTOH exactly 0 people noticed its absence.) 20160119 23:16:45-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160119 23:22:54-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 272 seconds] 20160119 23:28:16-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160119 23:39:30< vultraz> good god 20160119 23:41:00< vultraz> nvm 20160119 23:41:20< vultraz> I think it's my version of boost that I built that's throwing those warning.. 20160119 23:41:32< vultraz> gfgtdf: I think you forgot a boost bind include 20160119 23:53:47< gfgtdf> vultraz: hmm it compiled on my local machine. Will add it anyway --- Log closed Wed Jan 20 00:00:10 2016