--- Log opened Sat Oct 29 00:00:36 2016 20161029 00:30:51-!- Greg-Bog_ [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161029 00:33:24-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20161029 00:35:46-!- Greg-Bog_ [~greg_bogg@173.240.241.83] has quit [Ping timeout: 250 seconds] 20161029 01:25:16-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161029 01:29:40-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 250 seconds] 20161029 01:41:05-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20161029 02:04:23-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20161029 02:21:52-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20161029 02:33:44-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Quit: wedge009] 20161029 02:34:01-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20161029 02:47:56-!- Jetrel [~Jetrel@2001:558:6014:1e:2422:435:dd84:bbf3] has quit [Quit: "The highest possible stage in moral culture is when we recognize that we ought to control our thoughts." - Charles Darwin] 20161029 02:50:24-!- Jetrel [~Jetrel@2001:558:6014:1e:2422:435:dd84:bbf3] has joined #wesnoth-dev 20161029 03:05:05-!- JyrkiVesterinen [~JyrkiVest@87-100-132-169.bb.dnainternet.fi] has joined #wesnoth-dev 20161029 03:28:23-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 245 seconds] 20161029 03:28:34-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20161029 03:29:40-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161029 03:33:48-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 245 seconds] 20161029 03:47:10-!- irker139 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20161029 03:59:47-!- irker721 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20161029 03:59:47< irker721> wesnoth: Jyrki Vesterinen wesnoth:master e3c249fd88f7 / src/scripting/lua_common.hpp: Fix Lua error when WML assigns a real number to an integer attribute https://github.com/wesnoth/wesnoth/commit/e3c249fd88f7509a9465bc231ca783beb6d56b1a 20161029 03:59:55< JyrkiVesterinen> mattsc: ^ 20161029 04:00:24< JyrkiVesterinen> It turned out that I only needed to edit two macros. :) 20161029 04:08:56-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20161029 04:09:58-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 256 seconds] 20161029 04:09:59-!- wedge010 is now known as wedge009 20161029 04:59:14-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Ping timeout: 250 seconds] 20161029 04:59:48-!- vultraz [~chatzilla@124.109.10.167] has joined #wesnoth-dev 20161029 04:59:48-!- vultraz [~chatzilla@124.109.10.167] has quit [Changing host] 20161029 04:59:48-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-dev 20161029 05:17:59-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161029 05:22:20-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20161029 05:36:18-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 252 seconds] 20161029 05:39:55-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20161029 05:44:20-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has joined #wesnoth-dev 20161029 05:58:01-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has joined #wesnoth-dev 20161029 05:59:36-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has quit [Ping timeout: 260 seconds] 20161029 06:03:54-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has joined #wesnoth-dev 20161029 06:59:20-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 260 seconds] 20161029 06:59:58-!- irker721 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20161029 07:06:20-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161029 07:10:36-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20161029 07:24:17< celticminstrel> I'm slightly surprised there are no real-number attributes... 20161029 07:25:19-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has quit [Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] 20161029 07:38:43-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20161029 07:55:45-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20161029 08:01:27< zookeeper> gfgtdf, celticminstrel, the point of the mask is apparently to place villages and dirt/rockbound/mushrooms which the old generator presumably doesn't place. 20161029 08:04:16< zookeeper> that said, no matter how fancy a generator is, there will always be a lot of circumstances where one needs masking like that. in this case it might still be good for placing the villages, less so for the other stuff. 20161029 08:12:57-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20161029 08:25:45-!- JyrkiVesterinen [~JyrkiVest@87-100-132-169.bb.dnainternet.fi] has quit [Quit: .] 20161029 08:43:30-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has joined #wesnoth-dev 20161029 08:54:38-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161029 08:59:20-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20161029 09:11:13-!- atarocch [~atarocch@93.56.160.28] has joined #wesnoth-dev 20161029 09:20:29-!- RatArmy [~RatArmy@133.15.175.65] has joined #wesnoth-dev 20161029 09:36:36-!- RatArmy [~RatArmy@133.15.175.65] has quit [Quit: Leaving] 20161029 09:54:59-!- mjs-de [~mjs-de@x4db6a6ab.dyn.telefonica.de] has joined #wesnoth-dev 20161029 10:01:04-!- mjs-de [~mjs-de@x4db6a6ab.dyn.telefonica.de] has quit [Remote host closed the connection] 20161029 10:42:54-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161029 10:47:12-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 256 seconds] 20161029 10:47:37-!- blackspirit [~blackspir@adsl-128.37.6.49.tellas.gr] has joined #wesnoth-dev 20161029 11:19:41-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161029 11:25:00-!- gfgtdf [~chatzilla@x50ab6fb9.dyn.telefonica.de] has joined #wesnoth-dev 20161029 11:27:48< gfgtdf> zookeeper: i actuall don't think the masked placed teh villages here 20161029 11:34:18-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20161029 11:34:23< gfgtdf> mask* 20161029 11:47:23-!- blackspirit [~blackspir@adsl-128.37.6.49.tellas.gr] has quit [Remote host closed the connection] 20161029 11:53:34-!- JyrkiVesterinen [~JyrkiVest@87-100-168-130.bb.dnainternet.fi] has joined #wesnoth-dev 20161029 11:56:18-!- blackspirit [~blackspir@adsl-128.37.6.49.tellas.gr] has joined #wesnoth-dev 20161029 12:09:33-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 265 seconds] 20161029 12:10:48-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has joined #wesnoth-dev 20161029 12:30:24-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161029 12:34:52-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20161029 12:49:19-!- louis94 [~~louis94@91.178.241.117] has joined #wesnoth-dev 20161029 12:51:07-!- JyrkiVesterinen [~JyrkiVest@87-100-168-130.bb.dnainternet.fi] has quit [Remote host closed the connection] 20161029 12:53:01-!- JyrkiVesterinen [~JyrkiVest@87-100-168-130.bb.dnainternet.fi] has joined #wesnoth-dev 20161029 12:57:02-!- louis94 [~~louis94@91.178.241.117] has quit [Ping timeout: 252 seconds] 20161029 13:10:12-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20161029 13:13:11< mattsc> JyrkiVesterinen: thanks, that’s an amazingly simple fix 20161029 13:13:41< mattsc> And I don’t know how you people figure out things like that. :) 20161029 13:14:33< JyrkiVesterinen> It was just simple code analysis. I was curious to see where the code was assuming that the value is an integer. 20161029 13:14:52< JyrkiVesterinen> And when I saw that it's inside a macro, fixing the problem was trivial. :) 20161029 13:16:24< vultraz> JyrkiVesterinen: im curious about this fixed-size widget stuff you're working on 20161029 13:16:35< JyrkiVesterinen> What about it? 20161029 13:17:08< mattsc> Right. I’ve found that many times, that the fix is often much simpler than I would have thought and that the trick is figuring out what is going on and why (for me at least). 20161029 13:17:18< vultraz> the branch is called fixed-size-chatbox 20161029 13:17:24< vultraz> what exactly is the intent here? 20161029 13:17:35< vultraz> and how does it affect teh stscked widget widget, ehich you changed? 20161029 13:17:41< vultraz> the stacked widget, which* 20161029 13:17:48< JyrkiVesterinen> The intent is preventing the chatbox from growing in MP lobby. 20161029 13:18:26< JyrkiVesterinen> It's currently wrapped in GUI_WIDGET_FORCE_MINIMUM_SIZE to ensure that it's large enough, but that macro doesn't limit *maximum* size. 20161029 13:18:47< vultraz> yes, but. 20161029 13:19:01< vultraz> because of the way i designed that it never grows bigger than that 20161029 13:19:11< JyrkiVesterinen> The chatbox wants to grow when more messages appear. Its "best size" is however much it would need to show all the messages without the scrollbar. 20161029 13:19:31< vultraz> uh... 20161029 13:19:33< vultraz> what? o_O 20161029 13:19:35< vultraz> really? 20161029 13:19:48< vultraz> I did not observe this 20161029 13:19:48< JyrkiVesterinen> I have seen it growing too large, and can reproduce that problem at will with the "simulate lobby traffic" script. 20161029 13:20:17< vultraz> perhaps i shouldn't have removed the min size from the gamelist.. 20161029 13:22:01< vultraz> JyrkiVesterinen: I wonder if this should be implemented as a w, h key pair available to all widgets 20161029 13:22:16< vultraz> just a design though 20161029 13:22:42< vultraz> at the very least, please do ensure the keys to your fixed-size-er are evaluated as formulas 20161029 13:25:00< JyrkiVesterinen> http://i.imgur.com/2b8urXq.png 20161029 13:25:37< JyrkiVesterinen> I took the approach of creating a separate widget because I found it the easiest option. 20161029 13:26:30< JyrkiVesterinen> And Wesnoth has survived for years without fixed-size widgets. I feel it's not necessary to make size fixating a base widget feature. 20161029 13:26:54< JyrkiVesterinen> Yes, the keys are already evaluated as formulas. 20161029 13:26:57< vultraz> ok, good 20161029 13:27:30< vultraz> Do use this for all chatbox widgets 20161029 13:27:35< vultraz> widget uses* 20161029 13:29:19< vultraz> (and please use the current formulas I have for min size) 20161029 13:29:45< JyrkiVesterinen> Indeed, I plan to use them. 20161029 13:31:08< vultraz> I can already think of another use for this 20161029 13:35:14-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20161029 14:34:43-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth-dev 20161029 14:54:03-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has joined #wesnoth-dev 20161029 14:59:46-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has joined #wesnoth-dev 20161029 15:51:23< mattsc> So, question about intended behavior: 20161029 15:51:51< mattsc> “side_name: (Version 1.13.5 and later only) The name of the side, used for example in the new turn dialog, defaults to name if the side was inside a [scenario]” — that’s inside [side] 20161029 15:52:10< mattsc> If you have a persistent side, you don’t need to specify name 20161029 15:52:41< mattsc> in later scenarios where the side re-occurs, I mean 20161029 15:52:49< mattsc> What should it default to then? 20161029 15:53:14< mattsc> In current master, if neither name= nor side_name= is given, the turn dialog name is blank 20161029 15:53:30< mattsc> which is a change of behavior from before 20161029 15:54:59< mattsc> Personally, I would consider this a bug (and close to all scenarios in my campaigns need to be updated because of this), but I guess it could be called intended. 20161029 15:58:29< celticminstrel> What was the behaviour before? 20161029 16:00:51< mattsc> It would default to the name of the side leader. 20161029 16:01:38< celticminstrel> Isn't that what name is? 20161029 16:01:56< celticminstrel> If name isn't given... I guess the leader's name would be the player's login name? 20161029 16:02:11< mattsc> Yes, but if it is not given specifically now (because the side leader is carried over), then there name in the turn dialog is blank. 20161029 16:02:22< mattsc> I’m talking SP here. 20161029 16:02:39< celticminstrel> Well, the player login name is probably still known in SP as long as you've used MP at least once. 20161029 16:02:47< celticminstrel> But that's beside the point. 20161029 16:02:53< mattsc> I don’t want the player’s name. 20161029 16:03:02< mattsc> Right. 20161029 16:03:26< celticminstrel> This doesn't sound intended to me, but gfgtdf was the one who implemented side_name IIRC so he's a better person to ask. 20161029 16:03:51< mattsc> If I have a side whose leader’s name is … “Bob” in scenario one, and the side carries over to S2, I still want it to be identified by Bob in S2. 20161029 16:04:36< mattsc> Without having to tell it again specifically (which is how it worked previously) 20161029 16:05:02< mattsc> *unless* I tell it specifically, of course, to change it, so side_name= is defintiely useful for that. 20161029 16:05:59< mattsc> In fact, I have a scenario where I go through quite some hoops to accomplish this change of the display name, so that could be significanlty simplified now. 20161029 16:09:36-!- DeFender1031 [~DeFender1@46-116-17-86.bb.netvision.net.il] has joined #wesnoth-dev 20161029 16:55:01< celticminstrel> This needs a changelog entry. https://wiki.wesnoth.org/index.php?title=InterfaceActionsWML&curid=1427&diff=57983&oldid=57842 20161029 16:55:04< celticminstrel> I think. 20161029 16:55:17< celticminstrel> I didn't see it when I was looking at the changelog last time I updated it, at least. 20161029 16:57:07< DeFender1031> I look at that revision and see "DevFeature" with a buncha numbers and keep thinking it says "DeFender1031" and wondering why my name is there. :P 20161029 16:57:23< celticminstrel> Heh 20161029 16:57:58< celticminstrel> I would've said "overrides" rather than "overwrites" in your last edit. 20161029 16:58:17< celticminstrel> "overwrites" seems to imply permanency. 20161029 16:58:53< DeFender1031> celticminstrel, i copied it from the one entry that was already there, but it's a good point. i'll go correct it. 20161029 16:59:03< celticminstrel> No, I already did in UnitTypeWML. 20161029 16:59:13< DeFender1031> okay then 20161029 16:59:26< DeFender1031> well i'll take care of it in my edit to single 20161029 16:59:57< celticminstrel> I wonder if vultraz could move Unittypewml to UnitTypeWML. 20161029 17:00:07< celticminstrel> Maybe Eventwml to EventWML. 20161029 17:00:32< celticminstrel> Not sure if changing case works as a move. 20161029 17:00:47< celticminstrel> Since MediaWiki is generally case-insensitive but case-preserving... 20161029 17:01:46< DeFender1031> yes, you can change case in a move 20161029 17:01:55< DeFender1031> do us mere mortals not have move permission? 20161029 17:02:19< celticminstrel> As far as I know vultraz is the only active member with move permission. 20161029 17:02:41< celticminstrel> Maybe shadow m too... not sure... 20161029 17:02:56< celticminstrel> (Since he has ssh access it would make sense.) 20161029 17:03:52< DeFender1031> well if he has direct access, even if the software doesn't currently mark him as having that permission, he could just edit the DB to give it. 20161029 17:04:02< DeFender1031> anyway, yeah, we mere mortals don't have move access. 20161029 17:13:49< gfgtdf> mattsc: i wonder wher you needed the non-integer parameters in those lua functions? 20161029 17:14:41< gfgtdf> mattsc: note tha passing non integer values to tags that exepct integer ingerer ones can cause OOS in 1.12. 20161029 17:15:40< JyrkiVesterinen> gfgtdf: 20161029 17:15:40< JyrkiVesterinen> https://www.youtube.com/watch?v=Pu42cwdjh7s&list=PLJLZUeXzG7viNi1X3p6va8hHNgK23k-8B&index=4 20161029 17:15:53< JyrkiVesterinen> 20161028 22:10:33< mattsc> [gold] used to work with non-integer values. (I have a scenario in which somebody gives half of previously saved gold back; since it previously worked with non-integers, I did not bother with rounding. I bet I’m not the only one doing that.) 20161029 17:16:02< JyrkiVesterinen> (Sorry, the first one was wrong paste.) 20161029 17:16:40< gfgtdf> JyrkiVesterinen: hmm '[gold] used to work with non-integer values' is only partially correct, since it casued OOS in 1.12 20161029 17:16:41< JyrkiVesterinen> Passing a non-integer value wasn't intentional. 20161029 17:18:16< gfgtdf> JyrkiVesterinen: there was a bug in workconquest2 Addon where it used eaxctly that ([gold] value="$(300.0/number_players)" or similar) that caused OOS 20161029 17:20:05< gfgtdf> mattsc: so if you use [gold] like that in 1.12 you should consider doding the appropriate rounding manually. 20161029 17:41:06-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20161029 18:10:16< vultraz> celticminstrel: no, smart pointer, maybe> 20161029 18:10:17< vultraz> ? 20161029 18:13:30< vultraz> I mean, the only reason swap_child needs to be deleted is the pointer isn't handled anymore 20161029 18:31:16< celticminstrel> vultraz: If you want to use a smart pointer there, you'll need to trawl through the entirety of the GUI2 framework and make sure smart pointers are used everywhere. 20161029 18:31:56< celticminstrel> You could easily add a replace_child function that simply does "delete swap_child()". 20161029 20:01:27< vultraz> DeFender1031: did you clone ever finish? 20161029 20:15:43< DeFender1031> vultraz, it did, but I subsequently learned that using git's native transfer protocol (which is what I used) is insecure 20161029 20:16:01< vultraz> were you using git or https? 20161029 20:16:04< DeFender1031> git 20161029 20:16:46< vultraz> huh 20161029 20:17:16< DeFender1031> I seriously doubt it got MITMed though. 20161029 20:17:28< vultraz> i have no idea about any of that 20161029 20:18:04< DeFender1031> if i'm feeling really paranoid, i'll reclone, but otherwise, i'll just change the protocol in the config 20161029 20:19:56< vultraz> to what? 20161029 20:20:37< DeFender1031> to use https or ssh 20161029 20:21:09< vultraz> I think I'm using ssh + git@... 20161029 20:21:32< vultraz> since i did have to set up a private key and add it to my gh account. 20161029 20:22:08< vultraz> i recall without that i had to enter my gh password every time i wanted to push 20161029 20:23:11-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Remote host closed the connection] 20161029 20:23:50< DeFender1031> yeah, then you're using ssh 20161029 20:25:09< celticminstrel> When you had to enter your password that was probably https. 20161029 20:25:15< vultraz> yeah 20161029 20:25:16-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161029 20:25:30< vultraz> I recall origin was set to an https address 20161029 20:25:43< vultraz> then i changed it to a git@ one once i set up the keys 20161029 20:31:43< DeFender1031> well, i'll do all that. 20161029 20:43:43-!- Appleman1234 [~Appleman1@KD036012040083.au-net.ne.jp] has quit [Ping timeout: 244 seconds] 20161029 20:48:49< DeFender1031> vultraz, anyway, within the next week or so i'm going to see about getting myself upgraded to some kind of workable setup, but in the meantime i can probably begin work on that one parsing function by ripping it out and testing it independently. 20161029 20:51:47-!- Appleman1234 [~Appleman1@KD036012042213.au-net.ne.jp] has joined #wesnoth-dev 20161029 21:02:55-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20161029 21:16:27-!- gfgtdf [~chatzilla@x50ab6fb9.dyn.telefonica.de] has quit [Quit: ChatZilla 0.9.92 [Firefox 49.0.2/20161019084923]] 20161029 21:18:19 * celticminstrel wonders what DeFender1031 is talking about 20161029 21:19:00< DeFender1031> celticminstrel, there's several items of backstory referred to in my last message. 20161029 21:19:21< DeFender1031> 1. I found a bug in the function that expands the progressive bracket syntax 20161029 21:19:30< celticminstrel> Oh. 20161029 21:19:32< DeFender1031> 2. I volunteered to rewrite that function 20161029 21:19:46< celticminstrel> Is this square_parenthetical_split? 20161029 21:19:56< DeFender1031> 3. My computer is currently in a state where I can't actually install SDL2, so I can't actually build at the moment. 20161029 21:19:59< DeFender1031> yes 20161029 21:20:17< vultraz> plus, that function is very badly written 20161029 21:20:24< vultraz> so it'd be good to have it refactored 20161029 21:20:25< celticminstrel> Once it's fixed maybe we should add unit tests for it (in src/tests or whatever). 20161029 21:21:07< DeFender1031> celticminstrel, i was planning on creating unit tests for it as well 20161029 21:22:14< DeFender1031> actually, my plan was to write an ad-hoc script to scour the codebase for uses of the syntax, run it to get the current output, fix the code, run it again to make sure i haven't broken anything, and add some specific additional tests for the bug i'm fixing and the feature i'm adding 20161029 21:22:36< celticminstrel> What's the feature? 20161029 21:22:41< DeFender1031> oh yeah, i'm planning to make it recursive, so you can do [[1,3,5,2]*5] 20161029 21:22:49-!- JyrkiVesterinen [~JyrkiVest@87-100-168-130.bb.dnainternet.fi] has quit [Quit: Going to bed] 20161029 21:23:04< celticminstrel> I recall two suggestions that came up in this context before... 20161029 21:24:01< celticminstrel> Apparently there were three. I'll just quote from my notes, though it's not very detailed - "nested [], combine ~ with *, a range with step syntax" 20161029 21:24:17< celticminstrel> I'm not saying you should do all of those, but if you feel like it. 20161029 21:24:37< celticminstrel> I vaguely recall realizing one of them wouldn't be as useful as I initially thought, but I can't remember which one that was. 20161029 21:25:31< vultraz> probably the second 20161029 21:30:05< DeFender1031> the first one is what i'm planning, what do you mean with the second and third? 20161029 21:30:30< celticminstrel> You can do ranges as uh... 1-5 or something, right? 20161029 21:30:43< DeFender1031> if by "combine ~ and *" you mean allowing things like "1~9*5", then that could also be accomplished with nested []. 20161029 21:30:45< celticminstrel> (Incidentally, the semantics of ranges are a little weird, but that's beside the point.) 20161029 21:30:50< DeFender1031> though, not hard to add on its own. 20161029 21:31:08< celticminstrel> Oh, 1~5, right. 20161029 21:31:33< celticminstrel> But it could be useful if there was a way to have a syntax for ranges with a non-unit step. 20161029 21:32:13< celticminstrel> So like, I dunno, 1-5@2 expands to 1,3,5. 20161029 21:32:22 * celticminstrel just picked a random character for the example there. 20161029 21:32:46< DeFender1031> right, gotcha 20161029 21:32:56< vultraz> at some point this starts to become a string utility library :P 20161029 21:33:01< DeFender1031> we need to make sure @ isn't being used anywhere though 20161029 21:33:01< celticminstrel> [Oct 29@5:30:43pm] DeFender1031: if by "combine ~ and *" you mean allowing things like "1~9*5", then that could also be accomplished with nested []. 20161029 21:33:02< celticminstrel> [Oct 29@5:30:49pm] DeFender1031: though, not hard to add on its own. 20161029 21:33:03< celticminstrel> Probably no need to add it on its own then... but I think what I was thinking of by nested [] was more like... 20161029 21:33:08< DeFender1031> vultraz, hmm 20161029 21:33:28< vultraz> maybe this should be made a module 20161029 21:33:30< celticminstrel> my_image_[attack[1~5],defend[1~5]]. 20161029 21:33:40< vultraz> and released by DeFender1031 on github 20161029 21:33:43< vultraz> LO 20161029 21:33:45< vultraz> :P * 20161029 21:33:49< vultraz> curse 20161029 21:33:54< celticminstrel> So you're not serious about that, okay then. 20161029 21:33:54< vultraz> whoever put LO next to :P 20161029 21:34:08< vultraz> just like whoever put , next to ENTER 20161029 21:34:11< vultraz> wait 20161029 21:34:13< vultraz> i mean ' 20161029 21:34:15< vultraz> not , 20161029 21:34:17< celticminstrel> DeFender1031: So does your idea support that example too? 20161029 21:34:20< DeFender1031> vultraz, meh. I just want to make wesnoth nice. 20161029 21:34:42< DeFender1031> celticminstrel, if it parses recursively, it'll automatically handle that and any other crazy case you want to throw at it. 20161029 21:34:50< celticminstrel> Okay. 20161029 21:34:58< DeFender1031> (which it will. single-pass, recursive descent is the way to go here) 20161029 21:35:16< DeFender1031> vultraz, feeling okay there? 20161029 21:35:17< celticminstrel> Oh my, recursive descent. 20161029 21:35:27< DeFender1031> celticminstrel, hmm? 20161029 21:35:44< celticminstrel> Nothing really, it's just that that's what I used in my compilers class. 20161029 21:36:00< vultraz> DeFender1031: i'm curious to see what method you will take with this 20161029 21:36:05< celticminstrel> If I recall correctly. 20161029 21:36:14< celticminstrel> vultraz: Sounds like he plans to use recursion. 20161029 21:36:21< vultraz> yeah, sure 20161029 21:36:24< DeFender1031> celticminstrel, in general, any parsing where you can have the same kind of data nested within itself should use recursive descent. 20161029 21:36:28< celticminstrel> ...should it have a depth limit? 20161029 21:36:33< vultraz> but i mean, how will he manage the string 20161029 21:36:35< DeFender1031> celticminstrel, i don't see why 20161029 21:36:55< celticminstrel> Well, to avoid stack overflow... but I guess you'd need a really malicious string for that anyway. 20161029 21:36:57< vultraz> will he use std::getline? manual split into substrings? stringsteams? 20161029 21:37:03< celticminstrel> Like 1000 open brackets. 20161029 21:37:27< celticminstrel> I'm not sure why he'd use either of those. 20161029 21:37:38< celticminstrel> (BTW, std::getline implies stringstreams in this context.) 20161029 21:38:11< DeFender1031> vultraz, i've been giving that some thought. I might end up going with a vector of custom objects that are either a string or another vector of these objects, but i haven't fully worked it out yet. 20161029 21:39:17< vultraz> DeFender1031: also you should probably work on parenthetical_split as well 20161029 21:39:22< vultraz> since they do similar things 20161029 21:39:26< vultraz> make them use common code and such 20161029 21:39:30< DeFender1031> celticminstrel, i don't think it's necessary. You can't really do anything malicious excelt cause a crash. If your add-on causes a crash, it's not a good add on. 20161029 21:39:46< celticminstrel> parenthetical_split is also implemented in Lua BTW. 20161029 21:40:07< celticminstrel> Which is annoying code duplication. 20161029 21:40:20< DeFender1031> celticminstrel, it should be just in c++ with a wrapper exposing it to lua 20161029 21:40:27< celticminstrel> DeFender1031: What you describe sounds like a use-case for boost::variant. 20161029 21:40:29< DeFender1031> (if it's necessary to use in c++) 20161029 21:41:05< DeFender1031> celticminstrel, i tend to not be such a fan of boost, but i might take a look if I get that far. I have a couple of other ideas too. 20161029 21:41:23< celticminstrel> Well, boost::variant is basically a generic discriminated union. 20161029 21:41:27< vultraz> well we don;t have std::variant because that's c++17 20161029 21:41:30< DeFender1031> vultraz, fine, i can do both. 20161029 21:41:41< celticminstrel> So it'd be trivial to make a custom class that does the same thing for your specific use-case as well. 20161029 21:41:50< DeFender1031> hmm 20161029 21:42:06< DeFender1031> whatever. I may also just use a vector of plain strings. 20161029 21:42:14< celticminstrel> Anyway, Wesnoth is already intrinsically linked to Boost, so there's not much reason not to use it if it applies to the problem. 20161029 21:42:36< DeFender1031> Actually, come to think of it, this is somewhat similar to a parser I wrote for a different permutation syntax a few weeks ago 20161029 21:43:18< DeFender1031> celticminstrel, right. I was going to say that if it's already using boost, there's no reason to reinvent the wheel if its good parts include tools that will help. 20161029 21:43:39< DeFender1031> vultraz, what exactly does parenthetical_split do? 20161029 21:43:55< vultraz> same as square_parenthetical_split except no [] stuff 20161029 21:44:06< vultraz> so no fancy expansion 20161029 21:44:16< vultraz> i think 20161029 21:44:21< DeFender1031> okay... what does square_parenthetical_split do aside from parsing the [] syntax? 20161029 21:44:48< celticminstrel> parenthetical_split is basically the parentheses in a WML macro invocation. 20161029 21:45:03< celticminstrel> I don't know if WML macros are parsed by parenthetical split, but... 20161029 21:45:12< celticminstrel> Maybe that's actually a bad example... 20161029 21:45:21< vultraz> both return a vector of strings fwiw 20161029 21:45:27< celticminstrel> Anyway, you have a comma-separated list of items. 20161029 21:45:42< celticminstrel> But some of those items themselves contain commas, so they're enclosed in parentheses to keep them together. 20161029 21:46:02< celticminstrel> I think it might allow you to customize the delimiter characters as well. 20161029 21:46:24< DeFender1031> ah 20161029 21:46:26< DeFender1031> okay 20161029 21:47:21< DeFender1031> so basiacally, it turns "a,b,c,(d1,d2,d3,d4),e,f" into a vector of {"a", "b", "c", "d1,d2,d3,d4", "e", "f"} 20161029 21:47:40< DeFender1031> or... will the ds include the parens? 20161029 21:47:43< DeFender1031> probably 20161029 21:48:01< vultraz> * parenthetical_split("a(b)c{d}e(f{g})h",0,"({",")}") should return 20161029 21:48:02< vultraz> * a vector of <"a","b","c","d","e","f{g}","h"> 20161029 21:48:11< vultraz> * square_parenthetical_split("a[1-3](1,[5,6,7]),b[8,9]",",") should return 20161029 21:48:13< vultraz> * <"a1(1,5)","a2(1,6)","a3(1,7)","b8","b9"> 20161029 21:48:41< celticminstrel> So it does preserve the parentheses? 20161029 21:48:42-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20161029 21:48:48< vultraz> docs say so 20161029 21:48:50< celticminstrel> I thought it didn't... 20161029 21:49:23< DeFender1031> from the example you just pasted, it doesn't appear to 20161029 21:49:41< vultraz> ah 20161029 21:49:43< vultraz> right 20161029 21:49:45< vultraz> misread 20161029 21:52:43< vultraz> parenthetical_split and quoted_split both sound like they do similar things.. 20161029 21:52:44< vultraz> * This function is identical to split(), except it does not split 20161029 21:52:44< vultraz> * when it otherwise would if the previous character was identical to the parameter 'quote'. 20161029 21:52:44< vultraz> * i.e. it does not split quoted commas. 20161029 21:52:44< vultraz> (that's quoted_split) 20161029 21:52:44< vultraz> and parenthetical_split is.. 20161029 21:52:45< vultraz> * Splits a string based either on a separator where text within parenthesis 20161029 21:52:46< vultraz> * is protected from splitting 20161029 21:52:46< vultraz> and plain split() just splits on a single specific character \ 20161029 21:53:09< DeFender1031> but square does... 20161029 21:53:19< DeFender1031> honestly, i'm confused as to what these are doing, and in general, there should probably be a separate function for expanding the [] syntax than for using the expansion. 20161029 21:54:33< vultraz> (ignore that \) 20161029 21:54:33< vultraz> yeah, probably 20161029 21:54:33< vultraz> because s_p_s says: 20161029 21:54:33< vultraz> * Similar to parenthetical_split, but also expands embedded square brackets. 20161029 21:54:34< vultraz> * Separator must be specified and number of entries in each square bracket 20161029 21:54:34< vultraz> * must match in each section. 20161029 21:54:47< DeFender1031> i'm also pretty tired, so i'll probasbly follow better in the morning. 20161029 21:54:47< DeFender1031> ah 20161029 21:54:48< DeFender1031> and the square one splits and also expands the [] syntax. got it 20161029 21:54:49< DeFender1031> these names are terrible, btw. 20161029 21:54:58< DeFender1031> quoted split sounds more like an escaped split, and parens split sounds more like a quoted split. 20161029 21:55:04< vultraz> DeFender1031: so, I'm thinking, possible relegate the [] expansion to a separate function, then generalize a function that calls plain split() but protects sections wrapped in something, be it "" or () or whatever 20161029 21:55:33< DeFender1031> meaning, there's two methods of a syntax specifying "skip this character". one is escape sequences, the other is modal. 20161029 21:55:50< DeFender1031> vultraz, right, i think that's what i'll do 20161029 21:55:53< vultraz> quoted_split should not even exist 20161029 21:56:11< vultraz> someone added it because they didn't want to change plain split 20161029 21:56:19< vultraz> but in hindsight, perhaps that was good 20161029 21:56:25< DeFender1031> vultraz, if you don't mind, i think i'd like to also rename this crap to me more accurate and consistent, and temporarily wrap the old named to the new one with deprecation notices 20161029 21:56:30< vultraz> let plain split handle simple splitting 20161029 21:56:41< DeFender1031> to be more accurate* 20161029 21:56:55< vultraz> DeFender1031: feel free to mass-rename everything 20161029 21:57:45< vultraz> this is the c++, after all, you can do whatever you want. you only need deprecation it's something user-facing, such as WML tag syntax. 20161029 21:58:37< vultraz> DeFender1031: tl'dr, no need for deprecation wrappers :) 20161029 21:58:56< DeFender1031> vultraz, there's a couple of reasons i'd hesistate to do that: 1. if these functions are used in a lot of places, that's a lot of renaming to do 2. if someone else has a branch that has new code using these names, i don't want to invalidate their merge by killing off a function they're using 20161029 21:59:20< DeFender1031> (2 more than 1 really.) 20161029 21:59:38< vultraz> find/replace is easy, they're all in the utils namespace, and second, fixing a merge conflict is very easy. 20161029 21:59:44< vultraz> so don't worry about either 20161029 22:00:25< vultraz> (though i guess it'd be less a merge conflict and more a compilation error but the fix is just as easy) 20161029 22:00:35< DeFender1031> i'm not worried about actual merge conflicts, i'm worried about someone adding a line of code somewhere UNconflicted that uses the same names. 20161029 22:00:52< vultraz> yeah, I just corrected myself :P 20161029 22:00:58< DeFender1031> right 20161029 22:00:58< vultraz> but really, don't worry about it 20161029 22:01:02< DeFender1031> okay 20161029 22:01:19< vultraz> nothing would be merged if it didn't build and really, it's not hard to change a function call. 20161029 22:01:30< DeFender1031> fair enough 20161029 22:02:33 * vultraz returns to housecleaning 20161029 22:02:41< DeFender1031> i was erring on the side of caution. i know of projects which have aliasing and deprecation as a policy for the reasons i described. 20161029 22:03:17< DeFender1031> if that's not an issue here and i won't annopoy people if they suddenly fail to compile after a merge, then i'll just mass-rename to begin with. 20161029 22:03:23< DeFender1031> annoy* 20161029 22:03:51< vultraz> yeah 20161029 22:04:00< vultraz> we do stuff that conflicts with branches all the time :P 20161029 22:04:22< DeFender1031> and then someone has to clean them up :P 20161029 22:04:52< DeFender1031> on the other hand, it does mean that you don't have all sorts of deprecated aliases floating around the codebase for no reason. 20161029 22:05:22< vultraz> yup 20161029 22:05:25< vultraz> those are evil 20161029 22:05:26< vultraz> (IMO) 20161029 22:11:10< celticminstrel> DeFender1031: Like vultraz said, I'm okay with mass-renames, though I'd generally restrict the rename to a commit of its own if possible. 20161029 22:11:27< celticminstrel> [Oct 29@6:01:19pm] vultraz: nothing would be merged if it didn't build [...] 20161029 22:11:28< celticminstrel> Well, that's the ideal situation anyway... >_> 20161029 22:11:41< vultraz> true :P 20161029 22:12:21< DeFender1031> celticminstrel, afraid i'll do to the git log what I did to that wiki page, huh? :P 20161029 22:13:06< DeFender1031> but yeah, i'll make sure to to the rewrite separately from the name change 20161029 22:15:50< celticminstrel> I feel like the wesnoth table needs to be cleaned up. 20161029 22:16:06< celticminstrel> Some of those functions might be better split out into separate tables. In particular, a gui table for all the dialog functions. 20161029 22:16:42< DeFender1031> i would be in favor 20161029 22:17:06< DeFender1031> I tend to approve of organizing stuff by category 20161029 22:17:31< DeFender1031> which in languages like lua and javascript generally means using objects like namespaces. 20161029 22:17:32< celticminstrel> Some of the unit functions could simply be removed (after deprecation, of course). 20161029 22:17:49< DeFender1031> though, i might suggest doing wesnoth.gui.whatever rather than creating another global 20161029 22:18:15< celticminstrel> wesnoth.unit_* are all pretty unnecessary now that they're available in the unit metatable. 20161029 22:18:24< DeFender1031> huh... 20161029 22:18:32< celticminstrel> Some of the wesnoth.*_unit support implicit create, so they should probably be kept. 20161029 22:18:46< celticminstrel> ...that might be just put_unit... not sure. 20161029 22:18:59< celticminstrel> DeFender1031: I suppose it could be wesnoth.gui... 20161029 22:19:56< DeFender1031> were it me, i might actually make wesnoth table simply a top level for the other tables organizing the actual functions and functions to get metatables. 20161029 22:20:19< DeFender1031> we already have wesnoth.wml_actions organized as such 20161029 22:20:37< celticminstrel> Want to write up a list or something of what should go where? 20161029 22:21:02-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has quit [Quit: ChipmunkV] 20161029 22:21:28< celticminstrel> wesnoth.wml_actions, wesnoth.wml_conditionals, and wesnoth.effects (the latter two new in 1.13.x) are tables that are intended hooks for adding new WML implementations. 20161029 22:21:41< celticminstrel> So I'm not sure if that really counts as what you said... 20161029 22:22:26< DeFender1031> well, it's sort of an extension 20161029 22:22:37< DeFender1031> and that's cool. 20161029 22:23:02< DeFender1031> and yeah, i can make a list 20161029 22:23:41< DeFender1031> is there a more up-to-date list than what's on https://wiki.wesnoth.org/LuaWML ? 20161029 22:23:57< celticminstrel> Other than the source code, not really. 20161029 22:24:26< DeFender1031> would it be insane to also kill off helper in the process (aside from temporary deprecated aliases)? 20161029 22:24:44< DeFender1031> like, stick the helper stuff in an appropriate sub-table of wesnoth? 20161029 22:25:03< celticminstrel> I'm not sure. 20161029 22:25:27< DeFender1031> especially since there's some functions that i can never remember if they're in helper or wesnoth, for example some of the ones for working with wml tables/vconfigs 20161029 22:25:41< DeFender1031> for example 20161029 22:25:42< celticminstrel> BTW, in the source code the functions are not all listed in one place, but... most are in either game_lua_kernel.cpp or lua_kernel_base.cpp, in the constructor. 20161029 22:25:55< DeFender1031> wesnoth.get_variable, but helper.get_variable_array 20161029 22:26:15< DeFender1031> those should be in the same place. 20161029 22:26:32< celticminstrel> helper.lua is kinda a hodgepodge of stuff... 20161029 22:27:38< celticminstrel> I guess it makes sense to move some of it to a different place, but... 20161029 22:27:51< celticminstrel> Stuff in the wesnoth table is implemented in C++, while helper is implemented in Lua. 20161029 22:28:44< DeFender1031> right, but that's a sort of arbitrary breakdown from a usage point of view. 20161029 22:28:48< celticminstrel> Yeah. 20161029 22:29:11< DeFender1031> as someone using the API, i don't care if a function is implemented in lua, C++, or smoke signals, i just want it to work. 20161029 22:29:13< celticminstrel> But it feels like bad practice for a Lua module to be installing stuff into the wesnoth table. 20161029 22:29:28< DeFender1031> why? 20161029 22:29:28< celticminstrel> Heh, smoke signals. 20161029 22:29:31< celticminstrel> I'm not sure. 20161029 22:29:47< DeFender1031> people rewrite existing functions all the time 20161029 22:29:51< celticminstrel> Something about how require returns a table... maybe... 20161029 22:29:54< DeFender1031> people add tags to the action table 20161029 22:30:04< DeFender1031> require doesn't have to return anything 20161029 22:30:09< celticminstrel> Although I guess require does mean it's only used once. 20161029 22:30:12< celticminstrel> True, I guess. 20161029 22:30:13< DeFender1031> require is basically a funciton call. 20161029 22:30:48< celticminstrel> Well, feel free to include helper functions in your proposed list though. 20161029 22:31:06< DeFender1031> alright 20161029 22:31:41< DeFender1031> for the record, i imagine that a few will end up in categories, but most will end up in a subtable called "helper" 20161029 22:31:45< celticminstrel> There's also data/lua/wml-utils.lua in master (none of that is documented). 20161029 22:32:37< celticminstrel> And the wesnoth.map_locations table (also undocumented). 20161029 22:34:31< DeFender1031> oh boy 20161029 22:34:38< celticminstrel> ? 20161029 22:34:40< DeFender1031> should those get documented as well? 20161029 22:35:29< celticminstrel> Eventually they probably should. 20161029 22:35:38< celticminstrel> I'm not quite sure if they need more work first. 20161029 22:35:55< celticminstrel> Once they're documented, there are things that can't be changed. 20161029 22:36:07< celticminstrel> Like the return format. 20161029 22:36:08< DeFender1031> mm... best to leave them undocumented so that no one will use them (or complain if they change) 20161029 22:36:15< DeFender1031> right 20161029 22:37:06< celticminstrel> Some of the stuff in wml-utils should probably be documented. I don't think the variable scope functions will change, and the handle_event_commands probably wouldn't change much. 20161029 22:37:35< celticminstrel> It also contains trim, split, and parenthetical_split, which should maybe be moved somewhere else. 20161029 22:37:45< celticminstrel> (Is it bad practice to add new functions to the global string table?) 20161029 22:38:09< DeFender1031> (probably?) 20161029 22:38:27< DeFender1031> also, if i'm going to rename those functions, i'd like to do so in lua as well 20161029 22:38:28< celticminstrel> Because that's seriously the most obvious place for that kind of function. 20161029 22:38:44< celticminstrel> And would allow things like string_var:trim() 20161029 22:39:02< celticminstrel> That sort of thing is common in JavaScript, so maybe it's fine? I dunno. 20161029 22:39:30< DeFender1031> well, on the one hand, i'm coming from a JS background where the rule is "don't pollute the built-in stuff because you never know what other libraries might expect". Here, wesnoth is in full control of the scope, so it's probably less of an issue. 20161029 22:43:11< DeFender1031> ah, right, the new : syntax. 20161029 22:43:19< celticminstrel> ? 20161029 22:43:35< celticminstrel> That might apply to JS libraries but I'd think not to JS in general... 20161029 22:43:57< DeFender1031> without the : syntax, it wouldn't really matter but allowing somestring:someusefulwesnothstringfunction would be nice. 20161029 22:44:17< DeFender1031> sometimes yes, sometimes no, depends what you're writing 20161029 22:44:29< DeFender1031> and whether it allows code from other sources. 20161029 22:50:05 * celticminstrel wonders if gfgtdf or vultraz or anyone else has opinions on adding things like split, trim, etc to the global string table in Lua. 20161029 22:51:40< vultraz> eh? 20161029 22:52:15< celticminstrel> vultraz: So you can write string.split("a,b,c", ',') or some_string:split(',') 20161029 22:52:16< vultraz> so, you mean like string.format except our custom functions? 20161029 22:52:20< celticminstrel> Yes. 20161029 22:53:34< celticminstrel> The split and trim functions are pretty trivially implemented, actually, using gsub and gmatch respectively... 20161029 22:54:23-!- blackspirit [~blackspir@adsl-128.37.6.49.tellas.gr] has quit [Quit: Leaving] 20161029 22:56:00< vultraz> and what's wrong with those? 20161029 22:56:17< DeFender1031> nothing 20161029 22:56:41< DeFender1031> the question is whether it's acceptable practice to add custom functions to a built-in lua table 20161029 22:57:17< vultraz> I would say not 20161029 22:57:28< vultraz> it's confusing to outside code readers 20161029 22:57:54< vultraz> I would consider it tantamount to adding something in c++ namespace std :| 20161029 22:57:59< celticminstrel> Well, something like that, but even so, I do kinda like the idea. 20161029 22:58:14< celticminstrel> (I don't really see it as being on the same level as adding something to std though.) 20161029 22:59:14< DeFender1031> on the other hand, in c++, you can subclass string. In lua, the only way to extend string is to add the functions there. 20161029 22:59:41-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has joined #wesnoth-dev 20161029 22:59:55< celticminstrel> ...you can subclass string, I guess... 20161029 23:00:00-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has left #wesnoth-dev [] 20161029 23:00:12< celticminstrel> (Or instantiate it with different arguments.) 20161029 23:00:48< vultraz> the point about having stuff with std:: or a common table like string. is to indicate it's a standard, non-code-dependent function. 20161029 23:01:32< celticminstrel> I wonder if that's really the point. 20161029 23:02:50< DeFender1031> std:: yes. The string table i'm on the fence about, as it's ALSO the metatable for the string type. 20161029 23:02:54< vultraz> I see it as such. 20161029 23:03:12< vultraz> it's why one would not use using namespace std; :P 20161029 23:04:48< vultraz> but you're right that lua is a little fuzzier.. 20161029 23:14:35< DeFender1031> after more thought, i think i lean toward vultraz's side here. 20161029 23:15:56< DeFender1031> we can set up a wesnoth.string table and do stuff from there. 20161029 23:22:40 * celticminstrel prefers putting them in string but is hesitant to do so for reasons. 20161029 23:25:12 * vultraz has abandoned cleaning in favor of watching youtube videos about general relativity 20161029 23:30:05-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth-dev 20161029 23:31:31-!- tad_carlucci [~lundberg@173.217.65.103] has joined #wesnoth-dev 20161029 23:31:47-!- gfgtdf [~chatzilla@x50ab6fb9.dyn.telefonica.de] has joined #wesnoth-dev 20161029 23:36:44-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 256 seconds] --- Log closed Sun Oct 30 00:00:28 2016