--- Log opened Fri Aug 07 00:00:08 2015 20150807 00:21:54-!- LuHa [~E330-Mint@168.188.129.209] has joined #wesnoth 20150807 00:38:40-!- cpf [~cpf@2a02:1812:1e28:8d00:62f8:1dff:febb:fc9a] has joined #wesnoth 20150807 00:56:54-!- ancestral [~ancestral@63.92.240.233] has joined #wesnoth 20150807 01:02:24-!- ancestral [~ancestral@63.92.240.233] has quit [Quit: i go nstuf kthxbai] 20150807 01:27:27-!- prkc [~prkc@catv-89-134-159-162.catv.broadband.hu] has quit [Remote host closed the connection] 20150807 01:37:24< aeth> ok so I'm more than half way through the GUI2 rewrite because I had to rewrite for GUI2 in order to keep the code small enough to be able to extend it. 20150807 01:37:58< aeth> The only non-host menus that haven't been changed yet are inventory and upgrades. 20150807 01:39:30< aeth> Does anyone want to help playtest the RPG on 1.12 in about 30-45 minutes? It's probably going to be one of the few tests before the completely redone shop/inventory interface. 20150807 01:41:51< aeth> basically all of this is coming soon: (1) finish the GUI2 rewrite (including shops/inventory/upgrades), (2) do a lot more with shops/containers/inventory, (3) add more inventory, (4) improved interaction 20150807 01:42:16< aeth> I haven't had an MP test game since I switched over large parts to GUI2, though. 20150807 01:47:56-!- ancestral [~ancestral@81.sub-70-197-202.myvzw.com] has joined #wesnoth 20150807 01:52:41-!- ancestral [~ancestral@81.sub-70-197-202.myvzw.com] has quit [Read error: Connection reset by peer] 20150807 02:12:24-!- jemadux [~jemadux@unaffiliated/jemadux] has quit [Ping timeout: 264 seconds] 20150807 02:13:29-!- jemadux [~jemadux@unaffiliated/jemadux] has joined #wesnoth 20150807 02:14:04< celticminstrel> Aeth, do you happen to know if there's a way to enable tabbing between GUI2 text boxes 20150807 02:14:28< celticminstrel> ^? 20150807 02:15:10< aeth> celticminstrel: I'm going to guess not 20150807 02:15:26< celticminstrel> Well, fun. :| 20150807 02:15:26< aeth> celticminstrel: The Lua API enables almost nothing compared to the C++ 20150807 02:15:39< celticminstrel> Ah, so there might be hope for me. 20150807 02:15:42< aeth> celticminstrel: you can't even set a text box as the default focus of the keyboard afaik, so I doubt they'd support tabbing unless they do by default 20150807 02:16:21< celticminstrel> I guess I'll poke around a bit. 20150807 02:21:57-!- ArneBab_ [~quassel@55d4193b.access.ecotel.net] has joined #wesnoth 20150807 02:22:59< celticminstrel> Well, I'm not seeing anything. 20150807 02:23:14< celticminstrel> Are there any existing GUI2 dialogs that actually have more than one text box? 20150807 02:25:10-!- ArneBab [~quassel@55d45cf3.access.ecotel.net] has quit [Ping timeout: 260 seconds] 20150807 02:32:23< celticminstrel> Found one. 20150807 02:35:56< celticminstrel> Okay, the edit scenario dialog doesn't support tabbing either. It must just be missing from GUI2. 20150807 02:36:23< aeth> haha 20150807 02:36:24< aeth> wow 20150807 02:38:10< celticminstrel> Another thing to add to the list of stuff needed in GUI2, I guess? 20150807 02:38:28< celticminstrel> I'm also wondering if there's any decent way to select a colour. 20150807 02:38:31< celticminstrel> (With GUI2) 20150807 02:38:52< celticminstrel> I wouldn't be surprised if that would need a new widget. 20150807 02:39:07< aeth> 3 sliders? R, G, B? 20150807 02:39:07-!- cpf [~cpf@2a02:1812:1e28:8d00:62f8:1dff:febb:fc9a] has quit [Ping timeout: 252 seconds] 20150807 02:39:15< celticminstrel> I suppose that could do it. 20150807 02:39:15< aeth> Or do you mean the team colors? 20150807 02:39:40< celticminstrel> I mean to set the colour of a label in the map editor. 20150807 02:39:46< celticminstrel> So probably RGB, not team colours. 20150807 02:39:55< aeth> ah 20150807 02:40:08< aeth> I guess three sliders would be the best way to currently do it 20150807 02:40:26< aeth> if any color is allowed in a label 20150807 02:40:37< celticminstrel> There's probably documentation of GUI2 WML somewhere, right? 20150807 02:40:46< aeth> on the wiki 20150807 02:40:49< aeth> it's not very good 20150807 02:40:57< celticminstrel> Better than nothing, hopefully. 20150807 02:41:06< aeth> you kind of have to grep -r 'whatever' * to make sure you're using it right 20150807 02:41:11< aeth> I don't think there are many (any?) syntax examples 20150807 02:41:26< celticminstrel> I added a textbox just by copying the existing textbox. :P 20150807 02:41:57< aeth> celticminstrel: even if you're not using Lua... this links to the documentation. http://wiki.wesnoth.org/LuaWML:Display#wesnoth.show_dialog 20150807 02:42:01< aeth> which is in 3 places 20150807 02:43:29< celticminstrel> Looks potentially helpful. 20150807 02:43:58< aeth> it's mostly auto-generated from comments in the C++ code 20150807 02:44:12< aeth> that might be why syntax examples are lacking 20150807 02:44:29< aeth> (in most places, obviously not all) 20150807 02:51:54< vultraz> GUI2 is black magick 20150807 02:52:18< celticminstrel> Heh... 20150807 03:13:09-!- ancestral [~ancestral@75-161-229-81.mpls.qwest.net] has joined #wesnoth 20150807 03:42:20< celticminstrel> The sliders work. I don't think it's especially user-friendly though. 20150807 03:42:47-!- StandYourGround [~Adium@2602:306:83db:de50:fdb7:a3fb:5806:cac2] has joined #wesnoth 20150807 04:02:57-!- StandYourGround [~Adium@2602:306:83db:de50:fdb7:a3fb:5806:cac2] has quit [Quit: Leaving.] 20150807 04:03:21-!- StandYourGround [~Adium@2602:306:83db:de50:fdb7:a3fb:5806:cac2] has joined #wesnoth 20150807 04:17:52-!- StandYourGround [~Adium@2602:306:83db:de50:fdb7:a3fb:5806:cac2] has quit [Quit: Leaving.] 20150807 04:19:04-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has quit [Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] 20150807 04:42:53-!- ancestral [~ancestral@75-161-229-81.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20150807 04:44:39-!- ancestral [~ancestral@75-161-229-81.mpls.qwest.net] has joined #wesnoth 20150807 04:47:37-!- LuHa1 [~E330-Mint@168.188.129.194] has joined #wesnoth 20150807 04:47:46-!- LuHa1 [~E330-Mint@168.188.129.194] has quit [Client Quit] 20150807 04:50:46-!- LuHa [~E330-Mint@168.188.129.209] has quit [Ping timeout: 240 seconds] 20150807 04:57:03-!- shurnormal [~uxio@unaffiliated/ushiu] has joined #wesnoth 20150807 05:11:23-!- Kwandulin [~Miranda@p5B009A02.dip0.t-ipconnect.de] has joined #wesnoth 20150807 05:57:48-!- [Relic] [~Relic]@2602:306:33a3:6d30:904d:4e94:cd57:e998] has quit [Quit: I press the magic X and all the weirdos go away!] 20150807 06:08:31-!- shurnormal_ [~uprego@unaffiliated/ushiu] has joined #wesnoth 20150807 06:34:55-!- SpoOkyMagician [~chatzilla@cpe-74-136-81-20.kya.res.rr.com] has quit [Quit: too much coding... bye.] 20150807 06:54:24-!- HeyCitizen [~HeyCitize@STTRPQ3809W-LP140-02-1177985048.dsl.bell.ca] has quit [Ping timeout: 264 seconds] 20150807 06:59:37-!- HeyCitizen [~HeyCitize@70.50.157.174] has joined #wesnoth 20150807 07:19:08-!- HeyCitizen [~HeyCitize@70.50.157.174] has quit [Ping timeout: 250 seconds] 20150807 07:24:16-!- HeyCitizen [~HeyCitize@STTRPQ3809W-LP130-05-1167903760.dsl.bell.ca] has joined #wesnoth 20150807 07:38:10-!- deego [~user@unaffiliated/deego] has joined #wesnoth 20150807 07:38:18< deego> Hi, what's the difference between fog and shroud? 20150807 07:43:47< Kwandulin> Shroud doesn't refresh once you've left the area + you can't see the terrain of shrouded tiles 20150807 07:44:52-!- ancestral [~ancestral@75-161-229-81.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20150807 07:48:32< deego> Kwandulin: ah, thanks. 20150807 07:49:22< deego> Kwandulin: are you sure it's not the other way? That fog is worse, and that once you leave the area, it is when you have fog that the game stops stops refreshing? 20150807 07:49:41< deego> I'm playnig tale of two brothers second scenario; I have shroud, yet I can see almost the entire map. 20150807 07:49:47< deego> (but no fog.) 20150807 07:51:43< Kwandulin> Mhh, yeah, maybe it's that way round. It's been a while since I last played with fog/shroud 20150807 07:52:59< vultraz> You can see terrain through fog, but not units 20150807 07:53:22< vultraz> If a map is fogged, you only have clear vision on areas you can reach 20150807 07:53:37< vultraz> However, with shroud, if you explore an area it always stays revealed 20150807 07:53:45< vultraz> With fog, once you move away, it gets fogged up again 20150807 07:53:56< vultraz> And with shroud, you can see nothing through it 20150807 07:56:24< vultraz> If a map has both fog and shroud, areas you have explored are still unshrouded, but if you're not standing within range of them, they're still covered in fog 20150807 08:06:55-!- HeyCitizen [~HeyCitize@STTRPQ3809W-LP130-05-1167903760.dsl.bell.ca] has quit [Ping timeout: 244 seconds] 20150807 08:09:31-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 250 seconds] 20150807 08:12:24-!- HeyCitizen [~HeyCitize@STTRPQ3809W-LP140-01-1177757727.dsl.bell.ca] has joined #wesnoth 20150807 08:16:25-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth 20150807 08:23:06-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth 20150807 08:27:26-!- cpf [~cpf@ip-188-118-61-46.reverse.destiny.be] has joined #wesnoth 20150807 08:38:12-!- Kwandulin [~Miranda@p5B009A02.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20150807 08:38:15-!- UnwiseOwl [~Ted@124-169-219-239.dyn.iinet.net.au] has joined #wesnoth 20150807 08:59:00-!- DreadKnight [~DreadKnig@unaffiliated/dreadknight] has joined #wesnoth 20150807 09:15:00-!- LuHa [~E330-Mint@119.204.77.86] has joined #wesnoth 20150807 09:26:13-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has quit [Ping timeout: 250 seconds] 20150807 09:33:26-!- Rhonda [~rhonda@wesnoth/developer/rhonda] has quit [Remote host closed the connection] 20150807 09:37:19-!- Rhonda [~rhonda@anguilla.noreply.org] has joined #wesnoth 20150807 09:47:03-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 256 seconds] 20150807 09:54:11-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth 20150807 09:58:51-!- j3m4dux [~jemadux@unaffiliated/jemadux] has joined #wesnoth 20150807 09:59:20-!- j3m4dux [~jemadux@unaffiliated/jemadux] has quit [Client Quit] 20150807 10:00:48-!- Xara [Yangyf@2001:cc0:2020:4010:e569:5463:9aaf:98ca] has joined #wesnoth 20150807 10:01:19-!- jemadux [~jemadux@unaffiliated/jemadux] has quit [Ping timeout: 246 seconds] 20150807 10:07:14-!- Kwandulin [~Miranda@p5B009A02.dip0.t-ipconnect.de] has joined #wesnoth 20150807 10:16:53-!- trolling [~alynn@oftn/member/prophile] has joined #wesnoth 20150807 10:17:33-!- aeth [~Michael@wesnoth/umc-dev/developer/aethaeryn] has quit [Remote host closed the connection] 20150807 10:17:38-!- UnwiseOwl [~Ted@124-169-219-239.dyn.iinet.net.au] has quit [Ping timeout: 244 seconds] 20150807 10:17:43-!- aeth [~Michael@wesnoth/umc-dev/developer/aethaeryn] has joined #wesnoth 20150807 10:18:09-!- prophile [~alynn@oftn/member/prophile] has quit [Ping timeout: 244 seconds] 20150807 10:28:33-!- aeonchil1 [enchilado@defocus/yummy/enchilado] has joined #wesnoth 20150807 10:29:17-!- aeonchild [enchilado@defocus/yummy/enchilado] has quit [Disconnected by services] 20150807 10:30:19-!- aeonchil1 is now known as aeonchild 20150807 10:45:05-!- Netsplit *.net <-> *.split quits: Samual, zookeeper, Falcon` 20150807 10:49:22-!- Netsplit over, joins: zookeeper, Samual, Falcon` 20150807 11:07:24-!- heirecka [~heirecka@exherbo/developer/heirecka] has quit [Remote host closed the connection] 20150807 11:08:09-!- heirecka [~heirecka@j61898.servers.jiffybox.net] has joined #wesnoth 20150807 11:08:09-!- heirecka [~heirecka@j61898.servers.jiffybox.net] has quit [Changing host] 20150807 11:08:09-!- heirecka [~heirecka@exherbo/developer/heirecka] has joined #wesnoth 20150807 11:43:04-!- Kwandulin [~Miranda@p5B009A02.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20150807 12:49:14-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has joined #wesnoth 20150807 13:11:46-!- hay207 [~hay207@41.34.12.122] has joined #wesnoth 20150807 13:16:10-!- shurnormal_ [~uprego@unaffiliated/ushiu] has quit [Quit: poweroff] 20150807 13:17:23-!- shurnormal [~uxio@unaffiliated/ushiu] has quit [Quit: poweroff] 20150807 13:37:34-!- shurnormal [~uxio@unaffiliated/ushiu] has joined #wesnoth 20150807 13:47:52-!- Haudegen [~quassel@85.124.51.57] has quit [Remote host closed the connection] 20150807 13:52:49-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth 20150807 13:54:09-!- Smar [~smar@ayu.smar.fi] has quit [Ping timeout: 252 seconds] 20150807 13:57:05-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 252 seconds] 20150807 14:03:45-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth 20150807 14:05:55-!- prkc [~prkc@catv-89-134-159-162.catv.broadband.hu] has joined #wesnoth 20150807 14:08:26-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 240 seconds] 20150807 14:15:35-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth 20150807 14:21:23-!- Kwandulin [~Miranda@p5B009A02.dip0.t-ipconnect.de] has joined #wesnoth 20150807 14:44:54-!- Kwandulin [~Miranda@p5B009A02.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20150807 14:45:29-!- Sonderblade [~Sonderbla@h-52-183.a157.priv.bahnhof.se] has quit [Quit: Lämnar] 20150807 15:05:22-!- ancestral [~ancestral@75-161-229-81.mpls.qwest.net] has joined #wesnoth 20150807 15:29:29-!- JackBauer24 [~JackBauer@89-76-206-248.dynamic.chello.pl] has joined #wesnoth 20150807 15:41:12-!- Xara [Yangyf@2001:cc0:2020:4010:e569:5463:9aaf:98ca] has quit [Read error: Connection reset by peer] 20150807 15:41:41< shurnormal> Ooooh, an IPv6 number. 20150807 15:50:50-!- [Relic] [~Relic]@2602:306:33a3:6d30:e8a1:145e:a6fb:61c2] has joined #wesnoth 20150807 16:19:49-!- cpf [~cpf@ip-188-118-61-46.reverse.destiny.be] has quit [Ping timeout: 244 seconds] 20150807 16:20:29-!- JackBauer24 [~JackBauer@89-76-206-248.dynamic.chello.pl] has quit [Ping timeout: 265 seconds] 20150807 16:32:25-!- DeFender [~DeFender1@85-250-211-183.bb.netvision.net.il] has quit [Quit: I'm not back now.] 20150807 16:35:30-!- HeyCitizen [~HeyCitize@STTRPQ3809W-LP140-01-1177757727.dsl.bell.ca] has quit [Quit: Coyote finally caught me] 20150807 16:37:56-!- HeyCitizen [~HeyCitize@STTRPQ3809W-LP140-01-1177757727.dsl.bell.ca] has joined #wesnoth 20150807 17:09:57-!- Panda_ [~IMO@2a01:e35:8aae:fcb0:a6fd:e761:fbcd:cbc2] has joined #wesnoth 20150807 17:16:43-!- iamshansen [~iamshanse@178.62.87.183] has quit [Quit: Gone...] 20150807 17:17:38-!- Smar [smar@nano.smar.fi] has joined #wesnoth 20150807 17:17:38-!- Smar [smar@nano.smar.fi] has quit [Changing host] 20150807 17:17:38-!- Smar [smar@freenet/translator/finnish/Smar] has joined #wesnoth 20150807 17:18:21-!- iamshansen [~iamshanse@balder.teknisksupport.dk] has joined #wesnoth 20150807 17:18:52-!- wario [~wario_@unaffiliated/wario] has joined #wesnoth 20150807 17:22:25-!- iamshansen [~iamshanse@balder.teknisksupport.dk] has quit [Remote host closed the connection] 20150807 17:23:38-!- ancestral [~ancestral@75-161-229-81.mpls.qwest.net] has quit [Quit: i go nstuf kthxbai] 20150807 17:23:45-!- iamshansen [~iamshanse@178.62.87.183] has joined #wesnoth 20150807 17:33:43< aeth> Ah, I finally figured out why WML conditionals are so confusing. They're implemented with incorrect syntax (and it's way, way, way too late to change it). 20150807 17:36:24< aeth> It *should* be [or] [foo] [/foo] [foo] [/foo] ... [/or]. It *is* [foo] [/foo] [or] [foo] [/foo] [/or] ... 20150807 17:37:46-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has joined #wesnoth 20150807 17:46:14< aeth> interestingly enough, I think it might be possible to turn WML into a roughly Lisp-like language by introducing functions with the same {} syntax as macros 20150807 17:47:13-!- ancestral [~ancestral@144.sub-70-197-198.myvzw.com] has joined #wesnoth 20150807 17:47:43< celticminstrel> I think you can also do [or][foo][/foo][/or] [or][foo][/foo][/or]. 20150807 17:48:14< celticminstrel> I think it's also impossible to implement it as [or][foo][/foo][foo][/foo][/or] given how WML works. 20150807 17:49:36-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has quit [Ping timeout: 264 seconds] 20150807 17:50:39< aeth> celticminstrel: which is one of the reasons why I said it might be too late. 20150807 17:51:00< zookeeper> i see no reason why it would be true that it *should* be like you suggest 20150807 17:51:01-!- ancestral [~ancestral@144.sub-70-197-198.myvzw.com] has quit [Read error: Connection reset by peer] 20150807 17:51:03-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has joined #wesnoth 20150807 17:52:08< celticminstrel> I think it would be reasonable to require that one of the following is true in a conditional context: 1) There are no attributes and no subtags other than [and]; 2) There are no attributes and no subtags other than [or]; 3) There are attributes and subtags, but no [and] or [or]. 20150807 17:52:10< aeth> zookeeper: because [or] [/or] should only modify the stuff within the [or] tag, not stuff around it as well. As it is, [or] essentially changes the meaning of the stuff in [or] and the stuff immediately *before* [or] afaik 20150807 17:52:31< zookeeper> why should it? 20150807 17:53:28< aeth> (1) it becomes easier to reason about, (2) it allows you to have long lists and only write one OR, (3) WML is already basically prefix notation, but foo1 [or] foo2 [/or] is pseudo-infix 20150807 17:54:07< celticminstrel> The reason it won't work is because of scalar attributes. 20150807 17:54:24< aeth> also (4) it's probably faster 20150807 17:55:35< aeth> zookeeper: one example in mainline (stable) is data/multiplayer/scenarios/ANL_utils/ANL_leader_options.cfg within the [show_if] clause on line 418. 3 [or]s could be replaced with 1 [or] within the [show_if] if [or] worked on the outside of all [variable]s there 20150807 17:55:46< aeth> just happens to be the first I found in grep, there are probably longer ones, especially in UMC 20150807 17:55:56< celticminstrel> You'd need to do something like [or][condition] (stuff, perhaps including [foo]) [/condition] [condition (more stuff, possibly including [foo]) [/condition][/or] 20150807 17:56:59< celticminstrel> [and] and [or] aren't implemented in Lua, are they? 20150807 17:57:08< aeth> celticminstrel: well this particular example would be [or] [variable] [/variable] [variable] [/variable] [/or] etc. 20150807 17:57:33< celticminstrel> I might be thinking of filter contexts rather than conditional contexts... 20150807 17:58:20< aeth> I think [show_if] might just only use [variables] 20150807 17:59:01< celticminstrel> Yeah, sorry, I was a bit confused. 20150807 17:59:24< celticminstrel> For conditions, it would be possible to change it over to what you suggest. 20150807 17:59:33< celticminstrel> It's in filters that you can't do this. 20150807 18:00:33< aeth> celticminstrel: you could probably fix that by creating a [condition] tag for use with conditionals then, yes. 20150807 18:02:44< zookeeper> 1 is very debatable, 2 isn't true unless you only have one tag per OR'd condition 20150807 18:03:15< celticminstrel> Isn't that true though> 20150807 18:03:17< celticminstrel> ^? 20150807 18:03:29-!- claymore2 [~hexchat@host109-154-220-118.range109-154.btcentralplus.com] has joined #wesnoth 20150807 18:03:31< celticminstrel> I'm not quite sure, but it looks like it would be true. 20150807 18:03:57< aeth> zookeeper: I think in most cases it would be true, at least for show_if 20150807 18:04:30< aeth> zookeeper: and when it's not you can just group the things previously grouped with [or] with [and] 20150807 18:04:51< aeth> think about the tree form of what's going on (thinking in s-expressions here can help) 20150807 18:07:15< aeth> And anyway at least in my personal experience 1 is true. 1's going to be false for people who work a lot with WML 20150807 18:07:30< aeth> But at least ime, the #1 thing that made me switch to working almost exclusively in Lua is how terrible the conditionals are 20150807 18:10:48< aeth> The form I'm talking about would also make it easier to work with conditionals in Lua metatables 20150807 18:11:45< aeth> T["or"] { ... } is just one thing to return if [or] wraps around everything. So if you just want to store the part in the [or] you can do that with the proposed syntax. 20150807 18:12:31< aeth> With the old syntax, afaik, I have to store two separate WML metatables, one for T["variable"] { ... } and one for T["or"] { T["variable"] { ... } } and it's a good thing that I only have to do an or of two 20150807 18:13:03< aeth> I'm guessing that because this makes it harder to work with in Lua, it might also make it harder to work with in C++, i.e. it might be making WML slower. 20150807 18:18:28< aeth> WML is basically a half-implementation of Lisp, e.g. (show-if (not (have-unit :x 1 :y 1))) is roughly like [show_if] [not] [have_unit] x = 1, y = 1 [/have_unit] [/not] [/show_if] 20150807 18:19:19< aeth> The closer the semantics are to Lisp, the more you can borrow from Lisp, which means the less creative you need to be in implementing, improving, and maintaining WML. 20150807 18:20:50< aeth> It's actually *good* that WML is so close to mapping very neatly to s-expressions (at least the variant in Common Lisp where you can use keywords like :x to roughly be like x=) because that means that the implementation of WML could be completely rewritten to compile *to* s-expressions and maybe get some performance gains there, especially in macros. Maybe even get real functions that way. 20150807 18:21:49< aeth> S-expressions are well-studied and well-optimized. (Some Common Lisps are comparable to Java in speed, which isn't bad.) 20150807 18:28:12-!- Appleman1234_ [~Appleman1@KD111107191235.au-net.ne.jp] has joined #wesnoth 20150807 18:31:22-!- Appleman1234 [~Appleman1@KD106179116219.au-net.ne.jp] has quit [Ping timeout: 246 seconds] 20150807 18:35:09< aeth> The best thing is, with some extensions and a few major changes (e.g. real functions in WML) you could probably write WML in WML. 20150807 18:45:09< celticminstrel> I feel like you continuously say "WML" when you're really just talking about ActionWML. 20150807 18:46:29< aeth> EventWML, not ActionWML 20150807 18:47:05< aeth> A lot of WML is apparently just configuration files so obviously this part is irrelevant 20150807 18:47:22< aeth> Not entirely, though. Afaik all WML uses macros. 20150807 18:50:58-!- JackBauer24 [~JackBauer@89-76-206-248.dynamic.chello.pl] has joined #wesnoth 20150807 18:53:12< celticminstrel> [command] is not EventWML, but it does contain ActionWML. (The tag used in menu items.) 20150807 19:06:37-!- DreadKnight [~DreadKnig@unaffiliated/dreadknight] has quit [Quit: #AncientBeast - Master Your Beasts ( www.AncientBeast.com )] 20150807 20:06:37-!- iamshansen [~iamshanse@178.62.87.183] has quit [Quit: Gone...] 20150807 20:07:15-!- iamshansen [~iamshanse@me.shansen.me] has joined #wesnoth 20150807 20:07:53< aeth> Hmm, if WML's macro syntax were changed and functions were added, I think it would be possible to write large parts of (Event?) WML in itself. 20150807 20:09:33< aeth> It probably wouldn't be too hard to support both legacy and new macro syntax simultaneously, and most files with just macro calls (rather than definitions) wouldn't have to be rewritten (only complicated ones) and, again, there could be some sort of compatability mode. 20150807 20:10:48< aeth> http://forums.wesnoth.org/viewtopic.php?p=588075#p588075 20150807 20:11:37< aeth> I'm seriously thinking of writing a libwml (perhaps in C or C++ and Lua) to see if that could replace parts of Wesnoth code and make WML both more powerful and faster. 20150807 20:11:39-!- claymore2 [~hexchat@host109-154-220-118.range109-154.btcentralplus.com] has quit [Quit: Leaving] 20150807 20:13:05< aeth> If macro calls and function calls had the same syntax, it would basically be a Lisp with {}s instead of ()s, and strange [foo] x = "bar" [/foo] literals that would be equivalent to '(foo :x "bar") 20150807 20:15:39-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Remote host closed the connection] 20150807 20:19:31< aeth> ("Basically a Lisp" isn't "a Lisp", though.) 20150807 20:23:10-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth 20150807 20:28:46< deego> kwandulin, vultraz: thanks. 20150807 20:57:30-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 245 seconds] 20150807 21:02:31-!- JackBauer24 [~JackBauer@89-76-206-248.dynamic.chello.pl] has quit [Ping timeout: 256 seconds] 20150807 21:06:50< aeth> Hmm, I don't think I was clear or concise. What I mean to say is that I want to see if I can treat WML like s-expressions, change how macros work a little bit, and see if I can port some features from Scheme/Lisp over into WML. 20150807 21:08:12< aeth> Hmm... I don't think WML is compiled, correct? Perhaps a hash of a file could be taken and then it would compile a new file if and only if it's changed, so you can get the best of both worlds (saving some faster binary format for the game to use, but still being able to hack around with the code) 20150807 21:13:13< zookeeper> if someone wanted to add functions to WML, then there's absolutely no reason why it should have anything to do with the existing macro syntax 20150807 21:13:56< aeth> zookeeper: call syntax, not definition syntax 20150807 21:13:58-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth 20150807 21:14:05< aeth> zookeeper: I like the call syntax, it's Lispy. That's the only part I like. 20150807 21:14:25< zookeeper> call syntax should not be similar, because then you couldn't tell the difference between a macro call and a function call. 20150807 21:14:34< zookeeper> and you'd need to know the difference because they'd be fundamentally different 20150807 21:15:16< aeth> zookeeper: well as long as WML is case sensitive (is it? if it's not it will have to be), you can clearly tell the macros by the ALL_CAPS 20150807 21:15:48< aeth> zookeeper: but also parentheses could be used instead of curly brackets. I think parentheses are used in macros, right? So at the top level I'm not sure it would make a difference. 20150807 21:16:43< aeth> As for definition syntax, that's a bit complicated. Functions should probably be definable in Lua, in WML data, and in src. 20150807 21:25:32< aeth> zookeeper: does the order of the keys matter in WML? 20150807 21:25:47< aeth> If order matters, that changes how I am thinking about this hypothetical libwml 20150807 21:29:01< aeth> (or even order of mixed tags and keys) 20150807 21:29:07-!- DreadKnight [~DreadKnig@unaffiliated/dreadknight] has joined #wesnoth 20150807 21:39:40< celticminstrel> aeth: If I understand correctly, all the game's data and possibly also all add-ons are, in C++ parlance, a single "translation unit". In other words, the only reason there's multiple files is because of deeply-nested file-inclusions. 20150807 21:40:17< celticminstrel> And macros are different from functions in that macros are a dumb text-replacement tool (as in C). 20150807 21:41:56< celticminstrel> They're not like Lisp macros (probably; I haven't used Lisp, but I've used macros in Berkeley Logo, where they're basically like a function that executes without introducing a new scope, if I recall correctly). 20150807 21:44:13-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has quit [Ping timeout: 246 seconds] 20150807 21:46:09-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has joined #wesnoth 20150807 21:51:15-!- Panda_ [~IMO@2a01:e35:8aae:fcb0:a6fd:e761:fbcd:cbc2] has quit [Remote host closed the connection] 20150807 22:02:19-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Ping timeout: 246 seconds] 20150807 22:16:02-!- trolling [~alynn@oftn/member/prophile] has quit [Read error: Connection reset by peer] 20150807 22:16:11-!- prophile [~alynn@oftn/member/prophile] has joined #wesnoth 20150807 22:17:09-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has quit [Ping timeout: 260 seconds] 20150807 22:19:08-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has joined #wesnoth 20150807 22:21:28-!- hay207 [~hay207@41.34.12.122] has quit [Quit: Konversation terminated!] 20150807 22:22:34-!- LuHa [~E330-Mint@119.204.77.86] has quit [Quit: Leaving.] 20150807 22:33:07< zookeeper> aeth, no, the order of keys doesn't matter 20150807 22:34:02< zookeeper> not sure if there's an exception to that somewhere... can't think of one 20150807 22:45:02-!- ShikadiLord [~ignacio@wesnoth/developer/shadowm] has joined #wesnoth 20150807 22:45:36-!- shadowm [~ignacio@wesnoth/developer/shadowm] has quit [Killed (weber.freenode.net (Nickname regained by services))] 20150807 22:45:36-!- ShikadiLord is now known as shadowm 20150807 22:46:26-!- aeonchild [enchilado@defocus/yummy/enchilado] has quit [Ping timeout: 260 seconds] 20150807 22:47:37-!- LuHa [~E330-Mint@119.204.77.86] has joined #wesnoth 20150807 22:49:16-!- Netsplit *.net <-> *.split quits: prkc, DreadKnight 20150807 22:53:38-!- Netsplit over, joins: prkc 20150807 22:53:50-!- Netsplit over, joins: DreadKnight 20150807 23:02:05-!- aeonchild [enchilado@defocus/yummy/enchilado] has joined #wesnoth 20150807 23:04:21-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has quit [Ping timeout: 256 seconds] 20150807 23:05:31< aeth> celticminstrel: That Logo's probably heavily inspired by and/or written in Lisp 20150807 23:05:54< aeth> celticminstrel: but it's not just that they're functions, they run at macro expansion time rather than run time. 20150807 23:06:02< aeth> s/they're functions/they're not functions/ 20150807 23:06:21-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has joined #wesnoth 20150807 23:06:47< aeth> Anyway, it would be really cool if I could find a way to get Lisp (or Logo???!!!) inspired macros and functions into WML. 20150807 23:07:27-!- DreadKnight [~DreadKnig@unaffiliated/dreadknight] has quit [Quit: #AncientBeast - Master Your Beasts ( www.AncientBeast.com )] 20150807 23:07:37< celticminstrel> I know Logo is kind of like Lisp without the parentheses, that's why I brought it up. 20150807 23:07:46< celticminstrel> (Well, more like, the parentheses are optional.) 20150807 23:08:04< aeth> celticminstrel: well WML is much closer to Lisp imo because the parentheses are there, they're just tags. 20150807 23:08:06-!- aeonchild [enchilado@defocus/yummy/enchilado] has quit [Ping timeout: 240 seconds] 20150807 23:08:25< aeth> It might be a dead end trying to use Lisp techniques in WML, but idk, they seem so similar 20150807 23:08:42< celticminstrel> zookeeper: In addition to the order of the keys not mattering, I'm guessing they're always processed in the same order regardless of their order in the source. 20150807 23:16:14-!- wario [~wario_@unaffiliated/wario] has quit [Quit: Leaving] 20150807 23:20:23-!- Appleman1234_ [~Appleman1@KD111107191235.au-net.ne.jp] has quit [Ping timeout: 244 seconds] 20150807 23:22:14-!- aeonchild [enchilado@defocus/yummy/enchilado] has joined #wesnoth 20150807 23:28:54< aeth> Oh wow I have finally done it. I have rewritten all but one of the GUIs to GUI2. 20150807 23:29:11< aeth> I am now at the same point of progress where I was about last weekend. 20150807 23:29:30< aeth> (actually I fixed a lot of minor bugs and issues while basically rewriting the entire code) 20150807 23:33:11-!- Appleman1234 [~Appleman1@KD036009073125.au-net.ne.jp] has joined #wesnoth 20150807 23:35:08< shadowm> WML attribute order doesn't matter. WML node order matters in contexts where it matters, and doesn't in others where it doesn't. 20150807 23:35:59< shadowm> Normally people call attributes "keys" (since they are effectively key-value pairs), but I've seen a few people call nodes (tags) "keys" as well, so I thought I might as well specify both. 20150807 23:37:00-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 264 seconds] 20150807 23:39:44< shadowm> (Examples of contexts where node order matters: event handlers, terrain builder rules, unit modifications, unit attacks. Examples of contexts where order doesn't matter: scenario definitions, campaign declarations, unit animations. 20150807 23:40:39< aeth> right so WML is basically two data structures paired then? a hash table and something that holds tags in order 20150807 23:43:26-!- Xara [Yangyf@2001:cc0:2020:4010:944a:1fa7:30e4:54dc] has joined #wesnoth 20150807 23:43:56< shadowm> Two ordered maps, and a list of descriptors. 20150807 23:44:41-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth 20150807 23:44:54< shadowm> That's the current implementation, but there's no particular reason why an alternative implementation would have to do the same unless it was intended to be API-compatible. 20150807 23:46:29< aeth> how many breaking changes have happened in WML history? 20150807 23:47:00< shadowm> The last WML syntax change to my knowledge was in 0.4.x when [end] was replaced with the [/tagname] syntax. 20150807 23:47:12< aeth> so it would basically have to be compatible 20150807 23:47:26< shadowm> The preprocessor has only ever seen additions, no changes or dropped features. 20150807 23:47:39< shadowm> I said API-compatible. 20150807 23:47:39< celticminstrel> I would say it would have to maintain the order of tags. 20150807 23:47:59< shadowm> I.e. as in the memory representation API, the config type. 20150807 23:48:06< celticminstrel> If you want to maintain identical behaviour, that is. 20150807 23:48:29< aeth> celticminstrel: well no, I was thinking about how to add functions so behavior would have to change a little 20150807 23:48:37< shadowm> Of course you can't really write an implementation that can't preserve node order and call it WML, I thought that was out of the question. 20150807 23:49:44< shadowm> You can call it dumbWML or something similarly exclusive, of course. 20150807 23:57:36< aeth> I am so bored of waiting for people to test my RPG that I just made everyone Fire Dragons lol 20150807 23:59:21< aeth> lol and that still wasn't enough because they didn't like the shop only having healing for now, 2 left 20150807 23:59:25< aeth> damn it --- Log closed Sat Aug 08 00:00:34 2015