--- Log opened Fri Mar 04 00:00:58 2016 20160304 00:06:51-!- stikonas_ [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160304 00:10:11-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Ping timeout: 248 seconds] 20160304 00:11:01-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160304 00:25:55-!- travis-ci [~travis-ci@ec2-54-196-63-243.compute-1.amazonaws.com] has joined #wesnoth-dev 20160304 00:25:56< travis-ci> wesnoth/wesnoth#8724 (master - 7ac79a4 : ln-zookeeper): The build passed. 20160304 00:25:56< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/113507908 20160304 00:25:56-!- travis-ci [~travis-ci@ec2-54-196-63-243.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160304 00:33:45-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 00:38:07-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 252 seconds] 20160304 00:44:09< celticminstrel> So does anyone object to me merging PR611 manually.? 20160304 00:45:43< celticminstrel> (Or non-manually, if you don't think squashing is worth it.) 20160304 00:46:51-!- stikonas_ [~gentoo@wesnoth/translator/stikonas] has quit [Remote host closed the connection] 20160304 00:47:27-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160304 00:48:28-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 00:50:14-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Read error: No route to host] 20160304 00:50:19-!- Greg-Bog_ [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 00:51:23-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20160304 00:55:16-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 268 seconds] 20160304 00:55:16-!- wedge010 is now known as wedge009 20160304 01:25:26-!- LovCAPONE [~someuser@modemcable184.138-20-96.mc.videotron.ca] has left #wesnoth-dev [] 20160304 01:28:36-!- Greg-Bog_ [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160304 01:30:50-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has joined #wesnoth-dev 20160304 01:40:36-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 01:45:03-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 240 seconds] 20160304 02:05:46-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20160304 02:07:06-!- travis-ci [~travis-ci@ec2-23-23-34-58.compute-1.amazonaws.com] has joined #wesnoth-dev 20160304 02:07:07< travis-ci> wesnoth/wesnoth#8725 (master - e2c4bc6 : Celtic Minstrel): The build passed. 20160304 02:07:07< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/113509627 20160304 02:07:07-!- travis-ci [~travis-ci@ec2-23-23-34-58.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160304 02:07:45-!- travis-ci [~travis-ci@ec2-23-23-34-58.compute-1.amazonaws.com] has joined #wesnoth-dev 20160304 02:07:46< travis-ci> wesnoth/wesnoth#8726 (master - dbebd45 : Ignacio R. Morelle): The build passed. 20160304 02:07:46< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/113511263 20160304 02:07:46-!- travis-ci [~travis-ci@ec2-23-23-34-58.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160304 02:13:34-!- mjs-de [~mjs-de@f049232232.adsl.alicedsl.de] has joined #wesnoth-dev 20160304 02:35:41-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20160304 02:35:47-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20160304 02:47:46-!- mjs-de [~mjs-de@f049232232.adsl.alicedsl.de] has quit [Remote host closed the connection] 20160304 02:49:32-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20160304 03:01:12-!- travis-ci [~travis-ci@ec2-107-20-125-184.compute-1.amazonaws.com] has joined #wesnoth-dev 20160304 03:01:13< travis-ci> wesnoth/wesnoth#8727 (master - fab6633 : Celtic Minstrel): The build has errored. 20160304 03:01:13< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/113513518 20160304 03:01:13-!- travis-ci [~travis-ci@ec2-107-20-125-184.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160304 03:09:08-!- irker716 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20160304 03:27:51< vultraz> shadowm: I'm curious - wesnoth ships a lot of utility functions on its own, either language helpers like MAKE_ENUM or the lexical_cast implementations or general helpers like the contents of serialization/. Why is this? Was this a design decision to deal with the inefficiencies of pre-c++11, or is there simply no generic library for these things 20160304 03:28:05< vultraz> or, is there, but there was a decision to ship our own functions 20160304 03:29:35< shadowm> I became a developer just about the same time we started adopting Boost piecewise. 20160304 03:29:55< celticminstrel> lexical_cast could be easily swapped out for the Boost version, I believe. 20160304 03:30:02< celticminstrel> I think it's pretty much identical, isn't it? 20160304 03:30:11< shadowm> One specific part of your question is rather silly. It's pretty obvious that C++11 did not exist back in 2007 (let alone 2003). 20160304 03:30:18< celticminstrel> Hehe. 20160304 03:30:27< celticminstrel> [Mar 03@7:44:09pm] celticminstrel: So does anyone object to me merging PR611 manually.? 20160304 03:30:28< celticminstrel> [Mar 03@7:45:43pm] celticminstrel: (Or non-manually, if you don't think squashing is worth it.) 20160304 03:30:46< shadowm> I've never used Boost's lexical_cast. I've explained this before. 20160304 03:31:39< shadowm> I'm allergic to Boost's template and macro-heavy code and the consequences for debugging (not to mention compile times). The legacy util.hpp lexical_cast is (to my knowledge) identical in functionality to Boost's for the data types we need to support. 20160304 03:32:14< shadowm> Semantics may differ but thus far nobody has brought this up as a concern. 20160304 03:32:16< vultraz> Right, C++11 was not around - but if someone wanted to do similar things before it existed, they would need a custom helper function 20160304 03:32:25< celticminstrel> I think the semantics are basically identical. 20160304 03:32:25< shadowm> Obviously. 20160304 03:33:11< celticminstrel> Though I could be wrong. I'm not too sure what all these specializations really do. 20160304 03:33:39< shadowm> Skip libstdc++. 20160304 03:33:49< celticminstrel> ? 20160304 03:34:27< vultraz> but we ship a *lot* of utility functions, not just for c++11-ish stuff 20160304 03:34:29< shadowm> For example, we can call strtol() directly instead of calling the C++ runtime (which may or may not use strtol() itself). 20160304 03:34:48< shadowm> vultraz: Yes, bear in mind that many of them aren't part of C++11 or C++14. 20160304 03:35:01< celticminstrel> MAKE_ENUM for example. 20160304 03:35:01< shadowm> Many of them are also more specifically targeted for our own use cases. 20160304 03:35:23< shadowm> For example, we don't implement the full POSIX glob matching grammar, and there isn't a glob matching function in the C++14 standard library. 20160304 03:35:24< celticminstrel> Boost doesn't have anything like MAKE_ENUM either. 20160304 03:35:41< shadowm> But our custom glob matcher works just fine for our purposes. 20160304 03:35:48< celticminstrel> Huh? Why is there a glob matcher? 20160304 03:36:02< shadowm> Because we use glob patterns in a few places, including campaignd. 20160304 03:36:07< celticminstrel> Huh. 20160304 03:36:09< shadowm> And the add-ons client. 20160304 03:36:22< shadowm> And wesnothd. 20160304 03:37:27< celticminstrel> Do either of you have an opinion on merging PR611? 20160304 03:37:57< shadowm> We *could* use the POSIX libc glob matching functions, but: 1) they are mandated by POSIX.1-2001, which Windows doesn't implement; 2) they have additional syntax which we don't want or need and could potentially confuse people. 20160304 03:38:27< shadowm> That's just one example from the serialization module. 20160304 03:39:05< shadowm> There _are_ quite a few functions also found there that could be replaced with Boost equivalents now that we've adopted Boost, but again, why bother? 20160304 03:39:34< celticminstrel> "Don't fix what's not broken"? 20160304 03:40:05< shadowm> Exactly. 20160304 03:40:36< shadowm> The kind of pseudo-perfectionism that would prompt people to worry about ancillary functions like that would be better aimed at things like our SHA1 and MD5 implementations. 20160304 03:40:57< shadowm> (Which _have_ caused issues in the past.) 20160304 03:41:05< vultraz> Mostly what I'm wondering is if early on wesnoth had a policy to rely on as few externals as possible. 20160304 03:41:15< shadowm> We've always had that policy. 20160304 03:41:24< shadowm> That hasn't stopped being a thing that is true or anything. 20160304 03:41:42< shadowm> That's why people are required to discuss new dependencies in the mailing list before landing the relevant code in production. 20160304 03:41:49< ancestral> vultraz: Hey, we have our own GUI, right? ;-) 20160304 03:42:08< celticminstrel> unit_formula_manager is kinda weird. 20160304 03:42:26< vultraz> ancestral: that's one thing I think might not have been the best idea to do ourselves :P 20160304 03:42:40< shadowm> (It may seem redundant right now, but it actually isn't. Packagers can also use ahead-of-time information in cases like this, or even provide useful feedback regarding support status, etc.) 20160304 03:43:05< ancestral> (Right; think this was discussed before; there were few compelling, viable alternatives at the time) 20160304 03:43:22< shadowm> But yes, when I became a developer, pulling in our first Boost dependency -- Boost.Iostreams -- was seen as quite a revolutionary move. 20160304 03:43:56< shadowm> And it was only considered out of necessity, because it kept the garbage out of sight. 20160304 03:44:13< shadowm> The garbage behind the implementation of zlib support, that is. 20160304 03:45:30< shadowm> Of course, some people (mostly non-devs) were not impressed with the move, and even to this day I still see some of them posting in our forums and blaming Boost for package size bloat (?????????). 20160304 03:45:52< vultraz> whut 20160304 03:45:59< shadowm> I can't say I was too impressed either when we kept pulling in more Boost headers. 20160304 03:46:31< shadowm> And using more and more templates. 20160304 03:46:33< shadowm> The compile time increases became rapidly unmanageable for my laptop at the time. 20160304 03:46:38< celticminstrel> Well, not all of the Boost libraries are header-only. 20160304 03:46:48< shadowm> celticminstrel: Source code package sizes. 20160304 03:46:52< celticminstrel> Oh. 20160304 03:47:03< celticminstrel> But the Boost headers aren't included there, right? 20160304 03:47:18< celticminstrel> Disregarding GUI2, I personally don't think the use of templates in Wesnoth (as far as I've seen) is a problem. 20160304 03:47:25< shadowm> No (although we used to ship a modified Boost.Foreach for one or two stable series, don't ask me why). 20160304 03:47:53< celticminstrel> I've noticed one weird thing about the AI code - for example, it seems to allow the possibility that a [stage] tag actually defines several stages at once. 20160304 03:48:02< shadowm> vultraz: https://forums.wesnoth.org/viewtopic.php?p=588049#p588049 20160304 03:48:11< vultraz> BOOST_FOREACH can be converted to range-for, can't it? 20160304 03:48:17< celticminstrel> vultraz: Yes. 20160304 03:48:23< shadowm> Sometimes. 20160304 03:48:31< shadowm> Most of the time. 20160304 03:48:31< vultraz> will that be something we do when we completely move to c++11? 20160304 03:48:39< celticminstrel> BOOST_FOREACH(A, B) can be converted to for(A : B). 20160304 03:48:43< celticminstrel> shadowm: What are the exceptions? 20160304 03:48:51< shadowm> I'm not really sure. The thing is, AFAICT range-for does not support an iterator pair for the range argument. 20160304 03:49:22< shadowm> The config class relies on that idiom for a few operations. 20160304 03:49:24< celticminstrel> shadowm: Ah, it probably doesn't by default. 20160304 03:49:32< shadowm> (Not the class itself, but rather its users.) 20160304 03:50:16< celticminstrel> But you can define begin() and end() functions to make it work, I believe. 20160304 03:50:30< shadowm> Yes, but the names don't work with config. 20160304 03:50:33< vultraz> shadowm: I'm not sure how these people don't understand that a large amount of our package size is the game resources (like music) not the source code :/ 20160304 03:50:40< celticminstrel> shadowm: Huh? 20160304 03:50:47< shadowm> It supports different types of iterators, so there isn't a single begin() and a single end(). 20160304 03:50:58< vultraz> the entire src/ directory takes 15.5 MB on my disk 20160304 03:51:20< celticminstrel> shadowm: I mean define something vaguely like template T begin(pair p) {return p.first;} 20160304 03:51:21< vultraz> and that's not even what we ship 20160304 03:51:37< shadowm> Or maybe it doesn't anymore. Not sure. 20160304 03:51:40< celticminstrel> And similarly for end(). 20160304 03:52:20< shadowm> celticminstrel: Hm. So basically overloading std::begin()? 20160304 03:53:39< shadowm> vultraz: We ship src/, what are you talking about? 20160304 03:54:24< vultraz> I haven't looked at one of the package contents in ages. 20160304 03:54:37< vultraz> Just have a vague memory of looking for something in a mac package years ago and not finding it 20160304 03:54:49< shadowm> vultraz. 20160304 03:54:49< vultraz> I thought it was src/ 20160304 03:55:03< shadowm> Sorry to break it to you but, the OS X and Windows packagers are not what we ship. 20160304 03:55:07< shadowm> *packages 20160304 03:56:34< celticminstrel> shadowm: Yes, if I recall correctly. 20160304 03:56:49< shadowm> The only thing the release team ships is the source distribution tarball. Everything else is optional (yes, this includes the tier 1 builds -- I had to proceed without OS X for one release last year). 20160304 03:57:24< vultraz> When I say 'ship' I refer to the packages. 20160304 03:57:38< shadowm> There is a reason Ivanovic used to actually ban people who asked about missing binaries within the next 7 days after posting announcements. 20160304 03:58:07< vultraz> Oh, yeah, i remember that 20160304 03:58:09< shadowm> (And for all the bad things people blame me for, I was actually the only one here who ever insisted on abolishing that policy.) 20160304 03:58:30< vultraz> I always thought it was said ironically 20160304 03:58:33< vultraz> He actually banned people? 20160304 03:58:47< celticminstrel> I actually kinda like the unit_formulas stage... 20160304 03:58:59< shadowm> I'm fairly sure it was actually done once or twice. 20160304 03:59:17< vultraz> wow 20160304 03:59:25< shadowm> And regardless of that, it's not a very encouraging thing to tell your users, whether in jest or not. 20160304 03:59:43< shadowm> (It'd be impossible for an outsider to tell whether it was meant seriously anyway.) 20160304 03:59:48< vultraz> True 20160304 04:00:04< shadowm> But back in those days, OS X and Windows build availability was very hit-and-miss. 20160304 04:00:09< vultraz> I mean, the average user isn't going to want to build from the source tarball. 20160304 04:00:20< shadowm> We even went without OS X builds for several versions in a row IIRC. 20160304 04:00:25< vultraz> So without the packages, they can't play a new release. 20160304 04:00:39< celticminstrel> ^without the binary packages 20160304 04:00:48< shadowm> vultraz: The average Windows or OS X user. 20160304 04:02:34< shadowm> It'd be a grave mistake to underestimate the size and importance of our Linux userbase, considering that Linux distributions and news sites used to be our primary source of publicity back then. 20160304 04:03:18< vultraz> Right 20160304 04:04:23< shadowm> OTOH you can take that statement, turn it upside-down, and blame Linux distributions for my presence. 20160304 04:04:37< shadowm> If it weren't for openSUSE, I'd not be here! 20160304 04:05:07< celticminstrel> Why "blame"? 20160304 04:05:30< shadowm> Shrug. 20160304 04:08:26< shadowm> celticminstrel: Do you have any experience working with Boost.Thread by the way? 20160304 04:08:38< celticminstrel> Actually, yes. 20160304 04:08:50< celticminstrel> It's not a lot, but some. 20160304 04:09:45< shadowm> Does this code look sane to you? https://github.com/wesnoth/wesnoth/compare/master...shikadilord:feature/threaded-cache-ops 20160304 04:10:33 * shadowm <- no prior experience with multithreaded programming at all. 20160304 04:12:56< shadowm> Huh, I find it confusing that GitHub generates URLs for my commits with wesnoth/wesnoth at the start. :\ 20160304 04:13:42< celticminstrel> I think it considers forks to be in some sense the same repository. 20160304 04:14:19< celticminstrel> Though in that case I think it's wesnoth/wesnoth because that's what you're comparing against. 20160304 04:14:34< celticminstrel> Your code doesn't look bad. 20160304 04:15:49< shadowm> But it's not good either? :p 20160304 04:16:02< celticminstrel> I'm thinking that you don't really need to restart the thread in schedule(). 20160304 04:16:43< shadowm> Well, schedule() is called from the main thread without knowledge of whether a previously scheduled operation is running. 20160304 04:16:46< celticminstrel> If I understand correctly, it looks like you have a case where this is relevant: https://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem 20160304 04:17:05< shadowm> So schedule() is supposed to wait for a previous operation to finish first if that's the case. 20160304 04:18:03< celticminstrel> Ah, the deferred_delete_manager is sort of a singleton, I guess. 20160304 04:18:24< celticminstrel> But, is it actually necessary upon return from schedule() that the caller knows the job has already started? 20160304 04:19:06< shadowm> Not really. 20160304 04:19:47< celticminstrel> So instead of restarting the thread, you could (to use Java terminology) synchronize and push additional files to the existing worker. 20160304 04:19:59< shadowm> Yep. 20160304 04:20:20< shadowm> I'd need to figure out exactly how to achieve that. 20160304 04:20:22< celticminstrel> I don't know what the disable_interruption thing does. It sounds possibly suspicious. 20160304 04:20:36< celticminstrel> To do that you need a mutex and a condition variable, as I recall. 20160304 04:22:13< shadowm> I don't remember why I added that either, actually. 20160304 04:23:43< celticminstrel> (I'd also use deque - or even queue - instead of vector if you're going to be adding to one end and removing from the other.) 20160304 04:23:58< shadowm> Also, note that I made it so the thread is managed by a type that'll join it on destruction in order to ensure it finishes running during normal termination of the program. 20160304 04:24:09< celticminstrel> I saw that. 20160304 04:24:21< celticminstrel> It'll join at static deconstruction time, but that's probably okay. 20160304 04:24:22< shadowm> AFAICT the goal was achieved, I'm just unsure if this is the correct idiom to achieve it. 20160304 04:25:04< shadowm> (I did some tests with a multi-gigabyte saves dir to make sure.) 20160304 04:25:40< celticminstrel> Whoa, how many files do you need to get such a big saves dir. 20160304 04:26:31< shadowm> s/saves/cache/ 20160304 04:26:38< celticminstrel> Oh. 20160304 04:26:50< celticminstrel> Still seems a bit impressive though. 20160304 04:26:53< celticminstrel> But less so. 20160304 04:26:53< shadowm> I just took garbage from elsewhere in my home dir and made n copies of it for every test. 20160304 04:27:14< celticminstrel> Makes sense. 20160304 04:28:17< celticminstrel> With a producer/consumer pattern you wouldn't use BOOST_FOREACH, just while(!files.empty()). 20160304 04:28:44< shadowm> I don't think the exact time at which the destructor gets called matters because the thread doesn't reference any variables that don't belong to its class. 20160304 04:29:06< shadowm> At least, that was the logic behind making the whole thing self-contained like that. 20160304 04:29:08-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 04:29:34< celticminstrel> The only possible way I can see that it could matter is if delete_directory() references some variables that are destroyed first. 20160304 04:29:35< shadowm> Oh right, it calls the fs API, but I also checked to make sure the functions involved don't use static variables. 20160304 04:29:55< celticminstrel> Ah, I see you even anticipated that possibility. :) 20160304 04:29:58< shadowm> So unless I overlooked something... (which isn't unlikely). 20160304 04:30:13< celticminstrel> Yeah. I think it should be fine. 20160304 04:30:50< shadowm> Okay, there's one thing that isn't necessarily clean: the logger API calls. 20160304 04:31:27< shadowm> ERR_FS, LOG_FS, etc. obviously reference static variables. :\ 20160304 04:31:44< celticminstrel> Oh right. 20160304 04:31:57< celticminstrel> I was going to say they're static variables in the same file, but that's ERR_CACHE and LOG_CACHE. 20160304 04:32:30< celticminstrel> I don't really know how the logging API works, so I couldn't say if that's a problem. 20160304 04:33:13< shadowm> It is a problem in a hypothetical scenario where the variables involved are destroyed before the deferred_delete_worker instance. 20160304 04:33:33-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 246 seconds] 20160304 04:33:36< celticminstrel> Unless they're reference-counted or something. 20160304 04:33:44-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has quit [Ping timeout: 250 seconds] 20160304 04:33:49< celticminstrel> Maybe. 20160304 04:33:51< celticminstrel> I dunno. 20160304 04:34:34< shadowm> #define LOG_STREAM(a, b) if (lg::a.dont_log(b)) ; else lg::a(b) 20160304 04:34:36< shadowm> #define LOG_STREAM(a, b) if (lg::a.dont_log(b)) ; else lg::a(b) 20160304 04:34:43< shadowm> #define LOG_FS LOG_STREAM(info, log_filesystem) 20160304 04:34:59< shadowm> So not only it references a variable local to filesystem_boost.o, but also another from log.o. Double the trouble! 20160304 04:35:51< shadowm> (And yes, that dont_log() method _really_ needs to access member variables.) 20160304 04:37:21-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has joined #wesnoth-dev 20160304 04:37:33< shadowm> I suppose a solution would be to add a way to query whether the logging facility is (probably) being destroyed, like a flag somewhere near the top of log.o. 20160304 04:37:55< shadowm> But that's not good enough here because of the second thread. 20160304 04:38:39< celticminstrel> I'm not entirely sure what it does, but I usually mark anything that might be accessed from multiple threads as volatile. 20160304 04:38:44< shadowm> It may pass the check and initiate the call to filesystem::delete_directory() just as the logging facility's destruction has been initiated. 20160304 04:39:02< shadowm> (And the destructor that joins the thread might not have been called yet.) 20160304 04:40:01< shadowm> Furthermore, it shouldn't have to have special knowledge of the fs API's dependency on the logging functionality. 20160304 04:41:19< shadowm> So I really need to figure out a way to avoid the issue altogether and not leave the thread running (or join it) during static destruction. 20160304 04:42:05< shadowm> AFAIK volatile qualification just marks variable accesses as unoptimizable to eliminate compiler-induced surprises. 20160304 04:42:59< shadowm> "Every access (read or write operation, member function call, etc.) on the volatile object is treated as a visible side-effect for the purposes of optimization (that is, within a single thread of execution, volatile accesses cannot be reordered or optimized out. This makes volatile objects suitable for communication with a signal handler, but not with another thread of execution, see std::memory_order)." 20160304 04:43:22< shadowm> From http://en.cppreference.com/w/cpp/language/cv . 20160304 04:43:58< celticminstrel> You could do something like... make line 442 a pointer, then declare the actual variable in main() and assign to said pointer. (Maybe with a local extern declaration. >_> ) 20160304 04:45:03< shadowm> That'd be a first. Our main() doesn't have knowledge about any singletons. 20160304 04:45:36< shadowm> (With the glaring exception of lg::early_log_file_setup() call, which is responsible for one.) 20160304 04:46:30< celticminstrel> Well, I'm not saying it's a good or "elegant" solution, but it's a possibility. 20160304 04:46:48< shadowm> OTOH maybe it does make sense to delegate the responsibility to whoever will end up taking care of running the automatic cache cleanup on startup. 20160304 04:47:12< shadowm> Like quote do_gameloop() end quote. 20160304 04:50:28< shadowm> Anyway, thanks! This is exactly the kind of feedback I wanted. Every minor comment makes oneself question the design, which is really helpful when it comes to matters like these. 20160304 04:50:45< celticminstrel> No problem. 20160304 04:51:10< shadowm> Now I just need to deal with this: https://github.com/wesnoth/wesnoth/blob/master/src/log_windows.cpp#L319 20160304 04:51:37 * celticminstrel has no idea what that is. 20160304 04:51:47< shadowm> Another logging facility call during static destruction. 20160304 04:52:50< shadowm> And since the file is log_windows.o, I'd say the odds that it'll be called immediately before or immediately after log.o's static variables are destroyed are pretty high. 20160304 04:53:18< shadowm> Depending on the linker's file ordering preference. 20160304 04:53:47< shadowm> And symbol ordering preference. 20160304 04:54:14-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20160304 05:01:47-!- irker576 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20160304 05:01:47< irker576> wesnoth: Ignacio R. Morelle wesnoth:master 726f4b477d3f / src/log_windows.cpp: log/windows: Don't call logging facilities during static var destruction https://github.com/wesnoth/wesnoth/commit/726f4b477d3f2ad4ce65075d519dfe7fd9810929 20160304 05:03:09< celticminstrel> ...are they safe to call during static initialization? 20160304 05:03:38< shadowm> Not at all. 20160304 05:04:30< shadowm> The same problem applies. While the log domains are defined on a file-by-file basis, the stock logging macros include a check on global variables which are provided by log.o only. 20160304 05:04:43-!- Waste [~Cracker@blk-138-75-91.eastlink.ca] has joined #wesnoth-dev 20160304 05:07:37< shadowm> lg::err, lg::warn, etc. 20160304 05:08:31< shadowm> :| 20160304 05:08:48< shadowm> Actually, if this is the case, why did we bother moving log domains to individual files? 20160304 05:09:35< shadowm> There's no point if we still have to poke the centralized logger variables. 20160304 05:10:40< celticminstrel> If lg::err etc were function-statics instead of file-statics, it should be safe to use them at initialization. (But I don't think that does anything for static destruction.) 20160304 05:11:56< shadowm> I'm confused because there was a lot of fuss back in the day about solving the logging facilities' static init order problem, and now that I think about it it's only half-solved. 20160304 05:12:27< celticminstrel> It's easy to solve init order. 20160304 05:12:28< shadowm> The operation involved is a check on an int that may or may not be already initialized to a sane value. 20160304 05:12:31< celticminstrel> Like I just said. 20160304 05:13:23< shadowm> But in order to make them function-local we'd need to rethink the whole logging facility's code. 20160304 05:13:24< celticminstrel> I think that solution actually makes destruction order harder to solve though. 20160304 05:13:34< shadowm> (Again.) 20160304 05:14:05< celticminstrel> No, all you need in order for them to be function-local statics is to change "static blah err;" to "static blah err() {static blah err; return err;}" 20160304 05:14:42< shadowm> Hm, right, that makes sense. 20160304 05:15:32< celticminstrel> Might need to return by reference, not sure. (Though that might also generate warnings in some compilers.) 20160304 05:17:59< shadowm> Okay, here's a better question: does anyone call the logging facilities during static construction still? :p 20160304 05:18:39< celticminstrel> I dunno. I just made a commit in my AI branch that does, but since it's not in master yet, I could try to find another way. 20160304 05:18:42< shadowm> In hindsight it'd have been easier to place a coding style ban on such calls during initialization/destruction. 20160304 05:19:06< celticminstrel> It's not always easy to see that a particular piece of code is during static initialization. 20160304 05:20:03< celticminstrel> I think the best way to learn if anyone logs during initialization would be to enabel all log streams and set a breakpoint on the first line of main(). 20160304 05:20:06< shadowm> I just took the pragmatic approach and checked if anyone outputs anything before the version banner with --log-debug=all. 20160304 05:20:07< celticminstrel> ^enable 20160304 05:20:16< shadowm> No-one does. 20160304 05:20:22< celticminstrel> Okay yeah, that's exactly what I just said. 20160304 05:20:37< celticminstrel> Minus the breakpoint. 20160304 05:21:34< shadowm> Well, I know _one_ log domain is written to before the version banner but still above main(). 20160304 05:22:38< shadowm> It's also the only log domain that ignores --log-=all . Hmph. 20160304 05:23:21< shadowm> Gah. 20160304 05:23:35< shadowm> vultraz, gfgtdf: What happened to the various categories we had for hotkeys? 20160304 05:24:16< celticminstrel> Replaced by the right columns, I think. 20160304 05:24:41< vultraz> yup 20160304 05:24:56< shadowm> Are you serious. 20160304 05:25:19< vultraz> yes 20160304 05:25:25< vultraz> this is a much better layout 20160304 05:25:31< vultraz> everything in one place 20160304 05:25:42< celticminstrel> It might be a good layout, but I disagree that it's best to have everything in one place. 20160304 05:25:47< shadowm> Actually, you are right. 20160304 05:25:54< shadowm> Now make the translatable strings actually meaningful for translators. 20160304 05:25:57< celticminstrel> It was already a little overwhelming in the game category, actually. 20160304 05:26:03< shadowm> label = _ "G" 20160304 05:26:13< shadowm> This could be anywhere from "game" to "goblin". 20160304 05:26:26< celticminstrel> There's the #po: comment thing, right? 20160304 05:26:39< shadowm> Yes, but I'd rather have them inline. 20160304 05:26:43-!- Waste [~Cracker@blk-138-75-91.eastlink.ca] has quit [Quit: Leaving] 20160304 05:26:44< celticminstrel> Or, add an explanation^ tag. 20160304 05:26:49< vultraz> there's a tooltip 20160304 05:27:05< shadowm> vultraz, translators don't always see the code or how strings relate to each other. 20160304 05:27:10< celticminstrel> I don't think there's any guarantee that... what shadowm said. 20160304 05:27:28< shadowm> Trust me, if there's a possibility they will fail, they _will_ fail. 20160304 05:27:32< celticminstrel> They have a somewhat arbitrarily ordered list of strings with no indication of how they relate to each other.. 20160304 05:27:44< vultraz> im in a dota match and I can't talk 20160304 05:27:47< vultraz> but yes you're right 20160304 05:27:48< shadowm> It's not entirely arbitrary as long as strings are always unique. 20160304 05:27:52< vultraz> change it if you wish 20160304 05:28:06 * shadowm hits vultraz with the squeaky mallet. 20160304 05:28:15< shadowm> If you can't talk then don't talk and come back after your game. 20160304 05:28:24< shadowm> Or just screw that game that rots your brain and come back here immediately. 20160304 05:29:01< shadowm> Trust me, either option makes far more sense than what you did just now. 20160304 05:30:30< shadowm> User message: Mandatory widget 'mp_tab' hasn't been defined. 20160304 05:30:42< shadowm> I don't get it, I only changed the ... 20160304 05:31:04< shadowm> Ah yes, I forgot I updated my build for Windows, not native. 20160304 05:31:56< shadowm> I don't feel these single-letter labels are the best idea ever but... 20160304 05:32:51< celticminstrel> I seem to recall that he wanted icons for them. 20160304 05:32:51< shadowm> Since it'll be nearly impossible to make good-looking and meaningful icons that fit the column headers, I suppose it's good enough. 20160304 05:33:01< celticminstrel> Yeah, that might be hard. 20160304 05:33:46< shadowm> I hope he didn't ask LordBob to make the icons already. :p 20160304 05:33:53< celticminstrel> I have no idea. 20160304 05:34:21< shadowm> Because really, I'd rather try this than torture an artist with the task. 20160304 05:35:50< vultraz> im dead so I'm saying no i did not 20160304 05:37:44< shadowm> You deserve that for not devoting your full attention to the game. 20160304 05:38:54< celticminstrel> I was thinking it might be nice to have some sort of filtering mechanism on the hotkey page. 20160304 05:39:27< shadowm> Okay, just for this once I'm going to ignore the fact that the dialog gets all scrolly and unusable at 800x480. 20160304 05:39:36-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 250 seconds] 20160304 05:39:44< celticminstrel> So does the gamestate inspector. 20160304 05:40:00< celticminstrel> Unusable, that is. Not all scrolly. 20160304 05:40:44< shadowm> If there's a person with a valid use case for debugging Wesnoth scenarios on a Pandora device I'll eat my pillow. 20160304 05:41:09< celticminstrel> I believe your pillow is safe. 20160304 05:41:39< shadowm> Relatedly (and this is obviously not authoritative) we should probably silently break 800x480 (but NOT 800x600) in 1.13.x to gauge audience reactions. 20160304 05:42:11< shadowm> After all, PC users wouldn't be expected to use anything less than 800x600 nowadays, and 1.13.x dropped Pandora support. 20160304 05:42:31< celticminstrel> The gamestate inspector seems to be unusable at 800x600. I thought I fixed that, but then the fix mysteriously reverted without reverting. (?) 20160304 05:43:04< celticminstrel> Maybe it's dependent on the actual content of the dialog. 20160304 05:43:08< celticminstrel> I dunno. 20160304 05:43:25< shadowm> It most certainly is. :p 20160304 05:44:02< celticminstrel> I had an idea to try to fix it, but planned to wait until the AI PR is dealt with. 20160304 05:45:13< irker576> wesnoth: Ignacio R. Morelle wesnoth:master 89e05207e921 / data/gui/default/window/preferences/02_hotkeys.cfg: gui2/tpreferences: Clearer single-letter translatable strings https://github.com/wesnoth/wesnoth/commit/89e05207e921b1de37e8284f7f614155b86250d1 20160304 05:46:12< shadowm> "I am not a robot.If you want to know about me see scrabble word generator." 20160304 05:46:23< shadowm> https://forums.wesnoth.org/viewtopic.php?f=21&p=594628#p594628 I have no words. 20160304 05:47:19< celticminstrel> Uhuh. 20160304 05:47:29< shadowm> It's at times like these that I feel the urge to create a closed public forum for showcasing absurd spam posts. 20160304 05:48:09< celticminstrel> If it weren't for the actual content of the post I might be slightly inclined to give them the benefit of the doubt for a day or so. 20160304 05:48:11-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20160304 06:02:12-!- Kwandulin [~Miranda@p200300760F0BD430893693D142112FFF.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160304 06:03:18< celticminstrel> Huh, so $(...) does use the same formula engine as FormulaAI, apparently. So I guess that means you can do things like $(abs($blah)) or $(a + b * c where a = $a, b = $b, c = $c)? 20160304 06:03:37< shadowm> Oooh, the new orb colors dialog looks good. 20160304 06:03:53< celticminstrel> :D (Though the appearance owes more to vultraz than me) 20160304 06:04:49< shadowm> And yes, $() uses the FAI formula engine, and so do GUI2 formulas. 20160304 06:06:17< celticminstrel> This also implies that there's never any need to nest $() within $() - you can eliminate the inner $'s. 20160304 06:07:01< celticminstrel> Ah, I guess the reason why that even works is because substitution is right-to-left. 20160304 06:11:23< shadowm> I've never come across nested formulas like that. 20160304 06:11:40< celticminstrel> I think I used them myself somewhere. 20160304 06:11:52-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has joined #wesnoth-dev 20160304 06:11:58< celticminstrel> But people also often use further variable substitutions within the formula, I think. 20160304 06:12:47< shadowm> They substitute WML variables within the formula, but I kind of assumed (and hope) they are interpolated in the same pass prior to running the formula. 20160304 06:13:31< celticminstrel> Like I said, interpolation runs right-to-left through the formula. So, variables within the formula are already found and substituted by the time the interpolator discovers that there's a formula substitution. 20160304 06:13:32< shadowm> As opposed to interpolating formulas recursively I mean. 20160304 06:13:39 * celticminstrel was looking at the code just a few minutes ago. 20160304 06:13:52< shadowm> Right. 20160304 06:14:07< vultraz> did you notice i made the SoF description centered 20160304 06:14:52< shadowm> No. I've not purposefully gone through the campaigns list item-by-item in ages. 20160304 06:15:03< vultraz> with a new description_alignment key 20160304 06:15:38< shadowm> Looks like I can't go through the list with the arrow keys. 20160304 06:16:04< shadowm> I assume that's an nfortunate side effect of it being a tree view. 20160304 06:16:28< celticminstrel> The advanced prefs list? 20160304 06:16:40< shadowm> The campaigns list. 20160304 06:16:44< celticminstrel> There's no hypothetical reason for a tree view to not support keyboard navigation. :/ 20160304 06:17:07< shadowm> It scrolls the whole view (slowly) instead of advancing the selection one item at a time. 20160304 06:17:39< celticminstrel> Is a tree view something different from what it sounds like, though? Why is the campaigns list a tree view? 20160304 06:17:59< shadowm> Actually, I'm not entirely sure whether it's a tree view. vultraz surely knows. 20160304 06:18:15< shadowm> Regardless, it's a thing and it's not behaving like normal GUI2 listboxes. 20160304 06:19:51< vultraz> it's a tree view 20160304 06:20:07< vultraz> in order to keep the modifications entry inside the list 20160304 06:20:13< vultraz> i could make it a listboc again and put that outside 20160304 06:20:19< vultraz> also, still in-game, but on long respawn time 20160304 06:20:39< celticminstrel> Or we could make treeviews have sensible keyboard behaviour. 20160304 06:20:51< vultraz> that too 20160304 06:20:56< vultraz> but don't expect me to do it 20160304 06:21:17< celticminstrel> Before I say any more, let me ask... is a tree view like when you have a list of items with disclosure triangles, and you click a triangle and it opens up a sublist? 20160304 06:21:23< shadowm> Modifications shouldn't be _inside_ the list. That makes them undiscoverable as hell. 20160304 06:21:39< celticminstrel> What's this about modifications? 20160304 06:22:07< shadowm> "ohh i'm going to play the last campaign -- wait what's this option hidden right at the bottom?" 20160304 06:22:23< shadowm> "i don't remember seeing it before" 20160304 06:22:44< celticminstrel> Ehhh? 20160304 06:22:46< shadowm> (The fact that it doesn't even appear until you've installed your first modification doesn'p help.) 20160304 06:23:00< celticminstrel> So uh... 20160304 06:23:17< shadowm> There's an option at the very bottom of the SP campaigns list to select MP modifications to play with. 20160304 06:23:27< shadowm> The option only appears if you have at least one such modification add-on installed. 20160304 06:23:28< celticminstrel> Huh. 20160304 06:23:40< celticminstrel> That is... a very weird place for it... 20160304 06:23:53< celticminstrel> Hiding it when you have none installed, okay, I have no problem with that. 20160304 06:24:35< vultraz> shadowm: I wanted it outside the list, actually - i remember now 20160304 06:24:45< vultraz> but having two listboxes on top of each other causes problems 20160304 06:24:51< vultraz> the )(&*@($ bottom listbox forced the top listbox to cede space 20160304 06:24:52< shadowm> Yes, and you gave me a half-baked WIP patch and I tried to fix it and gave up. 20160304 06:25:02< celticminstrel> Which is also why the gamestate inspector is broken. 20160304 06:25:16< vultraz> I could use a combobox 20160304 06:25:29< vultraz> but the dropdown list dialog would need to have support added for checkboxes 20160304 06:25:34< shadowm> It's supposed to be a multiple-choice entry. 20160304 06:25:37< shadowm> Yes. 20160304 06:25:42< celticminstrel> You can't use a combobox as it's currently implemented. 20160304 06:26:04< celticminstrel> The combobox currently implements tselectable_, implying only one can be selected. 20160304 06:26:43< celticminstrel> Maybe you could make a multiple_combobox or something that uses the same dropdown "dialog". 20160304 06:27:13< shadowm> tselectable_ doesn't support multiple selections? 20160304 06:27:28< celticminstrel> Or change the combobox implementation to do that (but also have an option to be exclusive). 20160304 06:28:11< shadowm> https://wiki.wesnoth.org/GUIWidgetInstanceWML#Listbox <- Because the has_minimum/maximum options here led me to think otherwise (although they might well be unimplemented/broken for all I know). 20160304 06:28:40< celticminstrel> shadowm: tselectable_ seems to store an integer value. The only other two widgets that implement it though are toggle_button and toggle_panel. 20160304 06:28:44< shadowm> (And yes, that's a prime example of GUI2 design brokenness. Why in the world would you allow theme authors to specify dialog _behavior_?!) 20160304 06:29:18< celticminstrel> It's the combobox widget, not the dropdown menu, that doesn't support multiples. 20160304 06:29:23< vultraz> celticminstrel: tcombobox is a tselectable widget 20160304 06:29:31< vultraz> meaning clicking on it brings up the tdropdown menu dialog 20160304 06:29:33< vultraz> BUT 20160304 06:29:36< celticminstrel> At least, I assume it doesn't, based on the fact that it implements tselectable_. 20160304 06:29:48< shadowm> Wait, you said tselectable_. I think I was thinking of a different base class of tlistbox. 20160304 06:29:58< vultraz> if we can make checkboxes in that dialog not pass click events to the dialog so as not tot trigger the click dismiss behavior 20160304 06:29:59< vultraz> we'll be good 20160304 06:30:06< celticminstrel> listbox does not implement tselectable_. 20160304 06:30:18< shadowm> tscrollbar_container <- tcontainer_ 20160304 06:30:20-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160304 06:30:20-!- boucman [~rosen@wesnoth/developer/boucman] has quit [Remote host closed the connection] 20160304 06:30:31< shadowm> I must've been thinking of either of those two. 20160304 06:30:41< vultraz> fuck tscrollbar_container 20160304 06:30:44< vultraz> fuck that class 20160304 06:30:50< vultraz> it needs to burn in hell 20160304 06:30:53< shadowm> No thanks. 20160304 06:31:56< shadowm> Oh, and someone made the Load Game headers not get scrolled along with the list. 20160304 06:32:02< shadowm> Let me guess. 20160304 06:32:16< shadowm> It's the suggested detached-headers kluge. 20160304 06:32:29< celticminstrel> So, any objection to changing the formula string interpolation syntax from {} to [], so that it can be used in a formula without requiring <<>> to get it past the preprocessor? 20160304 06:32:36< celticminstrel> Since it's undocumented, I doubt anyone will notice. 20160304 06:33:01< vultraz> shadowm: yes 20160304 06:33:03< shadowm> Huh, the headers are still part of the listbox. 20160304 06:33:08< shadowm> What is this sorcery? 20160304 06:33:16< vultraz> they're still part of the listbox but not the content grid 20160304 06:33:19< vultraz> shadowm: look at the file 20160304 06:33:25< shadowm> Yes. 20160304 06:33:54< vultraz> this is not the perfect solution because it breaks horizontal scrollbar lists with headers 20160304 06:33:55< vultraz> but 20160304 06:33:56< shadowm> Or you mean the listbox widget definition? 20160304 06:33:59< vultraz> that's a very rare case 20160304 06:34:00< vultraz> and yes 20160304 06:34:20< shadowm> I'm impressed actually, because I tried doing the same and only got all kinds of bizarre misbehavior. 20160304 06:34:54< vultraz> senpai is impressed \ o / 20160304 06:35:18< shadowm> The kluge is also very transparent once you realize that the scrollbar doesn't span the whole widget's height (it's below the headers). 20160304 06:35:38< celticminstrel> Is that a problem? 20160304 06:35:43< vultraz> i actually think that looks better 20160304 06:35:46< shadowm> It's not ideal. 20160304 06:35:55< vultraz> since the repeating buttons are not the same height as the header widgets 20160304 06:36:03 * shadowm points vultraz at his own favorite operating system again. 20160304 06:36:35< vultraz> headers arent usually shown next to the repeatingb uttons in that case 20160304 06:36:55< shadowm> They ought to be the same height approximately, really. 20160304 06:37:10< shadowm> In fact, why are the headers smaller than the contents? 20160304 06:37:47< shadowm> (This is supposed to be a massively important concern to touchscreen fans like you.) 20160304 06:39:55< shadowm> ... You asked me a thousand times about removing the halos toggle and every time I said yes, didn't I? 20160304 06:40:04< shadowm> And yet, it's still there. 20160304 06:40:50-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 06:41:29< shadowm> Also, I have to say, I _really_ prefer the new dialog caption styling. 20160304 06:42:33< celticminstrel> I've entertained ideas of basing the formula variant on boost::variant (as config::attribute_value is), not sure if that's worth the effort though. 20160304 06:44:30< vultraz> shadowm: you mean the title text? 20160304 06:45:48-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 276 seconds] 20160304 06:46:10< ancestral> So… 20160304 06:46:34< ancestral> Does the credits screen not feature a transparent background any longer? 20160304 06:47:04< ancestral> s/any longer/yet 20160304 06:47:11< vultraz> it does 20160304 06:47:13< vultraz> it's just broken 20160304 06:47:26 * ancestral probably wrote an awkward sentence 20160304 06:47:36< ancestral> Is it not transparent yet? 20160304 06:47:46< celticminstrel> What's this about a synced RNG. 20160304 06:48:31< celticminstrel> Is it simple_rng.?pp ? 20160304 06:49:05< celticminstrel> Hmm... 20160304 06:49:35-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20160304 06:49:44< celticminstrel> That doesn't look synced though. 20160304 06:51:12-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 260 seconds] 20160304 06:51:13-!- wedge010 is now known as wedge009 20160304 07:09:00< shadowm> vultraz: Yes. 20160304 07:15:35< celticminstrel> I have to wonder why this tokenizer doesn't just use a switch statement, rather than having a weird binary-search-esque method of partitioning the possible search space of characters to seek. 20160304 07:17:05< Aginor> gfgtdf: Thanks, it looks good 20160304 07:36:29-!- Kwandulin [~Miranda@p200300760F0BD430893693D142112FFF.dip0.t-ipconnect.de] has quit [Ping timeout: 248 seconds] 20160304 08:07:11< shadowm> :| 20160304 08:07:33< shadowm> tlistbox. ttext_box. 20160304 08:08:00< shadowm> And here I thought he was at least consistent in his ridiculous naming conventions. 20160304 08:08:53 * celticminstrel still doesn't understand why they all begin with t. 20160304 08:09:01< vultraz> neither do I 20160304 08:09:08 * celticminstrel very much doubts there's a good reason. 20160304 08:09:54< shadowm> For the same reason I don't begin my type names with t. 20160304 08:10:06< shadowm> It's called personal preference. 20160304 08:10:29< shadowm> Except this one in particular is absurd and lends itself to unfortunate names like "terror" and "titem". 20160304 08:10:47< shadowm> And "tone" (yes). 20160304 08:11:14< celticminstrel> XD 20160304 08:11:30< celticminstrel> It would be less absurd if the second letter were uppercase. 20160304 08:11:36< shadowm> I'd rather have CError and CItem and COne. 20160304 08:11:36< vultraz> all hail the TERROR CLASS 20160304 08:12:05< shadowm> Or even szpfjidsError and such. 20160304 08:12:11< celticminstrel> Pfft no. 20160304 08:12:26< shadowm> (for vultraz: https://en.wikipedia.org/wiki/Hungarian_notation ) 20160304 08:12:27< celticminstrel> Hungarian notation is for variables, anyway. 20160304 08:13:08< vultraz> wat 20160304 08:13:13< shadowm> Uh huh. Windows' SDK is full of typedef aliases like LPBLAHBLAHBLAH. 20160304 08:13:25< celticminstrel> Oh yeah, I forgot about that. 20160304 08:13:30< celticminstrel> Those aren't classes though. 20160304 08:13:39< shadowm> They are the closest thing for C. 20160304 08:13:46< celticminstrel> I suppose. 20160304 08:14:03< celticminstrel> The actual class (or rather, struct) names though are ALLCAPSWITHNOSPACES. 20160304 08:15:51< shadowm> !commit 18b02c9a407ad6e86c11c674d16f9bb672e71ca7 20160304 08:15:53< shikadibot> shadowm: Revision 18b02c9a407a (Mark de Wever) on Thu Jun 19 15:46:16 2008: 20160304 08:15:56< shikadibot> shadowm: Removed unused terror class. 20160304 08:15:58< shikadibot> shadowm: Web interface URL: https://github.com/wesnoth/wesnoth/commit/18b02c9a407a 20160304 08:16:00< shadowm> Proof that it did exist 20160304 08:16:13< celticminstrel> Why was it unused? 20160304 08:16:19< shadowm> Who knows. :p 20160304 08:16:39< shadowm> Maybe it's because it kind of looks like a half-hearted attempt at writing a std::exception analogue. 20160304 08:17:14< shadowm> Never becoming anything more than a thin std::string wrapper. 20160304 08:17:42< shadowm> I at least assume it was intended as an exception type, because anything else would just not make sense. 20160304 08:18:22< shadowm> And years later, I get to write a class named terror_report. 20160304 08:18:52< shadowm> Oh wait, I haven't pushed that to the repository. Good. 20160304 08:20:56< vultraz> Are you still planning on doing the filebrowser gui2 port? 20160304 08:22:41< shadowm> I'm doing it right now. 20160304 08:22:42< vultraz> also, wasn't someone supposed to remove that Deterministic Mode checkbox in campaigns 20160304 08:23:09 * celticminstrel doesn't see why you'd remove it. 20160304 08:23:39< shadowm> I told gfgtdf it shouldn't be anything but a debug option and the game should make the right choice by default. 20160304 08:23:56< celticminstrel> Oh, hmm. 20160304 08:24:07< shadowm> Nothing really came out of that and I stopped caring enough to insist. 20160304 08:25:11< loonycyborg> how exactly can it make right choice? 20160304 08:27:41< loonycyborg> I mean I don't exactly see how there can even BE right choice 20160304 08:27:48< loonycyborg> people could want it both ways 20160304 08:28:15< shadowm> You know what the option does, right? 20160304 08:28:51< shadowm> (Hint: it's not what over 80% of the people who see it would assume.) 20160304 08:29:44< celticminstrel> Does it pre-seed the RNG? 20160304 08:29:54< loonycyborg> I would assume something like that 20160304 08:30:14< celticminstrel> Or does it serialize the current RNG state? 20160304 08:30:36< shadowm> Deterministic on: the RNG state is reloaded when reloading saves. 20160304 08:30:56< shadowm> Deterministic off: the RNG state is reset when reloading saves (so you get different results after reloading). 20160304 08:32:02< loonycyborg> That's exactly what I expect it to do 20160304 08:32:25< shadowm> Having this as a user-visible option is the equivalent of having your human oponent come with a memory switch located in the back of their head. 20160304 08:32:26< loonycyborg> Many other games have stuff like this 20160304 08:33:21< shadowm> [citation needed] 20160304 08:33:23< loonycyborg> for example x-com: enemy unknown 20160304 08:33:47< loonycyborg> iirc there's even an option to disable deterministic seed 20160304 08:34:42< loonycyborg> also civ3 did that, and maybe jagged alliance 2, not sure 20160304 08:38:12< loonycyborg> deterministic rng makes save/loading more fun 20160304 08:38:33< loonycyborg> because you still can alter your actions after loading 20160304 08:39:28< loonycyborg> it adds more variety, rather than repeating same dumb suicidal action over and over :P 20160304 08:40:00< celticminstrel> I should play some Civ4. Or maybe even Civ3 or Civ2 or Civ1. 20160304 08:40:21< celticminstrel> ...though I would not be surprised if the latter doesn't run on Win7. 20160304 08:41:15< shadowm> It's a DOS game, so even if you are running 64-bit Windows you can use DOSBox. 20160304 08:41:32< celticminstrel> Oh. That means I can even play it on my Mac. 20160304 08:42:03< shadowm> Apparently it was ported to Windows too, not sure. 20160304 08:42:18< celticminstrel> Oh, well in that case, who knows. 20160304 08:42:39< Aginor> celticminstrel: freeciv 20160304 08:42:49< celticminstrel> I think I have that and have never played it. 20160304 08:42:56< celticminstrel> Also freecol or something. 20160304 08:42:58< Aginor> I've played it quite a lot 20160304 08:43:29< shadowm> Unsigned int overflow behavior is defined, yes? 20160304 08:43:35< vultraz> Aginor: as far as I can tell, there are no more big issues pending for 1.13.3 20160304 08:43:35< celticminstrel> Supposedly. 20160304 08:43:51< vultraz> Aginor: could you make sure the changelog and release notes are updated with your changes by tomorrow? 20160304 08:44:17< Aginor> vultraz: I can do it tomorrow morning NZ time 20160304 08:44:27< celticminstrel> What's the offset for NZ? 20160304 08:44:42< Aginor> celticminstrel: GMT+13 atm 20160304 08:45:40< celticminstrel> I feel like that'd be around midnight. 20160304 08:45:49-!- vultraz changed the topic of #wesnoth-dev to: 1.13.3 scheduled for within the next 24 hours | Wesnoth Developers Channel | >>> Want to help? Go here: http://r.wesnoth.org/t42911 (and thanks!) <<< | Logs: http://irclogs.wesnoth.org | Bug tracker: http://bugs.wesnoth.org 20160304 08:46:13< celticminstrel> Wait, no, noon. 20160304 08:46:20< celticminstrel> ... 20160304 08:46:28< vultraz> I'm gmt + 11, he's 2 hours ahead of me, it's almost 8 PM for me 20160304 08:46:31< vultraz> right now 20160304 08:46:41< celticminstrel> Ah, you're closer, that's helpful then. 20160304 08:46:48< vultraz> 12 hours from now will be 10 AM for him 20160304 08:47:02< shadowm> Ah yes, I love working on this dialog. 20160304 08:47:11 * celticminstrel is -5, that's 18 hours difference from him. 20160304 08:47:17< Aginor> basically, I'm tired after a really sucky day and I'd prefer to leave it for tomorrow if I can :) 20160304 08:47:19< shadowm> Every once in a while I need to add something to filesystem.hpp. Much enjoyable action ensues. 20160304 08:47:37< celticminstrel> At least it's not turgid action. 20160304 08:47:46< vultraz> loonycyborg: is within the next 24 hours a good time for you? 20160304 08:47:49< Aginor> but if more urgent, I can do it 20160304 08:48:04< vultraz> Aginor: no, the morning is fine 20160304 08:48:36< Aginor> thanks :) 20160304 08:48:49< vultraz> I have one minor thing I need to do to prefs, but I need to talk to zookeeper 20160304 08:48:49< loonycyborg> It's good 20160304 08:52:54< shadowm> Okay, great, my code doesn't work. 20160304 08:56:59< shadowm> Oh. 20160304 08:57:34 * shadowm facepalms. 20160304 08:58:03< shadowm> Textboxes, owing to their tcontrol ancestry, have both their value, _and_ a label that probably isn't used by anything. 20160304 08:58:21< shadowm> I was setting the unused label instead of the actual value. 20160304 09:00:32< shadowm> Good to know it wasn't that I screwed up my maths so horribly that somehow it wasn't even landing the assertion failure at the end. 20160304 09:01:28< shadowm> Bleh. 20160304 09:01:57< shadowm> The whole dialog and map editor UI blink for an instant when I add items to the listbox. 20160304 09:03:28< shadowm> vultraz: Oh, do you know what I need to do to handle double clicks on listboxes? 20160304 09:04:02< shadowm> I hope the answer isn't "you can't do that yet". 20160304 09:05:44< shadowm> ... That's the answer, isn't it. 20160304 09:05:57< shadowm> I can't seem to find anything referring to double click handling here. 20160304 09:06:14< celticminstrel> There are definitely dialogs that do it. 20160304 09:06:25< shadowm> GUI2 dialogs? 20160304 09:06:30< celticminstrel> The difficulty selection dialog is GUI2, right? 20160304 09:07:23< shadowm> Yes, but the dialog itself doesn't do anything special. The WML specifies return_value_id = "ok" for the [toggle_panel] in the list row definition. 20160304 09:07:40< shadowm> And the dialog auto-closes, which is most certainly something I don't want here. 20160304 09:07:56-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 09:08:11< celticminstrel> The campaign dialog also handles double-clicks. 20160304 09:08:44< shadowm> By doing the exact same thing I described above (even the auto-close part). 20160304 09:08:50< celticminstrel> :| 20160304 09:09:10< celticminstrel> Maybe you can do something with the connect_signal thing? 20160304 09:09:10< shadowm> I need a dialog that handles double clicks on listbox items without letting GUI2 auto-close it. 20160304 09:09:32< celticminstrel> I'm not entirely sure what's valid there as an event. 20160304 09:10:01< shadowm> If I'm looking in the right place (src/gui/auxiliary/event/dispatcher.hpp), it seems I may have that option... 20160304 09:10:30< shadowm> I was looking there for the implementation of the stock connect_signal_foobar() functions that my IDE never seems to be able to find somehow. 20160304 09:10:35< celticminstrel> That's indeed what I'm referring to. 20160304 09:10:59< celticminstrel> Not the global functions, the generic class function that they call. 20160304 09:11:27< shadowm> You mean the connect_signal method on tdispatcher, yes? 20160304 09:11:55< celticminstrel> Yes. 20160304 09:12:22-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 252 seconds] 20160304 09:12:51< shadowm> Here's where I instinctively try to reach for a C++11 lambda before realizing I'm writing C++98 code. 20160304 09:13:08< celticminstrel> Indeed. 20160304 09:17:04< shadowm> Grr. 20160304 09:17:27< shadowm> I guess I can't pass a nullary function. 20160304 09:18:43< shadowm> Which is a bit puzzling, because connect_signal_mouse_left_click() is usually used with a widget (tdispatcher) and a nullary function object created with boost::bind? 20160304 09:18:49-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20160304 09:20:40< shadowm> typedef boost::function tsignal_function; 20160304 09:21:00< shadowm> Wha. 20160304 09:21:29< shadowm> How does that result from this: 20160304 09:21:32< shadowm> boost::bind(&tfile_dialog::on_dir_create_cmd, this, boost::ref(window)) 20160304 09:23:34-!- boucman_work [~jrosen@247.37.0.109.rev.sfr.net] has joined #wesnoth-dev 20160304 09:23:34-!- boucman_work [~jrosen@247.37.0.109.rev.sfr.net] has quit [Changing host] 20160304 09:23:34-!- boucman_work [~jrosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160304 09:24:17< shadowm> I feel I'm missing something dreadfully obvious here. 20160304 09:25:17-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20160304 09:25:36< celticminstrel> I'm trying to remember the explanation about bind that I gave vultraz awhile ago. 20160304 09:25:40< shadowm> Like maybe I'm using the wrong connect_signal_mouse_left_click for reference. 20160304 09:25:56< celticminstrel> I thought you were trying to get double-click. 20160304 09:26:17< celticminstrel> So, I assume on_dir_create_cmd takes one argument. 20160304 09:26:29< shadowm> Yes, but I was using that as a model of how to use tdispatcher::connect_signal(). 20160304 09:27:04< celticminstrel> Like how it forwards to connect_signal()? 20160304 09:27:17< shadowm> Yes. 20160304 09:28:03< shadowm> Also, yes, on_dir_create_cmd takes two arguments, yes, the object instance pointer and the twindow& that's bound there. 20160304 09:28:31< shadowm> But the resulting bind object itself takes no arguments because it doesn't have any placeholders. 20160304 09:28:55< shadowm> And purportedly connect_signal_mouse_left_click passes it as a tsignal_function, which... takes four arguments. 20160304 09:29:53< shadowm> Meanwhile, I'm trying to call connect_signal() directly with a pointer to a void(void) function and I get this: 20160304 09:30:20< shadowm> https://gist.githubusercontent.com/shikadilord/e43256a11275dc1d8998/raw/21c8ff79c0141e06b336d53432a629e6e872e3b9/gistfile1.txt 20160304 09:31:49< shadowm> Which I can only assume means that effectively I'm supposed to pass a pointer to a function that takes those parameters which I don't even know what to do with them. 20160304 09:32:42< shadowm> I could ignore them. 20160304 09:33:27< shadowm> namespace { using namespace gui2; void test(tdispatcher&, const tevent, bool&, bool&) { std::cerr << "DOUBLE CLICK!\n"; } } 20160304 09:33:30< shadowm> src/gui/dialogs/file_dialog.cpp:137:45: error: ‘tdispatcher’ was not declared in this scope 20160304 09:34:00< shadowm> I was told every widget inherits from tdispatcher and I'm obviously using widgets in this file. :p 20160304 09:34:03< celticminstrel> I think your bind line is, indeed, essentially correct. 20160304 09:34:35< celticminstrel> It looks exactly the same as the one in group.hpp, for example. 20160304 09:35:00< celticminstrel> (Under widgets/ ) 20160304 09:35:13< shadowm> Yes, and it compiles. The question is why the direct method (without the connect_signal_blahblah() wrappers) hates me. 20160304 09:35:29< celticminstrel> It compiles with what? 20160304 09:35:41< celticminstrel> connect_signal_mouse_left_click? 20160304 09:35:47< shadowm> The line that uses the bind object as a parameter to that, yes. 20160304 09:36:27< shadowm> What doesn't compile is the line that calls tdispatcher::connect_signal() directly with something that takes the exact same amount of parameters (zero). 20160304 09:37:12< shadowm> And I just realized tdispatcher is gui2::event::tdispatcher, not gui2::tdispatcher. 20160304 09:37:31< shadowm> Okay, so passing this to connect_signal() works: 20160304 09:37:33< shadowm> namespace { using namespace gui2::event; void test(tdispatcher&, const tevent, bool&, bool&) { std::cerr << "DOUBLE CLICK!\n"; } } 20160304 09:37:46< celticminstrel> That shouldn't be necessary though... 20160304 09:37:53< shadowm> So why can I normally get away with passing a nullary bind? 20160304 09:38:14< shadowm> _Through_ the wrapper. 20160304 09:38:55< shadowm> Okay, I don't see the expected message. Either I'm supposed to do something special with those parameters, or I'm calling connect_signal() wrong. 20160304 09:39:15< shadowm> (Or event::LEFT_BUTTON_DOUBLE_CLICK isn't supported.) 20160304 09:39:27< celticminstrel> So, the_listbox->connect_signal(bind(&file_dialog::on_dir_create_cmd, this, ref(window))) does not compile? 20160304 09:40:07< celticminstrel> Where is LEFT_BUTTON_DOUBLE_CLICK declared? 20160304 09:40:35< shadowm> src/gui/auxiliary/event/handler.hpp 20160304 09:41:43< celticminstrel> I don't understand what all these enable_ifs are doing for connect_signal. 20160304 09:42:08< shadowm> http://pastebin.com/raw/FsqpNBGN 20160304 09:42:40< shadowm> inline void connect_signal_mouse_left_click(tdispatcher&, const tsignal_keyboard_function&) 20160304 09:42:48< celticminstrel> What about boost::bind(test)? 20160304 09:42:57< shadowm> I mean const tsignal_function&. 20160304 09:43:21< shadowm> Which defines a function object that takes not 0 but rather 4 parameters. 20160304 09:43:49< celticminstrel> It clearly worked with LEFT_BUTTON_CLICK in group.hpp... 20160304 09:44:44< celticminstrel> Try git grep LEFT_BUTTON_DOUBLE_CLICK src/gui/widgets 20160304 09:44:58< shadowm> filelist.connect_signal(boost::bind(test2)); 20160304 09:45:12< shadowm> Won't compile, argument mismatch again. 20160304 09:45:41< shadowm> It feels like that onnect_signal_mouse_left_click() I was looking at and the one that actually gets called are not the same. 20160304 09:46:30< shadowm> Hm, text_box.cpp: connect_signal(boost::bind(&ttext_box::signal_handler_left_button_double_click, this, _2, _3)); 20160304 09:46:47< shadowm> Two arguments only. 20160304 09:47:15< shadowm> Three arguments, rather, only two get used. 20160304 09:49:32< shadowm> Oh, wait, you can call boost::bind objects with more arguments than they actually use? 20160304 09:50:26< shadowm> In that case I still don't know why using a function that ignores all its arguments still doesn't get me the expected behavior. 20160304 09:51:26< shadowm> Hm, text_box alters the handled argument in those callbacks. 20160304 09:51:35< celticminstrel> Yeah, I think Boost bind expressions consume an arbitrary number of arguments. 20160304 09:51:48< celticminstrel> (It seems like this is not true of C++11 std::function though.) 20160304 09:54:16< shadowm> Okay, trying a version that modifies its third parameter like ttext_box does... Still does nothing. 20160304 09:54:48< celticminstrel> Hang on, does tdialog extend tdispatcher? 20160304 09:55:10< celticminstrel> ...wait, that shouldn't matter, should it? 20160304 09:55:22< shadowm> Maybe the ttoggle_panel for the row beneath the mouse is consuming and halting the vent first? 20160304 09:55:22< celticminstrel> Never mind. 20160304 09:55:32< celticminstrel> Huh? 20160304 09:55:50< shadowm> ttoggle_panel has its own double click handler. 20160304 09:56:07< shadowm> It sets the handled parameter to true... 20160304 09:56:27< shadowm> And leaves the halt parameter alone. 20160304 09:56:41< shadowm> Next step: figure out what those parameters actually do. 20160304 09:59:32< shadowm> debug gui/event: toggle_panel [] signal_handler_left_button_double_click: left button double click. 20160304 09:59:49< shadowm> Yeah, I'm starting to think that the toggle_panels are stealing the listbox's double click events. 20160304 10:00:12< celticminstrel> But you said it didn't even compile. 20160304 10:00:37< shadowm> Oh, but I fixed it after realizing that boost::bind objects can take an arbitrary number of unused parameters. 20160304 10:00:49< celticminstrel> Oh, so you got it to compile, then? 20160304 10:00:55< shadowm> Yep. 20160304 10:01:08< shadowm> And it does absolutely nothing. 20160304 10:01:12< celticminstrel> If the toggle button is causing problems and you don't need its double-click behaviour, you can disconnect the signal. 20160304 10:01:38< celticminstrel> Anyway, I'm going to bed. 20160304 10:01:45< shadowm> disconnect_signal(const tsignal_keyboard_function&, [optional parameter]) 20160304 10:01:56< shadowm> I'm fairly sure that requires me to have insider knowledge of the widget. :p 20160304 10:02:17< celticminstrel> Probably? 20160304 10:02:26< celticminstrel> Or you could change the widget, I suppose. 20160304 10:02:29-!- celticminstrel is now known as celmin|sleep 20160304 10:02:30< shadowm> Plus I'd need to do that for _every_ ttoggle_panel that eventually becomes a child of the listbox. 20160304 10:03:53< shadowm> Wait, why does tlistbox have a set_callback_item_change() method _and_ a set_callback_value_change(). 20160304 10:05:08< shadowm> Okay, the latter sounds like a half-baked nondescript feature from the vague Doxygen comments. 20160304 10:06:42< shadowm> Sigh. And here I thought I'd spend more time dealing with the filesystem traversal aspect of the dialog than with the GUI2 widgets it uses. 20160304 10:07:13< vultraz> shadowm: I think you can just set a retval for the listbox and then check that in postshow 20160304 10:07:26< shadowm> vultraz: Come on. 20160304 10:07:38< shadowm> I already said dialog auto-close is not desirable. 20160304 10:07:47< vultraz> ah 20160304 10:07:57< vultraz> sorry, I didn't look at the entire log 20160304 10:09:52 * vultraz pings zookeeper 20160304 10:09:58< zookeeper> what 20160304 10:10:06< vultraz> zookeeper: do you really want Animate Map not also toggle Animate Water off? 20160304 10:10:13< vultraz> IMO 20160304 10:10:19< vultraz> the former should be like a 'master switch' 20160304 10:10:28< vultraz> with the latter more specific 20160304 10:10:33< vultraz> is that not how you implemented it? 20160304 10:10:47< zookeeper> yes, it's a master switch. it should gray out the latter. 20160304 10:11:00< zookeeper> and of course that's how it works in the code too 20160304 10:11:19< vultraz> i mean, if you have animate water toggled on, shouldn't toggling animate map off also untoggle animate water as well as gray it out 20160304 10:11:30< zookeeper> it's annoying when toggling something also toggles something else, because then when you toggle it back you also have to toggle the other thing back 20160304 10:12:43< zookeeper> graying out is the less intrusive method of signaling that one toggle's functionality depends on another 20160304 10:12:50< vultraz> ok 20160304 10:13:19< vultraz> I will implement that after I watch this week's episode of The 100 20160304 10:14:02< shadowm> You know, now that I think of it, you don't use connect_signal_foo() with tlistbox anyway. :\ 20160304 10:14:30< shadowm> You use its own set_callback_value_change() method, which updates a function pointers that gets used by... 20160304 10:14:51< shadowm> By the list_item_clicked() method that gets called... 20160304 10:15:26< shadowm> That gets called by who the hell knows who after being passed to that stupid tgenerator_ thing that permeates this whole mess. 20160304 10:16:09< shadowm> I thought I had sworn off this code forever. 20160304 10:16:41< shadowm> But nooo I had to allow myself to get dragged back into it for a completely different task. 20160304 10:19:22< shadowm> Argh who the hell implements tgenerator_::build() for tlistbox?! 20160304 10:20:10< shadowm> create_item() I mean, ugh. 20160304 10:20:51< shadowm> Okay no, I forget tgenerator_ is an aggregate, not a base class. 20160304 10:21:41< shadowm> Macros... 20160304 10:21:45< vultraz> shadowm: does set_callback_mouse_left_double_click not work? 20160304 10:22:08< shadowm> Where is that declared? 20160304 10:22:15< vultraz> toggle_panel.hpp 20160304 10:22:23< vultraz> it sets the double click behavior 20160304 10:22:32< vultraz> the widget's already wired into the dispatcher 20160304 10:22:42< shadowm> vultraz, I am not going to call that on every ttoggle_panel that gets created behind the scenes. 20160304 10:23:01< shadowm> That's supposed to be tlistbox's job, and obviously does it somewhere. 20160304 10:23:13< shadowm> Somewhere beneath this tgenerator_ mess. 20160304 10:23:14< vultraz> why would you need to do that? 20160304 10:23:21< shadowm> Why would I need to do what? 20160304 10:23:35< vultraz> why would you need to call that on every toggle panel in the filechooser 20160304 10:23:49< shadowm> Because this is a tlistbox and the exact number of ttoggle_panels that get created is both arbitrary and always changing. 20160304 10:24:02< shadowm> And I'm not in charge of creating them. 20160304 10:24:08< shadowm> tgenerator_ (behind tlistbox) is. 20160304 10:24:13< vultraz> uhhh...hm... 20160304 10:24:27< shadowm> vultraz. 20160304 10:24:32< shadowm> There is a ttoggle_panel for each row. 20160304 10:24:41< shadowm> There is a variable number of rows. 20160304 10:24:46< vultraz> yes, I am aware 20160304 10:25:05< vultraz> I sometimes forget that listboxes are different from toggle panels 20160304 10:25:35< shadowm> So I'm trying to crack tgenerator_ open but I absolutely hate this code and would rather drown myself than have to work with it. 20160304 10:26:02< shadowm> There are several tgenerator_s, actually, and which one gets used isn't up to the dialog. 20160304 10:26:10< shadowm> It's up to the WML. 20160304 10:26:28< shadowm> Yep, that thing I mentioned earlier about has_minimum/maximum turns out to be relevant. 20160304 10:27:06< shadowm> tone, thorizontal_list, tvertical_list. 20160304 10:27:28< shadowm> That's the tgenerator_ family. Such a lovely bunch. 20160304 10:28:03< vultraz> mordante obviously never wanted anyone else touching his code 20160304 10:28:03< shadowm> tvertical_list::create_item(), ironically enough, commits suicide. 20160304 10:28:13< shadowm> /** @todo implement. */ assert(false); 20160304 10:28:30< shadowm> So I guess most of the time we're looking at Mr. tone. 20160304 10:29:06< shadowm> But wait, these create_item()s take only one parameter, the pure virtual declaration has four. 20160304 10:30:15< shadowm> And tlisbox certainly calls a four parameter method with the same name. 20160304 10:31:29< shadowm> Oh, it's in generator_private.hpp. 20160304 10:31:43< shadowm> Oh GOD. 20160304 10:31:49< shadowm> There's tgenerator_. 20160304 10:31:52< shadowm> Then there's tgenerator. 20160304 10:32:09< shadowm> How did he even keep track of this mess? 20160304 10:32:34< shadowm> Also tgenerator is a template type, and despite not having the private/protected member suffix, it's _not_ what listbox references the most. 20160304 10:33:28< shadowm> template class tgenerator : public minimum_selection, public maximum_selection, public placement, public select_action; 20160304 10:33:57< shadowm> The (again, vague) Doxygen below makes me thing that the four types are supposed to be tgenerator_s. 20160304 10:34:00< shadowm> think 20160304 10:34:17< shadowm> Because every method in this template class says "inherited from tgenerator_". 20160304 10:34:56< shadowm> If that's correct, then tgenerator instantiations would inherit from four tgenerator_ subclasses at once, which makes no sense. 20160304 10:35:44< shadowm> Alternatively, the Doxygen comments lie and this class does not inherit from tgenerator_ subclasses at all. 20160304 10:36:13< shadowm> I don't know which option is less insane. 20160304 10:37:46< shadowm> Oh, okay, got it, tgenerator is instantiated with only one tgenerator_ subclass as base class each time. 20160304 10:38:13< shadowm> Thus, tgenerator is a subclass of a subclass of tgenerator_. 20160304 10:38:26< shadowm> Let that sink in for a moment. 20160304 10:39:07< vultraz> what 20160304 10:39:36< shadowm> I couldn't make this up if I wanted. 20160304 10:40:26< shadowm> So in the end, tlistbox addresses tgenerator (and there are several of these thanks to template magic) as a tgenerator_ 20160304 10:40:47< vultraz> why is this code so shitty 20160304 10:40:57< shadowm> I really want to know where mordante acquired his naming convention now. 20160304 10:41:13< shadowm> So I can sue them for collateral damage. 20160304 10:41:52< shadowm> Things would be much simpler if tgenerator_ was called tgenerator_base or tgenerator_generic or tgenerator_interface or so. 20160304 10:41:56< loonycyborg> iirc tconvention comes from pascal or something 20160304 10:42:17< shadowm> And if tgenerator (which isn't even a singular type) wasn't so obtusely hidden from plain view. 20160304 10:43:55< shadowm> And now that I thought I finally found what I was looking for, I stumble upon MORE abstraction layers. 20160304 10:44:59< shadowm> This code is basically telling me over and over that the princess is in another castle. 20160304 10:46:41< shadowm> I give up. 20160304 10:46:49< loonycyborg> I bet it has as much abstraction layer's as Dante's hell :P 20160304 10:47:06< shadowm> I'll brute-force it by iterating over the ttoggle_panels disconnecting and reconnecting signals. 20160304 10:47:26< shadowm> There's no way I'll ever figure out how to adapt tgenerator_ and family to do what I need. 20160304 10:50:48< shadowm> vultraz: You never got a reply to that email for him, did you? 20160304 10:50:53< vultraz> no 20160304 10:50:55< vultraz> I didn't expect one 20160304 10:51:01< vultraz> who knows, he may not even use that address anymore 20160304 10:55:27< shadowm> I know what I'm dressing up as for Halloween this year. 20160304 10:55:45< shadowm> The tgenerator_ class relationship tree. 20160304 11:09:42-!- midzer [~quassel@pD9FA2D72.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 20160304 11:24:41-!- mjs-de [~mjs-de@x4db69e01.dyn.telefonica.de] has joined #wesnoth-dev 20160304 11:30:55-!- midzer [~quassel@p5B312E5C.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160304 11:36:08-!- irker576 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20160304 11:49:59-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 11:54:07-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160304 11:54:37-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 248 seconds] 20160304 12:01:08-!- stikonas_ [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160304 12:04:33-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Ping timeout: 240 seconds] 20160304 12:05:31-!- stikonas_ [~gentoo@wesnoth/translator/stikonas] has quit [Client Quit] 20160304 12:05:50-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160304 12:13:18-!- zombah [~zombah@2a02:28:3:1:214:4fff:fe47:5920] has joined #wesnoth-dev 20160304 12:51:23-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20160304 12:55:06-!- aquileia [~androirc@176.2.135.142] has joined #wesnoth-dev 20160304 12:55:13-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 240 seconds] 20160304 12:55:13-!- wedge010 is now known as wedge009 20160304 12:56:33< aquileia> 20160302 22:36:23< loonycyborg> didn't hear from the guy who was making it lately 20160304 12:58:15-!- boucman_work [~jrosen@wesnoth/developer/boucman] has quit [Ping timeout: 276 seconds] 20160304 12:59:13< aquileia> I'll try to rebase my changes onto current master this weekend, no promises though 20160304 13:00:17< aquileia> And thanks for being 'the guy' ;) - still reading most of the logs 20160304 13:04:01< aquileia> gfgtdf, loonycyborg: NSIS script is basically ready to apply both patch packages and auto-updates (if prompted by wesnoth.exe) 20160304 13:04:35< loonycyborg> aquileia: Your nick is relatively hard to type :P 20160304 13:05:59< aquileia> The tricky part was scons, but IIRC I got that 90% working 20160304 13:07:19< aquileia> Gfgtdf, wedge009: BTW, I updated to Windows 10 and VC 2015 20160304 13:08:24-!- boucman_work [~jrosen@247.37.0.109.rev.sfr.net] has joined #wesnoth-dev 20160304 13:08:24-!- boucman_work [~jrosen@247.37.0.109.rev.sfr.net] has quit [Changing host] 20160304 13:08:24-!- boucman_work [~jrosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160304 13:12:49-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20160304 13:13:12< vultraz> whoot 20160304 13:13:16< vultraz> windows 10 :D 20160304 13:13:21< vultraz> bestwindows 20160304 13:14:08< loonycyborg> cream of crap 20160304 13:15:33< loonycyborg> aquileia: all your changes are in PR right? 20160304 13:15:44< aquileia> Nope 20160304 13:17:00< aquileia> Never got around to tidying the commits up, thus I left them on my local clone 20160304 13:22:15< loonycyborg> Just make them into PR or commit it and then I'll look into incorporating them into my workflow 20160304 13:22:49< aquileia> You wouldn't want commits named 'stash' and 'tmp 2' on a public repo... 20160304 13:23:11< loonycyborg> hehe guess not 20160304 13:23:47-!- prkc [~prkc@46.166.188.227] has quit [Ping timeout: 260 seconds] 20160304 13:38:04< aquileia> Hmm, the patches I exported don't apply cleanly and a 3 way merge requires a non-shallow clone... Might have to plug my old HDD in and get the files themselves... 20160304 13:38:05-!- prkc [~prkc@108.61.123.68] has joined #wesnoth-dev 20160304 13:40:32 * aquileia replaced his 1TB HDD with a 480GB SSD - the shallow clone saved me 17 GB 20160304 13:41:06< aquileia> Anyway, I'm off for now 20160304 13:41:20-!- aquileia [~androirc@176.2.135.142] has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )] 20160304 14:03:22-!- irker779 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20160304 14:03:22< irker779> wesnoth: Charles Dang wesnoth:master dc8e9371641f / src/gui/dialogs/ (preferences_dialog.cpp preferences_dialog.hpp): tpreferences: disable Animate Water when deselecting Animate Map https://github.com/wesnoth/wesnoth/commit/dc8e9371641fb5436841c1f8d150f3c872365130 20160304 14:03:27< vultraz> zookeeper: ^ 20160304 14:06:12-!- aquileia [~androirc@176.2.135.142] has joined #wesnoth-dev 20160304 14:10:24< aquileia> gfgtdf: Just read that you intend wednoth.exe to download the updates - you don't need to, my NSIS script already handles that. All you need to to do is to pass 1. currently installed Wesnoth version 2. target version 3. SHA hash 20160304 14:10:51< vultraz> aquileia: what do you mean? 20160304 14:11:00< vultraz> that the installer will download updates? 20160304 14:12:03< aquileia> Yes, that the installer code outside of wesnoth.exe handles the download 20160304 14:12:24< vultraz> so people would have to launch the installer again to update? 20160304 14:14:02< aquileia> No, gfgtdf said he could launch the installer from inside wesnoth for each auto-update (else it wouldn't really count as automatic updates, don't you agree?) 20160304 14:14:15< vultraz> right 20160304 14:14:37< vultraz> this would, of course, be code that we can disable for steam releases, right? 20160304 14:14:47< aquileia> Besides, the initial installer and the updater are different executables 20160304 14:14:52< vultraz> since then we'd rely on their auto updater 20160304 14:15:11< aquileia> Sure 20160304 14:15:15< vultraz> (and will ensure people always have latest stable) 20160304 14:19:28< aquileia> If needed, I could obtain the SHA on my side, but IMHO it's safer to separate these functions (plus, it's less work for me ;) ) 20160304 14:22:03-!- mjs-de [~mjs-de@x4db69e01.dyn.telefonica.de] has quit [Remote host closed the connection] 20160304 14:23:55-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth-dev 20160304 14:25:19< aquileia> Aside from gfgtdf's interface (Wesnoth) and my modifications to loonycyborgs installer (NSIS and scons) there's only one hurdle - a direct download link for the file, which we can't get from sourceforge 20160304 14:26:12< loonycyborg> I think we can 20160304 14:26:25< aquileia> Oh? 20160304 14:26:30< loonycyborg> it'll involve a couple of redirects though 20160304 14:27:25< loonycyborg> since I have upload rights to sf I can upload the patch there along with installer itself anyway 20160304 14:29:46< aquileia> I'm afk right now, but would you mind posting such a link for an arbitrary file hosted on sourceforge? 20160304 14:30:17< aquileia> That way we could test how NSIS copes with it 20160304 14:30:18< zookeeper> vultraz, perfect 20160304 14:33:20-!- aquileia [~androirc@176.2.135.142] has left #wesnoth-dev ["Trennungsnachricht"] 20160304 14:39:27< vultraz> shit 20160304 14:55:48< loonycyborg> aquileia: https://sourceforge.net/projects/wesnoth/files/wesnoth/wesnoth-1.13.2/wesnoth-1.13.2a-win32.exe/download 20160304 14:56:28< loonycyborg> downloading it with wget results in download of the installer 20160304 14:56:37< loonycyborg> after several redirects 20160304 14:58:20< irker779> wesnoth: Charles Dang wesnoth:master becdecd0f517 / src/preferences.cpp: Small fixup/cleanup to the handling of window flags https://github.com/wesnoth/wesnoth/commit/becdecd0f51769fb3b87bfdd9eb5c9353c83d29d 20160304 14:58:57< vultraz> Aginor: I know it's really late to do something like that, but it does fix the last of the issues I've been noticing with regards to window handling 20160304 14:59:00< vultraz> ^ 20160304 14:59:33< vultraz> (ie, fullscreen will return to the previous state properly, etc) 20160304 14:59:39< vultraz> will now* 20160304 15:05:56< vultraz> well, there's still one minor corner case that doesn't work properly, but I'm not sure why 20160304 15:10:50< vultraz> actually I do know why 20160304 15:15:09-!- aeonchild [enchilado@defocus/yummy/enchilado] has quit [Ping timeout: 248 seconds] 20160304 15:21:17-!- aeonchild [enchilado@defocus/yummy/enchilado] has joined #wesnoth-dev 20160304 15:36:19-!- gfgtdf [~chatzilla@f050182048.adsl.alicedsl.de] has joined #wesnoth-dev 20160304 15:36:41< gfgtdf> aquileia: will the sript also handle veryficartion of the update packages ? 20160304 15:37:45< loonycyborg> if they're on sf then they're guaranteed to be as authentic as main installers, no more and no less 20160304 15:39:38< gfgtdf> loonycyborg: hmm but for main installer we can get a checksum from the https wesnoth homepage i thought? 20160304 15:39:54< loonycyborg> yes, same would apply to updates probably 20160304 15:40:16< gfgtdf> loonycyborg: but updated woudl need to do that automatically 20160304 15:40:56< loonycyborg> yes, it could 20160304 15:41:06< vultraz> zookeeper: are you still working on the help text 20160304 15:41:12< vultraz> I'd like to get the revision in for the release 20160304 15:41:21< loonycyborg> but it's hard to do until exact rules for paths of where updates and checksums are hosted 20160304 15:42:42< gfgtdf> loonycyborg: will the updater be atumatically require adim right only if it needs it ? 20160304 15:43:27< loonycyborg> iirc I used special nsh extension to handle this, to make it request admin rights only if it needs to 20160304 15:43:47< gfgtdf> loonycyborg: and the updater coudl use that aswell ? 20160304 15:43:59< loonycyborg> naturally 20160304 15:47:17< zookeeper> vultraz, yeah, i'll get right back to it... 20160304 15:47:37< vultraz> don't forget I have my version too.. :P 20160304 15:53:48< gfgtdf> shadowm: the hotkey category tabbar was replaced with the right columsn in teh hotkey list, if you for example want to show the hotkeys available ingame you can just sort the list by the 'Available in game' column. 20160304 15:55:22< gfgtdf> shadowm: the main reason why i decided for this layout is that it closer to how the hotkeys are actualyl handeled by the engine. Specially its now less confusing when using hotkeys that are for exampel avialable in game and in editor but not in tiltescreen 20160304 15:55:27-!- Appleman1234 [~Appleman1@KD106161136215.au-net.ne.jp] has quit [Ping timeout: 260 seconds] 20160304 15:59:29< gfgtdf> celmin|sleep: i don't think simple_rng is actually used anywhere in the code 20160304 16:00:20< gfgtdf> celmin|sleep: it was mostly replaced with the random_new????.?pp files during 1.12 20160304 16:02:32-!- Kwandulin [~Miranda@p200300760F0BD4977DB89C8645B828CE.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160304 16:05:10< gfgtdf> shadowm: i personally think the determinisitc mode option is useful unrelated to debug features. The main reason why this was implemented was for peple who are unhappy about gettign different results when tehy reload (for example because they forgot to move a unit or something) and also for people who want to keep themselves from reloading for better results. 20160304 16:07:51< loonycyborg> if we're removing it for OAB reasons I think would make sense to leave deterministic mode only :P 20160304 16:08:28< zookeeper> vultraz, i can't do anything with this, it keeps choking on "unexpected character"s in a completely nonsensical manner 20160304 16:08:40< vultraz> zookeeper: ? 20160304 16:08:52< zookeeper> vultraz, i can't do anything with this, it keeps choking on "unexpected character"s in a completely nonsensical manner 20160304 16:09:04< vultraz> what is "this" 20160304 16:09:38< gfgtdf> aquileia: i dont think that simply passing a sha has is the way to go. Specialyl becasue i dont think wesnoth will be ableo to download https soon. so my plan way more to use a RSA hs verification so that wesnoth passes the 'encrypted checksum' and the publick key to the updater 20160304 16:09:42< zookeeper> forget i ever said anything then 20160304 16:10:09< gfgtdf> loonycyborg: hmmy but note that the determinisitc mode allows cheats in mp, so it cannot be used everywhere 20160304 16:10:33< gfgtdf> loonycyborg: but really i see no problems with having this optional. 20160304 16:10:34< loonycyborg> really? how exactly those cheats work? 20160304 16:11:16< gfgtdf> loonycyborg: you save teh game, open teh savefule with another client, attack a unit with that client. So then you'll know what will happen when you attack taht unit in teh real game 20160304 16:11:42< gfgtdf> loonycyborg: and choose whteher to attack that unit based on that information 20160304 16:12:02< loonycyborg> clever, 20160304 16:12:52< loonycyborg> perhaps too much work though. 20160304 16:13:20< loonycyborg> lots of saving and loading you'd have to do 20160304 16:13:32< gfgtdf> loonycyborg: hmm maybe you can write scripts or together with adons and unsafe lua that does that automatically :) 20160304 16:14:04< vultraz> simplest solution: don't allow two instances of wesnoth on the same machine :P 20160304 16:14:31< gfgtdf> vultraz: well you coudl still do it on aother machine... 20160304 16:14:38< gfgtdf> vultraz: i hpoe that was a joke 20160304 16:15:47< vultraz> I doubt anyone would go to the trouble of having two laptops 20160304 16:15:52< vultraz> just to cheat on wesnoth 20160304 16:16:28< Soliton> and no one would have two computers for other reasons. 20160304 16:16:31< gfgtdf> vultraz: sill dialoowing multiple wesnoth client is not rqally acceptable 20160304 16:16:41< gfgtdf> really* 20160304 16:16:46< vultraz> you're probably right but why? 20160304 16:17:17< gfgtdf> that was a question to me ? 20160304 16:17:52< vultraz> yes 20160304 16:17:55< Soliton> because it doesn't solve any problems and just restricts the player arbitrarily. 20160304 16:18:30< gfgtdf> vultraz: well people might want to play multiple wwesnoth mp games at the same time, for exmapel to play on game 1 while waiting onb game 2 20160304 16:18:56< gfgtdf> vultraz: or people might want to test their mp scenarios. 20160304 16:19:29< gfgtdf> vultraz: also, specially in an open source game but also in any othe progamm this siaallowinf this stuiff isnt realyl possible 20160304 16:20:25< vultraz> especially in open source? what do you mean 20160304 16:20:34< vultraz> not questioning just curious 20160304 16:20:40< Ravana_> I hope virtual machine is enough to get around such limitation 20160304 16:22:35< gfgtdf> vultraz: well people can downaload teh source, remove the 'run onyl once check' and compile themselves 20160304 16:22:48< gfgtdf> vultraz: in non open your progamm it is of cource also possible to remove cuh checks 20160304 16:22:52< gfgtdf> vultraz: but its harder 20160304 16:23:12< gfgtdf> Ravana_: well we will never implement such limitations dont worry :) 20160304 16:23:26< loonycyborg> no need to restrict that for general builds 20160304 16:23:43< loonycyborg> perhaps only for hypotetical tournament only version 20160304 16:24:06< Ravana_> I got 3 laptops+1 desktop anyways so shoud matter that much 20160304 16:24:09< vultraz> but yeah, I was mostly joking 20160304 16:24:35< gfgtdf> loonycyborg: well that 'cheat' we are talking abotu onyl applied to detemministic mode used im mp, and this 'cheat' is actualyl the main reason why we dont allow deterministic mode in mp 20160304 16:25:03< gfgtdf> loonycyborg: so its not possible do use in in current 1.12 and 1.13 versions. 20160304 16:26:10< gfgtdf> loonycyborg: ofc you can still use the 'relaod game in new client to read map' 'cheat'. 20160304 16:28:15< gfgtdf> Ravana_: i remember games that were so paranioed about cheating that they even had tools to disalow executing them ina vm 20160304 16:28:34< celmin|sleep> gfgtdf: You're right! The only file that includes it is simple_rng.cpp. And thanks for pointing me in the right direction, too. 20160304 16:29:12< vultraz> celmin|sleep: should it be removed then? 20160304 16:29:30< celmin|sleep> Probably, but let's wait until after the release or something. 20160304 16:29:33< gfgtdf> celmin|sleep: you want to change soething in th rng code ? 20160304 16:29:49< vultraz> celmin|sleep: and out of curiosity, what would 'true/false & true' do? 20160304 16:30:03< vultraz> & not && 20160304 16:30:10< celmin|sleep> gfgtdf: No, I didn't want to change something; I wanted to use it for the formula dice operator. 20160304 16:30:20< gfgtdf> celmin|sleep: ah yes 20160304 16:30:42< celmin|sleep> vultraz: Is that "true divided by false and true", or is it "true and true" or "false and true"? 20160304 16:30:58< gfgtdf> celmin|sleep: then you sould most likeley use random_new::generator->next_random() like [set_variable] rand= does 20160304 16:31:10< celmin|sleep> gfgtdf: Thanks. 20160304 16:31:14< vultraz> celmin|sleep: shorthand for 'either true or false followed by "& true"' 20160304 16:31:45< celmin|sleep> "true && true" is always true. "false && true" is always false. 20160304 16:32:07< celmin|sleep> But why are you even asking this? 20160304 16:32:08< gfgtdf> i wonder if c++ allow devision by bool 20160304 16:32:30< gfgtdf> i meant it dosnt really makes sense: it woudl eigher do nothing, or give a devision by zero error 20160304 16:32:42< celmin|sleep> Yeah, but bool is also an integer type. 20160304 16:32:46< vultraz> celmin|sleep: no, "&" not "&&" 20160304 16:32:59< vultraz> I know what && does 20160304 16:33:37< celmin|sleep> vultraz: When operating on booleans, & effectively does the same as &&. It does it in a different way, but assuming your bools have sane values (ie, they're either true=1 or false=0), the outcome will be the same. 20160304 16:33:48< vultraz> ah 20160304 16:33:58< vultraz> ok, good to know 20160304 16:34:07< celmin|sleep> (I would recommend just using && though, because with & there's no short-circuiting.) 20160304 16:34:33< gfgtdf> celmin|sleep: where exactly do you want to use teh dice operator where it needs to by synced? 20160304 16:34:36< celmin|sleep> Do you know what & is in general? 20160304 16:34:58< gfgtdf> celmin|sleep: i don' think its a bad idea i just never found a usecase that motivated my to make it synced 20160304 16:35:04< gfgtdf> me* 20160304 16:35:57< vultraz> celmin|sleep: I'm not sure, actually... 20160304 16:36:16< celmin|sleep> gfgtdf: I don't actually have a specific use case either, but I think it would be useful if you can do eg [set_variable]value=$(2d6) 20160304 16:36:31< irker779> wesnoth: ln-zookeeper wesnoth:master 626bf687a144 / data/core/help.cfg: Re-simplified explanation of healing, with nicer formatting https://github.com/wesnoth/wesnoth/commit/626bf687a144b8e4db18dac68a8079a0c5528b4f 20160304 16:36:33< zookeeper> vultraz, ^ 20160304 16:36:35< gfgtdf> celmin|sleep: hmm ok 20160304 16:36:37-!- celmin|sleep is now known as celticminstrel 20160304 16:37:04< celticminstrel> BTW, anyone have any opinions about merging 611? 20160304 16:37:55< gfgtdf> celticminstrel: well i still dont see why we ahve to rpplace whitepaces in the first place 20160304 16:38:14< gfgtdf> celticminstrel: and i think it'd be easier to fix this issue by just never replacinf hitepaces insavefiles 20160304 16:39:10< vultraz> zookeeper: ah, did you take my version as reference? :) 20160304 16:39:37< gfgtdf> celticminstrel: also i wonder whether teh search shoudl maybe treat whitepace seperated words as differnet fors like in a 'contains all these words' query 20160304 16:39:45< gfgtdf> celticminstrel: i thinka lot of searches do that 20160304 16:40:15< vultraz> gfgtdf: we should 20160304 16:40:42< zookeeper> vultraz, i probably took some pieces of it 20160304 16:41:26< zookeeper> or, rather, i'm pretty sure i did 20160304 16:43:42< vultraz> looks good to be 20160304 16:43:52< vultraz> but there should be dashes around the 'usually 4 or 8 hp' part 20160304 16:43:54< vultraz> not commas 20160304 16:43:56< vultraz> I think 20160304 16:43:58< vultraz> not sure 20160304 16:44:14-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20160304 16:47:31-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 16:49:34-!- horrowind [~Icedove@2a02:810a:8380:834:21b:fcff:fee3:c3ff] has joined #wesnoth-dev 20160304 16:55:30-!- boucman_work [~jrosen@wesnoth/developer/boucman] has quit [Ping timeout: 276 seconds] 20160304 16:58:46< zookeeper> vultraz, feel free to tweak it 20160304 17:06:38< celticminstrel> I wonder if the formula unit test is actually run by the Travis build. I wouldn't be surprised if it's not. 20160304 17:22:57-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160304 17:24:26-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 17:28:24< vultraz> celticminstrel: we should probably merge 611, yes 20160304 17:29:38< celticminstrel> Before or after 1.13.3? 20160304 17:29:50< celticminstrel> And with or without squashing? 20160304 17:30:31-!- EdB [~edb@89.193.129.77.rev.sfr.net] has joined #wesnoth-dev 20160304 17:30:44< vultraz> before with squashing 20160304 17:41:17-!- Greg-Bog_ [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 17:45:22-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 268 seconds] 20160304 17:53:23< vultraz> blagh 20160304 17:53:39< vultraz> I've found out where the crash related to placing units in the editor happens 20160304 17:53:44< vultraz> but can't figure out why.. 20160304 17:57:55-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20160304 17:58:20-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has joined #wesnoth-dev 20160304 17:59:43-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160304 18:00:09-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Client Quit] 20160304 18:03:20-!- Greg-Bog_ [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160304 18:04:12< irker779> wesnoth: dream-88 wesnoth:master 5615fe368647 / src/save_index.cpp: Fixed removing of autosaves when they contain spaces (for translations) https://github.com/wesnoth/wesnoth/commit/5615fe368647b27ba26012a53dcef664ba17e444 20160304 18:05:02< celticminstrel> Almost accidentally erased the original author information on that. >_> 20160304 18:07:02< celticminstrel> Today I leaned you can do "git pull origin pull/#/head". 20160304 18:07:09< celticminstrel> ^learned 20160304 18:08:04< celticminstrel> Instead of "git pull https://github.com/contributor/repo.git branch". 20160304 18:08:09< vultraz> huh 20160304 18:08:54< celticminstrel> (A github feature, not a git feature.) 20160304 18:08:58-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 18:09:04-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160304 18:09:13-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 18:13:26-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20160304 18:13:26-!- boucman [~rosen@wesnoth/developer/boucman] has quit [Remote host closed the connection] 20160304 18:13:56< vultraz> celticminstrel: perhaps you could help me lookinto this 20160304 18:14:02< celticminstrel> ? 20160304 18:14:12< vultraz> the crash in the editor when you place a unit 20160304 18:14:46< vultraz> I've tracked it down to editor/action/mouse/mouse_action_unit.cpp:124 20160304 18:14:52< vultraz> which calls one of the unit class constructors 20160304 18:15:04< vultraz> the segfault seems to be in the id_manager, somewhere 20160304 18:15:32< vultraz> adding a check for resources::gameboard around unit.cpp:696 stops the crash, but only for the first unit you place 20160304 18:15:38< vultraz> so that's not it.. 20160304 18:16:12< vultraz> commenting out that line doesn't stop it either.. 20160304 18:16:35< celticminstrel> Are you using a debugger? 20160304 18:17:25< vultraz> it's not really telling me anything useful 20160304 18:17:27< vultraz> just one line 20160304 18:17:42< celticminstrel> Are you using a debugger? 20160304 18:17:43< gfgtdf> vultraz: iirc we had this issue already 20160304 18:17:58< vultraz> gfgtdf: yes I mentioned it before but I can't fix it 20160304 18:17:58< gfgtdf> vultraz: the prolem was that there is no id manager avialable durign the editor 20160304 18:18:10< celticminstrel> Ah. That would do it. 20160304 18:18:15< vultraz> celticminstrel: i was, yes 20160304 18:18:35< celticminstrel> So "that line" is the line on which the debugger stops when the segfault occurs? 20160304 18:18:51< gfgtdf> vultraz: specially you cannot do resources::gameboard->unit_id_manager becaue resources::gameboard is null unless ingame 20160304 18:19:17< vultraz> gfgtdf: I expected something like that 20160304 18:19:20< celticminstrel> Where is the id_manager defined? 20160304 18:19:29< vultraz> unit_id.*pp 20160304 18:19:42< gfgtdf> vultraz: a possible fix coudl be to have a unit id manger instance in the editor and pass that to the unit constructor 20160304 18:20:39< vultraz> I guess the editor doesn't need a gameboard does it 20160304 18:20:44< celticminstrel> No. 20160304 18:20:58< celticminstrel> So the ID manager is in the gameboard? 20160304 18:21:29< gfgtdf> celticminstrel: yes but its not liek it needs gameboard to function 20160304 18:22:02< celticminstrel> And where is this called from the unit constructor? 20160304 18:22:18< celticminstrel> Oh, wait, I found it. 20160304 18:23:05< celticminstrel> The constructor already takes an id_manager argument, so yeah, you can declare one somewhere in the editor and pass that to the constructor. 20160304 18:23:29< celticminstrel> ...why does it take a vconfig? 20160304 18:23:59< vultraz> celticminstrel: wrong constructor 20160304 18:24:15< vultraz> celticminstrel: the case in question uses the one at 616 20160304 18:24:29< celticminstrel> Ah. 20160304 18:24:53< gfgtdf> celticminstrel: mostlikeley becsue we don't want all variables to be sustututed. For exampel if we have a [filter_recall] in [unit] we maybe dont want variables inside that to be substituted 20160304 18:24:57< gfgtdf> celticminstrel: just a guess though 20160304 18:25:00< celticminstrel> What's "real_unit" for? Perhaps passing false to that would suffice. 20160304 18:26:12< vultraz> seems to control whether it's a real or fake unit 20160304 18:26:18< vultraz> if real, it gets a name and traits 20160304 18:26:20< vultraz> i think.. 20160304 18:26:32-!- EdB [~edb@89.193.129.77.rev.sfr.net] has quit [Quit: Konversation terminated!] 20160304 18:26:58< gfgtdf> 'fake' units are the dummy units used by whiteboard etc for the visual effect 20160304 18:27:19< celticminstrel> Hmm, I guess that won't help actually. The gameboard is also referenced in the constructor body. 20160304 18:31:53-!- mjs-de [~mjs-de@x4db69e01.dyn.telefonica.de] has joined #wesnoth-dev 20160304 18:37:14-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth-dev 20160304 18:42:02-!- ancestral [~ancestral@97-116-184-84.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20160304 18:54:33-!- midzer [~quassel@p5B312E5C.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] 20160304 19:00:39-!- midzer [~quassel@p5B312EF2.dip0.t-ipconnect.de] has joined #wesnoth-dev 20160304 19:42:12-!- Waste [~Cracker@blk-138-75-115.eastlink.ca] has joined #wesnoth-dev 20160304 19:43:44< zookeeper> it's delightful to see that yes, now you can actually make moveto-event driven abilities without sacrificing undo. 20160304 19:44:07 * zookeeper doesn't know how the hyphen ended up between the wrong words 20160304 19:44:52-!- Waste [~Cracker@blk-138-75-115.eastlink.ca] has quit [Client Quit] 20160304 19:47:22< zookeeper> managing [on_undo] and [on_redo] is clearly not for the faint of heart so i can't really recommend it for every newbie who wants to make such an ability, but still, it's possible. 20160304 19:48:11 * celticminstrel should probably test sometime if they work correctly with [return]. 20160304 19:49:08< celticminstrel> I feel like they probably would, but not sure. 20160304 19:50:33< celticminstrel> They're an unsynced command scope (like [set_menu_item][command] but unlike [message][option][command] or any of the flow control tags), so they probably don't require any special handling. 20160304 19:51:13< celticminstrel> ([event] is also an unsynced command scope.) 20160304 19:53:35< Aginor> morning 20160304 19:53:56 * celticminstrel isn't quite sure if unsynced is the correct word. 20160304 19:56:02-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160304 20:19:12-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20160304 20:34:52-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 20:39:07< irker779> wesnoth: Andreas Löf wesnoth:master d9716ca162ca / RELEASE_NOTES changelog: Update release notes and changelog https://github.com/wesnoth/wesnoth/commit/d9716ca162ca4cdc779761bcb233e1d75a90f1ab 20160304 20:39:45-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 276 seconds] 20160304 20:40:15< zookeeper> ahem 20160304 20:40:56< zookeeper> celticminstrel, the backstab issue still remains: the damage shows up doubled in the right panel. 20160304 20:41:17< gfgtdf> zookeeper: afaik this is intentional 20160304 20:41:31< zookeeper> no, it's incredibly misleading 20160304 20:41:46< celticminstrel> I was about to agree with gfgtdf, but then I realized why it's misleading. 20160304 20:42:34< celticminstrel> If you have F E1 B E2 where F is a friend, E1 and E2 are enemies, and B is the backstabber, the damage is doubled when they attack E1 but not when they attack E2. 20160304 20:43:11< gfgtdf> zookeeper: i didnt say its good that way. I just meant that this was explicitly added during 1.11.x to behave like this 20160304 20:43:17-!- travis-ci [~travis-ci@ec2-54-196-63-243.compute-1.amazonaws.com] has joined #wesnoth-dev 20160304 20:43:18< travis-ci> dreamer-88/wesnoth#4 (master - 5615fe3 : dream-88): The build passed. 20160304 20:43:18< travis-ci> Build details : https://travis-ci.org/dreamer-88/wesnoth/builds/113745591 20160304 20:43:18-!- travis-ci [~travis-ci@ec2-54-196-63-243.compute-1.amazonaws.com] has left #wesnoth-dev [] 20160304 20:44:08< zookeeper> gfgtdf, no, it's due to the backstab implementation changes in 1.13 20160304 20:44:32< gfgtdf> zookeeper: hmm then maybe we talk abotu dufferent things 20160304 20:47:14-!- horrowind [~Icedove@2a02:810a:8380:834:21b:fcff:fee3:c3ff] has quit [Quit: horrowind] 20160304 20:48:18-!- nurupo [~nurupo.ga@unaffiliated/nurupo] has quit [Quit: nurupo] 20160304 20:48:35< zookeeper> celticminstrel, if you don't have a fix handy then i'd suggest just dropping back to the old WML for the time being 20160304 20:48:49-!- nurupo [~nurupo.ga@unaffiliated/nurupo] has joined #wesnoth-dev 20160304 20:49:03< celticminstrel> If you want to revert specifically for the release and then unrevert afterwards, I guess that's okay. 20160304 20:49:09< celticminstrel> I'll investigate a fix later. 20160304 20:49:46< celticminstrel> Though it's a dev release, I dunno if reverting is really important. 20160304 20:49:51< celticminstrel> I'll let you decide. 20160304 20:49:59< celticminstrel> ^since it's 20160304 20:50:31< zookeeper> well you'd have to also revert the deprecation warnings then 20160304 20:50:48< celticminstrel> Were those a separate commit? 20160304 20:51:07< celticminstrel> Reverting applies to a set of commits - 'git revert ...' 20160304 20:51:41< gfgtdf> zookeeper: how exactly can i reproduce taht bug that you talk about ? 20160304 20:51:57< zookeeper> gfgtdf, create a thief, look at its damage in the right panel 20160304 20:52:19< zookeeper> celticminstrel, well i can't find any deprecation warnings in 12c96a94d's diff 20160304 20:52:37< gfgtdf> zookeeper: right you said backstab 20160304 20:52:45< celticminstrel> Oh wait, is it shown doubled even when the context doesn't allow it at all? 20160304 20:52:46< gfgtdf> zookeeper: i somehow thought or charge special 20160304 20:53:00< zookeeper> celticminstrel, uh, yeah? i mean that's the problem :P 20160304 20:53:17< gfgtdf> of* 20160304 20:53:21-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 20:53:24< celticminstrel> I thought the problem was only when it's in a position that it could backstab someone. 20160304 20:53:30< celticminstrel> That's worse than I thought then. 20160304 20:54:17< zookeeper> well, i'd say it shouldn't show the doubled damage even in that case, because then that still lies to you if you attack something else. 20160304 20:54:26< celticminstrel> I agree. 20160304 20:54:35< zookeeper> you can't have proper context before the attack dialog pops up 20160304 20:55:05< celticminstrel> I'm not sure if you can revert merge commits, but e74c119 is the merge commit that added it. Alternatively, get the commit list from PR488. 20160304 20:55:42< zookeeper> i take it that you're saying you don't have time to do it yourself? :p 20160304 20:55:58< celticminstrel> I'm on another branch, it's a pain to switch. >_> 20160304 20:58:23-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 268 seconds] 20160304 21:06:24-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Ping timeout: 276 seconds] 20160304 21:07:08< zookeeper> celticminstrel, well, i can take out the backstab WML change and the 3-line deprecation warning. is that all that's needed? 20160304 21:08:09< celticminstrel> Sure, though that's not a simple 'git revert'. 20160304 21:08:39< zookeeper> of course 20160304 21:08:52< zookeeper> easier for me to just make a new commit than mess with reversions which touch a gazillion other things too 20160304 21:08:57< celticminstrel> Actually, you can't revert 12x96a9, can you... since that also affects leadership/inspire. 20160304 21:09:15< celticminstrel> c not x 20160304 21:09:19< zookeeper> exactly 20160304 21:09:26< zookeeper> so i'll just do backstab 20160304 21:14:48< celticminstrel> Started a new page, pretty basic so far: https://wiki.wesnoth.org/Wesnoth_Formula_Language 20160304 21:19:15< irker779> wesnoth: ln-zookeeper wesnoth:master e0ac69ce9620 / data/core/macros/abilities.cfg src/unit_abilities.cpp: Revert parts of 12c96a94 to fix doubled backstab damage in right panel https://github.com/wesnoth/wesnoth/commit/e0ac69ce962069de1f04e519db48b58a78e593b4 20160304 21:23:05< celticminstrel> It's intended to replace sections 3-7 of the FormulaAI page. 20160304 21:31:06-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 21:35:41< irker779> wesnoth: gfgtdf wesnoth:master 674db19cef6e / src/game_initialization/playcampaign.cpp: fix OOS in nogui mode https://github.com/wesnoth/wesnoth/commit/674db19cef6edfbf17c92a80bbde4980c9140b93 20160304 21:35:43-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 244 seconds] 20160304 21:38:23< irker779> wesnoth: gfgtdf wesnoth:master 4d36f087842a / src/playmp_controller.cpp: fix lingering for nogui mode https://github.com/wesnoth/wesnoth/commit/4d36f087842af94207cc9ae804e3c410a4ece754 20160304 21:38:33-!- ChipmunkV [~vova@d0017-2-88-172-31-68.fbx.proxad.net] has joined #wesnoth-dev 20160304 21:45:37-!- louis94 [~~louis94@91.178.241.95] has joined #wesnoth-dev 20160304 21:47:09-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 21:52:50< gfgtdf> celticminstrel: i wonder whether we shodul unify the foruma unit attribuutes to match teh standart names 20160304 21:53:14< gfgtdf> celticminstrel: the main qurestion here is how much they are already used in current code 20160304 21:53:54< celticminstrel> gfgtdf: Already did that. 20160304 21:54:03< gfgtdf> celticminstrel: really ? 20160304 21:54:05< celticminstrel> What I did was allow both the old name and the standard name to work. 20160304 21:54:13< celticminstrel> On a branch, not merged yet. 20160304 21:54:14< gfgtdf> celticminstrel: ah ok 20160304 21:54:40< gfgtdf> celticminstrel: maybe we shoudl show deprecation messages for the old names ? 20160304 21:54:48< celticminstrel> Maybe. 20160304 21:54:52< celticminstrel> I didn't do that. 20160304 21:57:07< gfgtdf> celticminstrel: is 'normal' ai wirtten in formula ? 20160304 21:57:59< celticminstrel> Huh? 20160304 22:00:39< gfgtdf> celticminstrel: what exactly was unclear ? 20160304 22:02:48< celticminstrel> I'm not sure if this answers your question, but the only place where FormulaAI is used in mainline in LoW. 20160304 22:03:55< gfgtdf> celticminstrel: ok that answeres mym question 20160304 22:04:26< gfgtdf> celticminstrel: so the codes in data/ai/formula are all for LoW ? 20160304 22:04:57< celticminstrel> I don't think LoW uses those. I think it has some under its own dir. 20160304 22:05:17< gfgtdf> celticminstrel: so the codes in data/ai/formuly are currently unused ? 20160304 22:05:35< gfgtdf> formula* 20160304 22:05:37< celticminstrel> I think so. I believe they might've been intended as examples or something. 20160304 22:08:09-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160304 22:09:07-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 22:14:11-!- Kwandulin [~Miranda@p200300760F0BD4977DB89C8645B828CE.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160304 22:18:46-!- gfgtdf [~chatzilla@f050182048.adsl.alicedsl.de] has quit [Quit: ChatZilla 0.9.92 [Firefox 44.0.2/20160210153822]] 20160304 22:42:12-!- oldlaptop [~quassel@50-37-53-169.mskg.mi.frontiernet.net] has quit [Read error: Connection reset by peer] 20160304 23:00:47-!- ancestral [~ancestral@63.92.240.233] has joined #wesnoth-dev 20160304 23:01:58-!- ancestral [~ancestral@63.92.240.233] has quit [Client Quit] 20160304 23:12:35-!- ancestral [~ancestral@209.181.254.220] has joined #wesnoth-dev 20160304 23:14:12-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20160304 23:16:21-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20160304 23:27:47< ancestral> MAME went FOSS — took them 10 months to contact everyone to change the license: http://mamedev.org/?p=422 20160304 23:28:34< celticminstrel> Someone posted that in another channel, and one of my thoughts was "Wow", and another was "Should Wesnoth be doing this?". 20160304 23:28:44< celticminstrel> (Mainly for resources rather than code, mind you.) 20160304 23:29:34< ancestral> I’m up for it 20160304 23:30:31< ancestral> (Obviously, easier said than done. Of course, there probably have been fewer contributors to art and music, but this could still be, what, 100 or more people?) 20160304 23:32:32-!- louis94 [~~louis94@91.178.241.95] has quit [Quit: Konversation terminated!] 20160304 23:33:29 * celticminstrel is still working on the new Wesnoth Formula Language wiki page. 20160304 23:35:39< ancestral> After I finish the trailer 20160304 23:37:42< celticminstrel> What? 20160304 23:38:07< ancestral> I plan on making two in-game GUIs — one that is just a tad larger than the current Default, and another more experimental but usable 20160304 23:38:21< ancestral> (Sorry, important texts) 20160304 23:38:40< celticminstrel> Oh, you just hit enter mid-sentence, sorry. 20160304 23:38:52< celticminstrel> I assume by GUI here you mean themes. 20160304 23:39:27< ancestral> Whoops 20160304 23:39:30< ancestral> s/GUI/Themes 20160304 23:39:40< ancestral> Yeah, not trying to step on your and vultraz’s shoes 20160304 23:39:53< ancestral> celticminstrel: Anyway, what I was going to say is 20160304 23:39:57< celticminstrel> Well, themes are also a GUI thing. 20160304 23:40:00< celticminstrel> Just not GUI2. 20160304 23:40:03< ancestral> Right 20160304 23:40:04< shadowm> "I plan not only on making GUI3, but also GUI4! Because I can." 20160304 23:40:10< celticminstrel> Hah. 20160304 23:40:16< ancestral> I’d be willing to update the Theme wiki 20160304 23:40:32< celticminstrel> Go for it. 20160304 23:40:40< ancestral> Maybe we need more names in place of numbers 20160304 23:40:51< celticminstrel> Unfortunately I have no idea what this means. 20160304 23:41:55< ancestral> Like 1.13.3 could be Haldric 20160304 23:42:33< shadowm> What would we gain from that? 20160304 23:42:41< ancestral> Nothing at all 20160304 23:42:53< ancestral> I was about to expand upon the joke 20160304 23:43:05< shadowm> So, no particular reason for doing it on a release-by-release basis instead of series-by-series-- okay. 20160304 23:43:37< ancestral> I was reminded of 0 A.D. which chooses names for their releases 20160304 23:43:53< ancestral> Some of the hardest-to-pronounce words 20160304 23:44:51< ancestral> I like how they produce a financial report 20160304 23:44:54< ancestral> https://play0ad.com/0-a-d-financial-report-november-2015/#more-4050 20160304 23:45:15< ancestral> So there’s little doubt in people’s minds that money is being properly spent and accounted for 20160304 23:47:13< shadowm> I think I was told that it was too much work to do that and nobody cared. 20160304 23:47:19< loonycyborg> it seems wmlgettext is barfing on some of our wml files 20160304 23:47:22< shadowm> By the big man himself. 20160304 23:48:30< loonycyborg> causing it to forfeit all data past error point 20160304 23:48:30< shadowm> Okay, I can't find that, but I have a log where he specifically tells me to not share numbers after informing them to me. 20160304 23:48:45< shadowm> s/tells/suggests/ 20160304 23:48:50< ancestral> Trust the man behind the curtain? 20160304 23:49:20< shadowm> I never thought of him like a wizard. 20160304 23:49:26< loonycyborg> yes, that's a big fear 20160304 23:49:41< loonycyborg> if people will see how much money is really needed 20160304 23:49:57< loonycyborg> then they fear people won't donate more when they see that project is well served 20160304 23:50:08< loonycyborg> thus no personal yachts and stuff 20160304 23:50:23< shadowm> Except unlike OAD we don't take donations. 20160304 23:50:33< ancestral> There has always been a veil over the finances 20160304 23:50:47< ancestral> (I mean, maybe at one time there was no money) 20160304 23:51:04< shadowm> (As for why we don't take donations: "[...] firstly we did investigate the possibility of making Wesnoth a 'charity' which could take tax free donations / unfortunately we found this to be more expense than it would be worth. Likewise, well, we haven't taken donations just because the amount of money is small and because honestly there are probably more needy projects and causes." 20160304 23:51:39< shadowm> "however, we could consider starting a Patreon for Wesnoth.") 20160304 23:51:48< ancestral> I have criticisms regarding that, but I won’t share them now. 20160304 23:51:52< shadowm> (Then the subject was never discussed again.) 20160304 23:51:55< ancestral> (Patreon I’m fine with) 20160304 23:52:02< loonycyborg> me too btw 20160304 23:52:58< ancestral> I have one I will gladly share 20160304 23:53:32< zookeeper> loonycyborg, but it doesn't say which file? 20160304 23:53:46< loonycyborg> a lot of files in fact 20160304 23:53:52< ancestral> shadowm: “The Big Man” you refer to is Dave, yes? 20160304 23:54:00< shadowm> Yes. 20160304 23:54:23< loonycyborg> WML seems invalid for data/gui/default/window/lobby_main.cfg, node info extraction forfeited past the error point at /home/sergey/vcs-checkouts/wesnoth/utils/wmlxgettext line 210. 20160304 23:54:28< shadowm> And he doesn't read logs. :p 20160304 23:54:36< shadowm> He doesn't read this channel at all nowadays, really. 20160304 23:54:37< ancestral> He oversees financial and/or administrative aspects, but is barely involved 20160304 23:55:00< ancestral> It doesn’t make sense 20160304 23:55:17< ancestral> Make someone else stewards of these aspects, or step in more often 20160304 23:55:26< ancestral> That’s my criticism 20160304 23:55:32< loonycyborg> shadowm: you know anything about those errors from wmlxgettext? 20160304 23:55:39-!- ancestral [~ancestral@209.181.254.220] has quit [Quit: i go nstuf kthxbai] 20160304 23:55:42< shadowm> loonycyborg: Oh, ignore those. 20160304 23:55:59< shadowm> Only those that deal with that file in particular or the test scenario, that is. 20160304 23:56:25< loonycyborg> that I can, but forfeited translations seem potentially dangerous 20160304 23:56:39< shadowm> Not really, it just means that it won't extract strings from that file. 20160304 23:56:55< shadowm> It's a non-issue because it's the GUI2 MP lobby, which is broken and disabled by default. 20160304 23:57:27< shadowm> We don't care about translatability of strings in the test scenario either. 20160304 23:57:35< loonycyborg> hmm ok --- Log closed Sat Mar 05 00:00:42 2016