--- Log opened Fri Jul 13 00:00:29 2012 20120713 00:01:09-!- anonymissimus [~chatzilla@HSI-KBW-078-042-163-105.hsi3.kabel-badenwuerttemberg.de] has quit [Quit: ChatZilla 0.9.88.2 [Firefox 12.0/20120423122928]] 20120713 00:04:57-!- ancestral [~ancestral@75-161-190-170.mpls.qwest.net] has joined #wesnoth-dev 20120713 00:25:17-!- anakayub [~anakayub@81.156.159.110.tm-hsbb.tm.net.my] has joined #wesnoth-dev 20120713 00:26:06-!- Crendgrim [~crend@77-22-112-72-dynip.superkabel.de] has quit [Quit: ...] 20120713 00:34:09-!- neXyon [~neXyon@84-119-56-199.dynamic.xdsl-line.inode.at] has quit [Quit: bye] 20120713 00:50:13-!- anakayub [~anakayub@81.156.159.110.tm-hsbb.tm.net.my] has quit [Quit: anakayub] 20120713 00:50:52-!- EdB [~edb@tss37-1-89-82-194-231.dsl.sta.abo.bbox.fr] has quit [Quit: Konversation terminated!] 20120713 00:59:50-!- elias [~allefant@allefant.com] has quit [Changing host] 20120713 00:59:50-!- elias [~allefant@allegro/developer/allefant] has joined #wesnoth-dev 20120713 01:13:18-!- mattsc [~mattsc@fw.hia.nrc.ca] has quit [Quit: bye] 20120713 01:21:22-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20120713 01:22:36-!- ancestral [~ancestral@75-161-190-170.mpls.qwest.net] has quit [Quit: And that’s the end of THAT chapter.] 20120713 01:27:36-!- negusnyul [~negusnyul@2E6BA662.dsl.pool.telekom.hu] has quit [Quit: Konversation terminated!] 20120713 01:33:25-!- ToBeFree [~tobefree@unaffiliated/tobefree] has quit [Read error: Connection reset by peer] 20120713 01:49:51-!- wesbot changed the topic of #wesnoth-dev to: 182 bugs, 337 feature requests, 17 patches | Logs: http://irclogs.wesnoth.org | Don't paste on IRC! Use a pastebin: http://pastebin.com | http://imagebin.org 20120713 02:00:39-!- timotei [~timotei@194.117.242.16] has joined #wesnoth-dev 20120713 02:00:39-!- timotei [~timotei@194.117.242.16] has quit [Changing host] 20120713 02:00:39-!- timotei [~timotei@wesnoth/developer/timotei] has joined #wesnoth-dev 20120713 02:03:27-!- mjs-de [~mjs-de@d120107.adsl.hansenet.de] has quit [Remote host closed the connection] 20120713 02:18:29-!- timotei [~timotei@wesnoth/developer/timotei] has quit [Ping timeout: 246 seconds] 20120713 02:51:56-!- noy [~Noy@wesnoth/developer/noy] has quit [Ping timeout: 255 seconds] 20120713 02:54:23-!- Gambit_ [~gambit@wesnoth/developer/grickit] has joined #wesnoth-dev 20120713 02:55:53-!- Gambit [~gambit@wesnoth/developer/grickit] has quit [Quit: No Ping reply in 180 seconds.] 20120713 03:30:16-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20120713 03:39:32-!- loonybot [~loonybot@wesnoth/bot/loonybot] has quit [Remote host closed the connection] 20120713 03:56:50-!- Netsplit *.net <-> *.split quits: iwaim, [Relic] 20120713 04:15:04-!- Netsplit over, joins: iwaim, [Relic] 20120713 04:27:45-!- Ivanovic_ [~ivanovic@dtmd-4db2613e.pool.mediaWays.net] has joined #wesnoth-dev 20120713 04:31:14-!- Ivanovic [~ivanovic@wesnoth/developer/ivanovic] has quit [Ping timeout: 260 seconds] 20120713 04:31:39-!- Ivanovic_ is now known as Ivanovic 20120713 05:02:53-!- neph_ [~neph@80.233.231.12] has joined #wesnoth-dev 20120713 05:07:11-!- neph_ [~neph@80.233.231.12] has quit [Ping timeout: 246 seconds] 20120713 05:09:01< CIA-87> alarantalara * r54704 /trunk/data/campaigns/Under_the_Burning_Suns/scenarios/02_Across_the_Harsh_Sands.cfg: Get rid of hunting_ogres_found variable 20120713 05:09:42< CIA-87> alarantalara * r54705 /trunk/data/campaigns/Under_the_Burning_Suns/scenarios/02_Across_the_Harsh_Sands.cfg: Finish getting rid of hunting_ogres_found variable 20120713 05:24:32-!- Gambit_ [~gambit@wesnoth/developer/grickit] has quit [Quit: I just want Battlefront 3...] 20120713 05:32:37< CIA-87> alarantalara * r54706 /trunk/data/campaigns/Under_the_Burning_Suns/scenarios/02_Across_the_Harsh_Sands.cfg: Remove scorpions_found variable 20120713 06:02:06-!- trademark_ [~trademark@mon69-1-82-67-23-185.fbx.proxad.net] has joined #wesnoth-dev 20120713 06:06:18-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has quit [] 20120713 06:40:00-!- timotei [~timotei@194.117.242.16] has joined #wesnoth-dev 20120713 06:40:00-!- timotei [~timotei@194.117.242.16] has quit [Changing host] 20120713 06:40:00-!- timotei [~timotei@wesnoth/developer/timotei] has joined #wesnoth-dev 20120713 06:58:28< trademark_> hello, someone is familiar with boost.Spirit here ? 20120713 07:31:05-!- Ivanovic [~ivanovic@dtmd-4db2613e.pool.mediaWays.net] has quit [Changing host] 20120713 07:31:05-!- Ivanovic [~ivanovic@wesnoth/developer/ivanovic] has joined #wesnoth-dev 20120713 08:05:50< Ivanovic> okay, wesnoth in 2560x1440 is *WOW* 20120713 08:23:09< timotei> Ivanovic, on a Mac I presume? :D 20120713 08:36:57 * vultraz is jealous 20120713 08:37:11< vultraz> best I have is 1600x900 :P 20120713 08:38:18-!- trademark_ [~trademark@mon69-1-82-67-23-185.fbx.proxad.net] has quit [Read error: Operation timed out] 20120713 08:40:14< vultraz> Ivanovic: what monitor size 20120713 08:43:56-!- Gallaecio [~quassel@84.120.114.134.dyn.user.ono.com] has quit [Remote host closed the connection] 20120713 08:45:42< timotei> vultraz, I'd say a 27". 20120713 08:45:50< timotei> Only those have that big resolution :D 20120713 08:46:03< vultraz> ._. I only have 20" 20120713 08:46:19< timotei> I have 23" :P 20120713 08:46:29< timotei> But it's still just 1980x1024 HD 20120713 08:46:51< vultraz> gahh *jealous* 20120713 08:47:05< timotei> 1980x1080 actually. 20120713 08:47:28< shadowm> I can't help but question the sanity of using a monitor that large. 20120713 08:47:48< timotei> shadowm, more screen space. 20120713 08:48:08< shadowm> The larger the display, the farther you must place it. 20120713 08:48:09< timotei> It's (almost) never too bad too have a higher resolution. 20120713 08:50:20< timotei> Indeed, but you can have multiple things on the screen without the need to scroll/switch windows too much 20120713 08:50:23< shadowm> i.e., I don't think I could stare at a such a screen for long unless it was at least five meters away from me. 20120713 08:50:37< vultraz> I saw a guy with like a ... 5 ft TV once 20120713 08:50:39< timotei> 23" is small honest to be 20120713 08:50:52< timotei> I sit at like 30 cms? 20120713 08:50:58< timotei> Something like that 20120713 08:51:03< shadowm> That doesn't sound good for your eyes. 20120713 08:51:05< timotei> Actually 40 cm 20120713 08:51:20< timotei> It's a LCD. Why wouldn't it be? 20120713 08:51:25< timotei> It's distant enough 20120713 08:51:27< timotei> :/ 20120713 08:51:38< vultraz> I sit like...1.5 ft from mine 20120713 08:51:47< shadowm> Somehow I suspect you can't even see the whole thing. 20120713 08:52:37< timotei> I can.. the good thing is that bigger sizes monitors are wider... so basically you just need to "scroll" your eyes only horizontally 20120713 08:52:55< timotei> Lol. "Scroll my eyes" 20120713 08:53:25-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20120713 08:53:28< vultraz> loll 20120713 08:55:27-!- Guest44713 [~timotei@194.117.242.19] has joined #wesnoth-dev 20120713 08:55:33-!- Guest44713 is now known as timotei21 20120713 08:55:38-!- timotei21 [~timotei@194.117.242.19] has quit [Changing host] 20120713 08:55:38-!- timotei21 [~timotei@wesnoth/developer/timotei] has joined #wesnoth-dev 20120713 08:57:01< vultraz> shadowm: you must have a tiny screen 20120713 08:57:13< shadowm> Yes. 20120713 08:57:25< shadowm> It's so tiny, it fits in my palm. 20120713 08:57:32< vultraz> get a bigger one :P 20120713 08:57:55< shadowm> Give me money to purchase a desktop computer with a proper monitor. 20120713 08:58:24 * vultraz sends shadowm $2000 in virtual currency 20120713 09:02:05< timotei21> shadowm, 1366x728? 20120713 09:02:13< timotei21> I have that one at my laptop 20120713 09:02:16< shadowm> No, hell noo. 20120713 09:02:28< shadowm> I wouldn't use anything less than *x800. 20120713 09:02:41< timotei21> Heh. Then it's not so small after all :) 20120713 09:02:52< timotei21> The height is… somewhat fine. 20120713 09:03:06< timotei21> I mean that's the problem for me most of the time @ my laptop. The height is too small. 20120713 09:04:36-!- loonybot [~loonybot@wesnoth/bot/loonybot] has joined #wesnoth-dev 20120713 09:04:38< shadowm> Yeah, but here's the thing. 20120713 09:04:46< shadowm> I prefer bluecore's screen to this one. 20120713 09:05:12< shadowm> Their native resolution is 1280x800 both. The difference is the physical resolution. 20120713 09:05:54< shadowm> bluecore's screen is slightly larger than this one, but it's much more comfortable somehow. 20120713 09:07:10< vultraz> my other laptop has 1280x800 20120713 09:07:13< vultraz> 14" 20120713 09:07:20< vultraz> it too smallll 20120713 09:14:02< timotei21> And I don't understand those with the 11" MacBook Airs... 20120713 09:15:07< vultraz> or those 10" netbooks... 20120713 09:16:16< Ivanovic> timotei21: http://www.tftcentral.co.uk/reviews/samsung_s27a850d.htm 20120713 09:16:31< timotei21> vultraz, those are good for playing Plants Vs Zombies :X 20120713 09:16:37< Ivanovic> that is my lovely new screen 20120713 09:16:42< Ivanovic> and no, it is *NOT* a mac! 20120713 09:16:43< Ivanovic> ;) 20120713 09:17:02< timotei21> Nice\ 20120713 09:17:17< shadowm> vultraz: netbooks are not for general-purpose usage, that's why. 20120713 09:17:18< timotei21> IDK why I thought only the 27" Apple Screen had that resolution 20120713 09:17:18< vultraz> Ivanovic: I'm insanely jealous 20120713 09:17:50-!- neXyon [~neXyon@84-119-56-199.dynamic.xdsl-line.inode.at] has joined #wesnoth-dev 20120713 09:18:55< Ivanovic> apple only got those glare screens and i don't want to have a mirror but a display 20120713 09:19:36< vultraz> loll 20120713 09:20:36< vultraz> Ivanovic, timotei: http://www.amazon.com/HP-S2031-20-Inch-Diagonal-Monitor/dp/B003FMUL7M is what I have 20120713 09:25:03< zookeeper> i got this: http://www.newegg.com/Product/Product.aspx?Item=N82E16824260047 <3 <3 <3 best piece of hardware i've ever had 20120713 09:25:34< zookeeper> 16:10 beats 16:9 any day 20120713 09:25:53< vultraz> isn't 16:9 more common? 20120713 09:26:19< zookeeper> yes 20120713 09:27:53< zookeeper> which is annoying because it's so utterly bad in everyday use -.- 20120713 09:28:09< vultraz> how come 20120713 09:28:13< vultraz> seems fine to me 20120713 09:28:20< vultraz> and is rly nice at movies 20120713 09:28:26< Ivanovic> zookeeper: yes, i would have prefered 16:10, too 20120713 09:28:41 * vultraz <3s his monitor + speaker sys 20120713 09:28:43< Ivanovic> sadly those are hard to find for affordable prices with resolutions >1920x1200 20120713 09:29:05< zookeeper> because in everyday use i don't have any use for the massive amount of extra horizontal space, and i actually need some vertical space 20120713 09:29:26< Ivanovic> zookeeper: i do have use for it, just have two areas in parallel 20120713 09:29:33< Ivanovic> one for the browser, one for chatting and stuff 20120713 09:29:58< vultraz> I use OS X's workspaces, so I don't really need areas 20120713 09:30:20< Ivanovic> vultraz: i also use workspaces, but i like to have things open in parallel 20120713 09:30:27< Ivanovic> so e.g. watch some movie while also chatting 20120713 09:30:36< vultraz> hm... 20120713 09:30:47< vultraz> wouldn't you watch a movie in fullscreen? :P 20120713 09:30:57< Ivanovic> depends on my mood 20120713 09:31:09< Ivanovic> some movies i watch full screen, sometimes i want to do other stuff in parallel 20120713 09:31:19-!- neph_ [~neph@80.233.231.12] has joined #wesnoth-dev 20120713 09:31:19< vultraz> hm...true 20120713 09:32:05 * vultraz wonders why we've all suddenly started comparing our systems 20120713 09:32:39< zookeeper> i like to keep my apps maximized, i don't want to try to organize them side-by-side. i can comfortably have 7 irc channels on-screen at once, or to have two files open in my text editor, but i don't have any need to have several apps visible at once (except in very specific circumstances) 20120713 09:33:03< vultraz> I don't minimize much either 20120713 09:33:24< vultraz> basically I just distribute the stuff between my workspaces 20120713 09:34:13< vultraz> I only minimize Gimp and Terminal 20120713 09:34:34< vultraz> and my family bugs me about having too much open... XD 20120713 09:35:17< timotei21> zookeeper, nice DELL Monitor you have there :D 20120713 09:35:39< shadowm> One workspace, not a lot of simultaneous foreground applications running, usually keeping the one I'm currently using maximized. 20120713 09:35:44< vultraz> well, I suppose Firefox, Chrome, iTunes, TextEdit, SKype, Terminal, Wesnoth, and Gimp is a lot 20120713 09:35:59< shadowm> And always a Konsole instance with a preposterous amount of shell tabs. 20120713 09:36:22< vultraz> shadowm: how many 20120713 09:36:35< vultraz> I have 7 Terminal tabs 20120713 09:36:36< shadowm> Anything between 1 and 30 depending on what I'm doing. 20120713 09:36:44< vultraz> O_o 20120713 09:36:52< timotei21> shadowm, one of them is always the IRC, right? 20120713 09:37:12< vultraz> shadowm: you use IRC in terminal...? 20120713 09:37:15< shadowm> More like an attached screen session over ssh that happens to be running irssi. 20120713 09:37:25< zookeeper> ever since i've gotten an earth-shattering 4gb of ram i've been able to finally keep all the apps i need open at the same time. which is really nice. i had gotten very used to just closing stuff constantly when i needed to run other stuff. 20120713 09:37:58< vultraz> zookeeper: 4????? wow... I only have 2 /_- 20120713 09:38:40< vultraz> next someone is gonna say they have an i7 cpu :P 20120713 09:38:51< zookeeper> i think the wow amount these days is 16gb or more :p 20120713 09:38:59< vultraz> o_O 20120713 09:39:13< zookeeper> i can see myself wanting 8gb one day, but surely that will be enough for the rest of eternity. 20120713 09:39:33< vultraz> DDR3? 20120713 09:40:00< timotei21> vultraz, 4 is a normal thing these days. 20120713 09:40:14< timotei21> vultraz, I mean almost minimum if you really want to do something with your PC and want to be productive. 20120713 09:40:16< Ivanovic> Sysinfo for 'rechner1': Linux 3.4.4 running KDE Development Platform 4.8.4 (4.8.4), CPU: AMD Phenom II X6 1055T at 800 MHz (5625 bogomips), HD: 338/1483GB, RAM: 4048/16061MB, 132 proc's, 2.11h up 20120713 09:40:25< zookeeper> well there's not much systems capable of 8gb DDR2, i... think. i might be completely wrong though. 20120713 09:40:25< vultraz> timotei21: then I'm behind /_\ 20120713 09:40:43< shadowm> 4 GiB is a rather frustrating amount of RAM to work with when making debug builds of Wesnoth. 20120713 09:40:49< timotei21> Herhe 20120713 09:41:31< shadowm> Two years ago it was just perfect. 20120713 09:44:53< zookeeper> with this system i can easily simultaneously run mirc, notepad++, >5 firefoxes + plenty of tabs, 3dsmax, paint.net, vlc, a game, various background apps, various small apps... which is more than i should really require at the same time 20120713 09:45:20< vultraz> Processor 2.33 GHz Intel Core 2 Duo; Memory 2 GB 667 MHz DDR2 SDRAM; Graphics ATI Radeon X1600 256 MB; Software Mac OS X Lion 10.7.3 (11D50d) 20120713 09:45:50< timotei21> vultraz, didn't upgrade to 10.7.4? 20120713 09:46:16< vultraz> timotei21: not yet, even though the update is already downloaded 20120713 09:46:34< vultraz> I'm too lazy to load up Software Update and reboot.. 20120713 09:46:47< timotei21> :) 20120713 09:46:52< vultraz> ;) 20120713 09:47:32< zookeeper> yeah the most annoying thing about being able to have so many apps constantly open is when i need to reboot 20120713 09:48:03< vultraz> zookeeper: exactly 20120713 09:48:09< vultraz> which is why I leave this on 24/7 20120713 09:48:09< zookeeper> usually when i shutdown i just hibernate and get everything back the way it was when i power back on. but rebooting... urgh. 20120713 09:59:48-!- negusnyul [~negusnyul@2E6BA662.dsl.pool.telekom.hu] has joined #wesnoth-dev 20120713 10:07:24-!- [Relic] [~relic@99-58-54-211.lightspeed.milwwi.sbcglobal.net] has quit [Quit: Leaving] 20120713 10:38:10< CIA-87> akihara * r54707 /trunk/ (11 files in 8 dirs): Adding new files concerning new AI (ai/akihara/recruitment.?pp) and new scenario for the ai_arena_small. 20120713 11:11:12-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has joined #wesnoth-dev 20120713 11:12:56< Espreon> Akihara: You need not bind your files to textdomains if they don't have translatable strings; just use "# wmllint: no translatables" instead in your WML files. 20120713 11:13:45< Akihara> okay 20120713 11:14:36< Akihara> where did i made it? 20120713 11:14:47< Espreon> And I don't think you needed to add your .*pp files to POTFILES.in; I didn't see any translatable strings in the .*pp files you added, but it was only a quick look. 20120713 11:15:04-!- skyfaller_ [~skyfaller@ool-43551e75.dyn.optonline.net] has quit [Remote host closed the connection] 20120713 11:15:45< shadowm> Uh. 20120713 11:15:47< Espreon> data/ai/dev/akihara_recruitment.cfg ... data/ai/scenarios/ai_arena_small/0005-recruitment_test.cfg 20120713 11:15:47< Akihara> thanks :) 20120713 11:15:54< Espreon> shadowm: Did I say something wrong? 20120713 11:15:58< shadowm> I thought POTFILES.in was filled automatically in during pot-update? 20120713 11:16:07< shadowm> *in automatically 20120713 11:16:22< Espreon> I honestly don't know about. I always see it being manually filled in. 20120713 11:16:25< Espreon> *about that. 20120713 11:16:54< shadowm> If it actually needs to be manually edited, then I've been doing it wrong for years and nobody has told me yet. 20120713 11:18:17< Espreon> I honestly don't know. 20120713 11:18:47-!- horon [~horon@nttkyo331099.tkyo.nt.ngn2.ppp.infoweb.ne.jp] has joined #wesnoth-dev 20120713 11:19:17< shadowm> Ivanovic: do we need to add C++ source files to the POTFILES.in files by hand, or that's automatically done during the pot-update? 20120713 11:32:25-!- ToBeFree [~tobefree@unaffiliated/tobefree] has joined #wesnoth-dev 20120713 11:40:47-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has quit [Read error: Connection reset by peer] 20120713 11:50:42-!- fendrin [~fabi@wesnoth/developer/fendrin] has quit [Quit: Konversation terminated!] 20120713 11:51:32-!- Elvish_Pillager [~eli@71-10-229-241.dhcp.oxfr.ma.charter.com] has quit [Ping timeout: 244 seconds] 20120713 12:04:42-!- Elvish_Pillager [~eli@71-10-229-241.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20120713 12:09:16-!- Crendgrim [~crend@77-22-112-72-dynip.superkabel.de] has joined #wesnoth-dev 20120713 12:10:23-!- Ayne [~Ayne@cpc2-sgyl34-2-0-cust493.sgyl.cable.virginmedia.com] has joined #wesnoth-dev 20120713 12:16:05-!- neph_ is now known as Nephro 20120713 12:21:22-!- anakayub [~anakayub@81.156.159.110.tm-hsbb.tm.net.my] has joined #wesnoth-dev 20120713 12:32:11-!- Crab_ [Crab_@wesnoth/developer/crab] has joined #wesnoth-dev 20120713 12:32:44< Crab_> hi, Nephro. Do you have time atm to talk about your questions? 20120713 12:32:56< Nephro> Crab_, yes, in 2 minutes, ok? 20120713 12:33:02< Crab_> sure 20120713 12:33:18< Crab_> hi, Ayne. Just saying hello :) 20120713 12:34:18< Ayne> hello, Crab_ :) 20120713 12:38:51< Nephro> Crab_, I read your conversation with matt, but you left it unfinished. He requests other features than the attacks problem, mainly the filter for the CAs and the access to the ai context 20120713 12:39:06-!- mjs-de [~mjs-de@d184223.adsl.hansenet.de] has joined #wesnoth-dev 20120713 12:39:20< Nephro> which one are going for then? 20120713 12:40:19< Crab_> I left it unfinished because I want you to decide. We talked with you about the attack problem already, so let me briefly describe the implementation details for filters and access to ai context. 20120713 12:40:42-!- timotei [~timotei@wesnoth/developer/timotei] has quit [Read error: Connection reset by peer] 20120713 12:41:06< Crab_> in general, it's very easy to add per-CA specific parameters, in C++. It can be thought of either a static parameter or as an 'aspect' local to the parameter. 20120713 12:41:34< Crab_> see http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/testing/aspect_attacks.cpp for an example 20120713 12:42:07< Crab_> for each of 2 parameters, filter_own and filter enemy, there are 3 lines in ctor and 3 lines in to_config(), plus a line or two in header. 20120713 12:42:32< Crab_> so, declaring simple static parameters and getting access to their value is easy enough 20120713 12:42:44< Crab_> and, in some cases, they're easy to use as well 20120713 12:43:12-!- Elvish_Pillager [~eli@71-10-229-241.dhcp.oxfr.ma.charter.com] has quit [Ping timeout: 244 seconds] 20120713 12:43:12< Crab_> but, in one particular case (and this is the case which is interesting to mattsc), it's slightly more tricky - the Move-to-targets phase CA 20120713 12:43:42< Crab_> the tricky part is that that phase expected to move all the units which are not moved, either by setting their moves to 0 if they are guardians, or by moving them close to targets 20120713 12:43:58< Crab_> see svn.gna.org/viewcvs/wesnoth/trunk/src/ai/testing/ca_testing_move_to_targets.cpp 20120713 12:44:14< Crab_> find the //find the first eligible unit comment 20120713 12:44:53< Crab_> note that this check is O(N^2) in terms of number of units 20120713 12:45:08< Crab_> but, in practice, it is fast beceusae the if inside for is very fast 20120713 12:45:13< Crab_> *because 20120713 12:45:30< Crab_> but, if you add an additional filter check here, the if would become slow (some unit filters are quite slow) 20120713 12:46:07< Crab_> so, due to O(N^2) of the way this loop is called (one for loop here, other in testing_move_to_targets_phase::execute() ), it'll be very slow 20120713 12:46:30< Crab_> so, in order to use filters in move_to_targets phase, we need to rework the code to make it O(N) in terms of number of units. 20120713 12:46:54< Crab_> this is easily done because this CA moves *all* the units it can in 1 execute() 20120713 12:48:20< Crab_> so, we just need to add cache - iterate over all the units, and then create a small list of 'our units which have >0 moves, are not incapacitated, and match a filter (default filter being "can't recruit", to match current behavior)' 20120713 12:49:45< Crab_> it might be more correct to create this list in 'evaluate', and return bad_score() if that list is empty. 20120713 12:50:47< Crab_> then, instead of the O(N^2) "for (;;;) for (find the unit)" construction, we'll have O(N) "for (;;;) for (take next unit from cache in const time)" construction 20120713 12:51:15< Crab_> and it'd be reasonably fast even with unit filters present. 20120713 12:52:00< Crab_> with small caveats, of course (i.e. filters would be evaluated once before action, and so some filtering won't be accurate) 20120713 12:52:20< Crab_> for other candidate actions, adding support for filters is much easier - just plug in ~10 lines of code. 20120713 12:52:46< Crab_> Nephro: any questions here? if no, I'll continue to brief overview of access to ai context from debug utils 20120713 12:53:59< Nephro> nope, no questions atm 20120713 12:54:14< Crab_> ok, great. 20120713 12:56:05< Crab_> the first step is to allow access to context of local (running on same PC) AI from non-ai code. 20120713 12:56:55< Crab_> The easiest non-hacky way to do that is to add a function to wesnoth table which will get ai for side X 20120713 12:57:11< Crab_> like, "wesnoth.ai(3)" 20120713 12:57:28< Crab_> unless you make it mp-safe, make it debug-only 20120713 12:57:46< Crab_> i.e. wesnoth.debug_ai(2) to get access to local ai context of side 2. 20120713 12:57:54< Crab_> local means 'on same PC' 20120713 12:58:46< Crab_> for reference, the hacky way is to add a stage/engine/ca which will expose the ai context into a global variable 20120713 12:58:52-!- timotei21 [~timotei@wesnoth/developer/timotei] has quit [Quit: Leaving] 20120713 12:59:08< Crab_> I believe that this way was used previously by users, as it does not require any C++ changes. 20120713 12:59:21< Crab_> but exposing this is only half of the job 20120713 12:59:29< Crab_> it would be cool to have two more things: 20120713 12:59:59< Crab_> 1) expose ai component hierarchy to lua code 20120713 13:01:03< Crab_> 2) allow some ai components to have methods callable from lua on them 20120713 13:01:09< Crab_> i.e., the syntax can be like wesnoth.debug_ai(1).main_loop.recruitment_candidate_action.evaluate() 20120713 13:01:53< Crab_> for debug, there's no need to make it mp-safe or store it in replays or add any modification functions (modify_ai solves all that, for now) 20120713 13:02:40< Crab_> but, it'd be very easy to do various tricks like 'add a new menu item that would run lua code that would ask the 'main loop' stage of ai for side 1 to execute, or to pick the best candidate action but don't run it, etc 20120713 13:03:05< Nephro> yes 20120713 13:03:07< Crab_> All that is easy to do, actually, way easier that the enemy attacks aspect refactoring, but highly useful. 20120713 13:03:25< Crab_> and you already have a lot of experience in exposing various stuff to lua 20120713 13:03:56< Crab_> just see how modify_ai works, how it finds the correct component, how it interacts with component 20120713 13:04:24< Crab_> http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/composite/component.hpp 20120713 13:05:22< Crab_> since the ai component tree is generally small, you can do it in an easier way by just making a function which will populate the entire AI component tree at once 20120713 13:05:30< Crab_> i.e. which'll create a lua table for the AI 20120713 13:05:47< Crab_> then you'll just have to add the functions which operate on the leaves. 20120713 13:05:57< Nephro> Crab_, i can do that 20120713 13:06:07< Nephro> but this reminds me of one thing I forgot to deal with 20120713 13:06:33< Crab_> for slightly more difficult approach, you can make lua proxies for each individual element (aspect, stage, candidate action, etc) 20120713 13:07:01< Crab_> and each of those would have metamethods to get the children 20120713 13:07:14< Crab_> it's ok if the syntax will have some sugar in it 20120713 13:07:28< Nephro> binding functions will require pointers passed from C++ to Lua and back... THe way I do it in attacks exposure, there is no way of validating the pointers 20120713 13:07:36< Espreon> What about honey? 20120713 13:07:55< Crab_> i.e. wesnoth.debug_ai(1).stage('main_loop').ca('recruitment_candidate_action').evaluate() is ok 20120713 13:08:03< Crab_> Espreon: next gsoc, probably :)) 20120713 13:08:11< Espreon> Oh, all right. 20120713 13:08:31< Crab_> Nephro: no, you don't require pointers here 20120713 13:09:05< Nephro> oh, right, I can avoid them 20120713 13:09:16< Crab_> Nephro: string or structure like "ai # 1, stage 'main loop', candidate action 'combat phase' " is a string pointer 20120713 13:09:31< Crab_> which can be revalidated on access to evaluate or execute 20120713 13:09:56< Crab_> you can add a function into component_manager to find the component by path string for you 20120713 13:10:11< Crab_> also, you can reuse the modify_ai syntax 20120713 13:10:31< Crab_> it's nicely handled by boost::regex re("([^\\.^\\[]+)(\\[(\\d*)\\]|\\[([^\\]]+)\\]|())"); :)) 20120713 13:10:39< Crab_> (in component.cpp) 20120713 13:11:04< Crab_> so, your lua proxies can just hold a reference in form of string or a set of strings 20120713 13:11:46< Crab_> this is enough to call the method with verification (find the component by string, if not null, check if it of type you expect it to be, cast and call the method if necessary) 20120713 13:13:21< Crab_> then, for ease of coding, just make each component contain a small lua 'component engine' 20120713 13:13:56< Crab_> i.e. store a lua table inside each and every component 20120713 13:14:13< Crab_> then, it'll be easy and fun 20120713 13:14:36< Crab_> each component would have a lua table. those components which can do something useful would just add functions to that lua table 20120713 13:15:34< Crab_> i.e., each stage has a do_stage method. so, constructor or initializer of stage can add a C++ function to that lua table which will operate on this particular stage and call do_stage on it 20120713 13:17:05< Crab_> Nephro: or, use any other design you think of (but make sure it's easy to code) 20120713 13:17:25< Crab_> the advantage of doing it at component level is that it'll apply instantly to all the ai components 20120713 13:17:43< Nephro> yes, I like this approach 20120713 13:19:44< Crab_> or you can do it purely in C++, if you want to 20120713 13:20:18< Crab_> i.e., once you found the component, just pass a string command to it's execute_command(const std::string &command) method 20120713 13:21:01< Crab_> the lua route is funnier because it would be easier to chain it with lua, especially if the parameters to the component would be lua callbacks 20120713 13:21:34< Crab_> but, the lua route has some additional security implications - namely, you need to ensure that you don't call methods on ai components that went out of scope. 20120713 13:22:21< Crab_> this is doable because the object creates the lua table with functions and the functions themselves, and it can, for example, clean things up at destruction time to show the lua code that it is no longer alice. 20120713 13:22:25< Crab_> *alive 20120713 13:23:29< Crab_> Nephro: the question is, I think that there's only enough time for 1 set of things, "add enemy attacks aspect and cleanup attack analysis code" or "expose AI tree to lua for debugging purposes" 20120713 13:23:36< Crab_> so, the choice here is yours. 20120713 13:23:57< Crab_> note that per-CA filters can be added easily, no matter what you do 20120713 13:24:26< Crab_> what do you think? 20120713 13:25:07< Nephro> I'm just plain confused now :D I'll be off for the weekend, and then will just start doing something on Monday 20120713 13:25:30< Nephro> probably the minor tasks, since mattsc has his own attacks methods and that can wait 20120713 13:25:39< Nephro> he really wants access to the ai tables though 20120713 13:26:02< Crab_> Nephro: it's easy to get a 'small version' of ai table access, btw 20120713 13:27:06< Crab_> Nephro: just expose the AI table to lua via wesnoth.debug_ai(X) and add two methods to ai context, with names like 'run candidate action FOO from rca stage MAIN_LOOP' and 'run stage BAR' 20120713 13:27:42< Crab_> i.e. 20120713 13:27:46< Crab_> wesnoth.debug_ai(1).evaluate_candidate_action('main_loop', 'combat_phase') 20120713 13:28:00< Crab_> wesnoth.debug_ai(1).execute_candidate_action('main_loop', 'combat_phase') 20120713 13:28:13< Crab_> wesnoth.debug_ai(1).execute_stage('main_loop') 20120713 13:29:11< Crab_> you can warn that those methods will go away when you'll do it in a better way 20120713 13:29:18< Crab_> it would be ok since those are debug methods 20120713 13:29:25< Nephro> I don't think that the proper way would take too much time 20120713 13:29:42< Crab_> great 20120713 13:30:35< Crab_> so, do we agree that for the second part of the project, we'll settle on "add some per-CA filters, add access to ai context and RCA stage for debugging, ensure that the documentation is up-to-date" ? 20120713 13:30:56< Crab_> (This would also mean that we'll not focus on getting the enemy attacks aspect done) 20120713 13:33:01< Espreon> Documentation... is awesome. 20120713 13:33:36< Crab_> Espreon: it was a point of complaints after last GSoC, so we want to make it better this time 20120713 13:34:34< Espreon> Huzzah. 20120713 13:37:57-!- Ayne [~Ayne@cpc2-sgyl34-2-0-cust493.sgyl.cable.virginmedia.com] has quit [Quit: Leaving] 20120713 13:48:59< Nephro> Crab_, yes, we can agree on that 20120713 13:59:55-!- negusnyul [~negusnyul@2E6BA662.dsl.pool.telekom.hu] has quit [Quit: Konversation terminated!] 20120713 13:59:58-!- negusnyul_ [~negusnyul@2E6BA662.dsl.pool.telekom.hu] has joined #wesnoth-dev 20120713 14:19:07< CIA-87> alarantalara * r54708 /trunk/data/campaigns/Under_the_Burning_Suns/scenarios/02_Across_the_Harsh_Sands.cfg: Use hide/unhide rather than store/unstore 20120713 14:21:07< Ivanovic> shadowm: this is supposed to happen during pot-updates these days 20120713 14:29:53< loonycyborg> The only use of POTFILES.in in po/SConscript starts with opening it for writing. Maybe we shouldn't keep them in version control anymore? 20120713 14:32:45< Ivanovic> hmm, no idea 20120713 14:33:00< loonycyborg> That is POTFILES.in seem to be basically temp files to communicate with xgettext and whatever. 20120713 14:33:24< Ivanovic> IIRC they are only required during pot-updates 20120713 14:33:40< Ivanovic> and once upon the tune they had to be manually edited 20120713 15:25:51-!- timotei [~timotei@188.24.2.25] has joined #wesnoth-dev 20120713 15:25:51-!- timotei [~timotei@188.24.2.25] has quit [Changing host] 20120713 15:25:51-!- timotei [~timotei@wesnoth/developer/timotei] has joined #wesnoth-dev 20120713 15:30:14-!- ToBeFree [~tobefree@unaffiliated/tobefree] has quit [Read error: Connection reset by peer] 20120713 15:58:37-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20120713 15:59:58-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has joined #wesnoth-dev 20120713 16:15:17-!- Ayne [~Ayne@cpc2-sgyl34-2-0-cust493.sgyl.cable.virginmedia.com] has joined #wesnoth-dev 20120713 16:27:56-!- mattsc [~mattsc@fw.hia.nrc.ca] has joined #wesnoth-dev 20120713 16:34:11-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has quit [Read error: Connection reset by peer] 20120713 16:34:25-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has joined #wesnoth-dev 20120713 16:36:59-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has quit [Client Quit] 20120713 16:46:46< mattsc> Nephro, Crab_: I read through (most of) your discussion and I like what you concluded. Those are the 3 (incl. documentation) highest priorities in my opinion as well. 20120713 16:46:58< mattsc> Well, today they are. I might change my mind tomorrow. :) 20120713 16:47:08< Crab_> mattsc: good 20120713 16:47:12< Crab_> for today :))\ 20120713 16:48:22< Crab_> mattsc: so, a potential syntax like wesnoth.debug_ai(1).stage('main_loop').evaluate_candidate_action('foo') is ok? 20120713 16:50:52< mattsc> Crab_: just to make sure i understand, this would be used inside the Lua code that I call, for example, with my right-click menu option? 20120713 16:51:11< Crab_> wesnoth is the usual wesnoth table, available everywhere in game 20120713 16:51:19< Crab_> yes, for example, from the right-click menu option 20120713 16:51:33< mattsc> oh (duh!). Yes, that would be great! 20120713 16:51:37< Crab_> but only for debugging purposes (we do no network calls, so it has to be a local ai) 20120713 16:52:07< mattsc> that's fine. It's really the debugging that I am worried about 20120713 16:52:38< Crab_> what debug calls do you actually require? 20120713 16:53:16< Crab_> I was thinking about 4 : execute CA, evaluate CA, evaluate CA loop but do no actions, execute stage. 20120713 16:53:56< mattsc> Actually, I can do all of that myself, I think. I really just need access to the functions inside the ai table. 20120713 16:54:29< Crab_> that's possible, but less convenient 20120713 16:55:18< mattsc> Sure, but barely, since you only need to set up the testing mechanism once, and it's only a few lines. 20120713 16:55:22< Crab_> while you can use the ai table if you get hold of it (like when you've saved it into global variable), it's better if you would be able to simulate the CAs as they're written, or simulate the entire CA loop 20120713 16:55:49< Crab_> i.e. where you have 3-4 CAs that interact and you need to figure out which one will run.. 20120713 16:55:56-!- Nephro [~neph@80.233.231.12] has quit [Ping timeout: 248 seconds] 20120713 16:56:00-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20120713 16:56:10< Crab_> but, you'll have access to the ai table, yes 20120713 16:56:12< mattsc> Crab_: no objections :) 20120713 16:56:58< mattsc> In my experience, most of the debugging one CA at a time, but of course you want to test the whole thing at some point also. 20120713 16:57:11< mattsc> * is one CA at a time ... 20120713 16:57:23< Crab_> ok 20120713 16:57:34< mattsc> So yeah, that'd be great, but I'd already be extremely happy if I simply have access to the ai table 20120713 16:57:56< mattsc> (well, if you don't take it away, because currently I do have it) 20120713 16:59:07< Crab_> mattsc: no, 'taking away' never was an objective. I was just concerned that this should only be used for debugging (because direct ai access is not mp-safe, as each user would have it's own notion of local ai) 20120713 16:59:41< Crab_> where code added in scenario and via [modify_ai] works always, as it is transferred over the network.. 20120713 17:00:04< mattsc> Yes, absolutely. 20120713 17:00:23< mattsc> Crab_, while we're talking: is using a CA evaluation function to display a message, or to set up a 'last breath' event, evil? :) 20120713 17:01:06< Crab_> Yes, absolutely (c). :)) 20120713 17:01:20< mattsc> Cool. It works well though. 20120713 17:01:52< Crab_> if evaluation returns >0, it's no guarantee that this CA would be executed 20120713 17:01:52< mattsc> Obviously, I won't put anything in there that would change the gamestate. 20120713 17:02:37< Crab_> so, your use of evaluation should not change the gamestate, and should be ok with it running many times 20120713 17:02:45< mattsc> That's fine. In fact, I have some CA evals that _always_ return 0 and just do something else. 20120713 17:03:03< mattsc> Crab_: yes, see the line I typed just before yours. 20120713 17:03:29< Crab_> but, if you're setting anything internally for 'if conditions FOO are true, then set some internal counters to BAR for future actions' is ok and intended 20120713 17:03:47< Crab_> i.e. many evaluations prepare a move that would be executed if execution is selected 20120713 17:03:55< mattsc> Ok. Yes, that's what I am doing. 20120713 17:04:20< Crab_> just make sure it's ok if it's run only on 1 client 89 times :)) 20120713 17:04:39< Crab_> setting the same msg 89 times is ok 20120713 17:04:56< mattsc> Just as examples, the two cases where I do this at the moment: 1. I have a CA that sets an aspect based on the situation on the map. 20120713 17:04:58< Crab_> displaying a message might not be ok, if it is displayed 89 times :)) 20120713 17:05:13< mattsc> :) 20120713 17:05:25< Crab_> how do you set an aspect? [modify_ai] ? 20120713 17:05:37< mattsc> I believe so. Let me check. 20120713 17:06:09< mattsc> yes 20120713 17:07:14< Crab_> in doing so, you change gamestate, but in a way that can't cause OOS, since AI state is only used for the host running the ai 20120713 17:07:43< mattsc> ok. so is that ok then, or not? 20120713 17:08:07< Crab_> for all practical purposes, you can) 20120713 17:08:13< mattsc> ok 20120713 17:08:33< Crab_> just be aware that if the save game is loaded by other client, the state of the ai might be different 20120713 17:10:11< Crab_> let me think a little... 20120713 17:10:21< mattsc> ok. This is actually done once per AI move (and sets which units should be included in the combat CA using [filter_own]) and set uniquely based on the current situation on the map, so I think it's fine. (it's for a SP scenario) 20120713 17:10:59< Crab_> yes, I think that this is ok to do. 20120713 17:11:04< mattsc> ... and wouldn't be necessary if I could also exclude units from the MtT CA, IIRC :) 20120713 17:11:22< Crab_> it is similar to having a menu item which can be clicked by human any number of times per turn 20120713 17:11:38< mattsc> yes 20120713 17:11:43< Crab_> so, each time AI evaluates your CA, it's more-or-less equivalent to player clicking that item 20120713 17:11:53< Crab_> so, no harm done, but the state of the game can be slightly changed 20120713 17:12:05< mattsc> ok 20120713 17:12:14< Crab_> so, just be aware of 'it can be called many times in a row depending on other CAs and their scores and max scores' 20120713 17:12:44< Crab_> and that [modify_ai] should sync across the network just fine 20120713 17:12:50< Crab_> so, no OOS even on reloads. 20120713 17:12:56< mattsc> yes, I do know that and that's ok. 20120713 17:12:59< mattsc> ok. good. 20120713 17:13:17< Crab_> also, do you use max scores in you CAs? 20120713 17:14:24< mattsc> No. But their scores are generally fixed - a fixed >0 value or 0 20120713 17:14:39< Crab_> yet, if you tell RCA loop what is the max score, it can go faster 20120713 17:15:03< mattsc> Oh, ok. Will look into that then. 20120713 17:15:50< Crab_> it's simple: if you tell "max score for this CA is 150 000", it can skip evaluating it if it has already found some candidate action which already returned 160000. 20120713 17:15:58< mattsc> Oh, cool... 20120713 17:16:03< Crab_> so, it's just an optimization that allows to skip evaluating some slow low-priority CAs if we already found something that is definitely higher priority 20120713 17:16:13< mattsc> I hadn't noticed that. That will actually help quite a bit in some cases. 20120713 17:17:08< mattsc> 2. In MP, I display a 'hello' message at the beginning and set up a 'die' event to say 'bye' at the end of the game (since there's no victory or defeat events in MP) 20120713 17:17:30< mattsc> both of those are wrapped into a condition so that it is executed exactly once (using the 'data' variable) 20120713 17:18:02< mattsc> Well, it's in the 'eval' routine 20120713 17:18:19< mattsc> And I know that that will only be done by the host then and not show up in replays etc. That's fine. 20120713 17:19:08-!- oldtopman [~oldtopman@unaffiliated/oldtopman] has joined #wesnoth-dev 20120713 17:20:28-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 248 seconds] 20120713 17:20:40< mattsc> And the reason why I am asking right now is because of this: http://forums.wesnoth.org/viewtopic.php?f=10&t=37214&p=533252#p533252 20120713 17:22:12< mattsc> Because that could be done in the same way (e.g. changing gold on Turn 1 using a call to [gold]), but I figure that I should ask if that causes problems before I tell somebody to do that. :-P 20120713 17:23:21< Crab_> in general, consider the use of anything that writes to replay to be the same as AI 'clicking right-click menu items' 20120713 17:23:49< Crab_> if it results in a write-to-replay, there'll be no OOS 20120713 17:24:29< Crab_> but it'll happen 'out of the blue', so, it would result in OOS with anything which is not saved to replay 20120713 17:26:29< Crab_> so, if modify_ai/gold/etc are not saved to replays, you can get OOSes 20120713 17:26:40< mattsc> So, if I put a W.message{ { "option", { ... } } into a CA eval that gets executed exactly once on Turn 1, is that written to replay? 20120713 17:27:43< Crab_> the choice is written, yet, other sides won't probably expect that choice to happen 20120713 17:27:56< Crab_> so, I'd expect some OOS 20120713 17:28:03< mattsc> yeah, sounds like it 20120713 17:28:15< mattsc> And that's the same if it is in the exec function also? 20120713 17:28:22< Crab_> same 20120713 17:28:29< mattsc> ok 20120713 17:28:53< Crab_> just for exec you've got more control over the number of times you're executing 20120713 17:29:50< Crab_> in order to make it happen safely across MP, we need to make/find a generic replay-writable thing that would cause same actions on all sides 20120713 17:29:57< mattsc> So then there's no way of doing what the OP wants as long as it involves changing gold etc. Only if it changes aspects etc. (since the replay doesn't care _why_ a move was chosen, only which one) 20120713 17:30:08< Crab_> yes, exactly 20120713 17:30:52< Crab_> as of now, there're indirect ways of doing it 20120713 17:31:37< Crab_> i.e. if you make a code 'each time AI recruits a Blue Foo, add 400 gold to ai', and make Blue Foo not recruitable by standard recruit stage, and make a lua ai code to recruit a Blue Foo, then you can trigger MP-safe events from ai 20120713 17:31:53< Crab_> since the recruit event is written to replay 20120713 17:32:44< mattsc> But that would have to be in the scenario code, not inside the Lua AI? 20120713 17:33:24< Crab_> technically, no. 20120713 17:33:29< Crab_> but, practically, yes 20120713 17:34:06< Crab_> By recruiting a unit, Lua AI can pass unit type information to the replay/game. 20120713 17:34:22< Crab_> this is (in practice), too little to decide things in the game 20120713 17:35:08< Crab_> to make it easy to do such things, we need a way for ai to fire events with WML vars attached to them. 20120713 17:35:38< Crab_> so, instead of recruting a Blue Foo, AI would just send 'ai event' with type="need gold" and amount=400 20120713 17:36:06< mattsc> Just to make sure I understand: the 'add 400 gold on recruit' would have to be somewhere where the replay knows about it, which means it has to be outside the Lua AI somewhere? 20120713 17:36:07< Crab_> or an ai event which would be reinterpreted as WML direct actions code. 20120713 17:36:19< Crab_> yes, outside the lua ai 20120713 17:36:45< mattsc> Ok, so that means it cannot be set up to work by default with any MP map... 20120713 17:37:41< mattsc> (unless there's a way to add this to the MP era, which I don't know anything about) 20120713 17:38:40< mattsc> Anyways, this isn't something I am going to tell the OP of that thread, it's mostly for my own education, so that I don't do anything too bad :) 20120713 17:38:52< Crab_> yes, we can do it via MP era 20120713 17:39:15< Crab_> however, if you need AI to be able to do such things, then let's ping Nephro, maybe he'll be interested (if he'll still have time) 20120713 17:40:00< mattsc> Let's do the other things first. I think they are much higher priority. 20120713 17:41:02-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20120713 17:44:07< Crab_> ok 20120713 17:44:09< mattsc> Ok, so checking out the wiki, I could just put an [event] tag inside [era] right? 20120713 17:44:30-!- horon [~horon@nttkyo331099.tkyo.nt.ngn2.ppp.infoweb.ne.jp] has quit [Quit: Leaving...] 20120713 17:45:55-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has joined #wesnoth-dev 20120713 17:47:14-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20120713 17:47:56< mattsc> D'oh! Yes, that works, and is much easier than what I am currently doing and shows up in the replays. 20120713 17:48:11< mattsc> (embarrassed grin) 20120713 17:49:13< mattsc> Thanks much, Crab_! I learned a lot in the last 15 min. 20120713 17:51:57-!- noy_ [~Noy@s207-81-152-50.bc.hsia.telus.net] has joined #wesnoth-dev 20120713 17:51:57-!- noy_ [~Noy@s207-81-152-50.bc.hsia.telus.net] has quit [Changing host] 20120713 17:51:57-!- noy_ [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20120713 17:53:19-!- noy [~Noy@wesnoth/developer/noy] has quit [Ping timeout: 246 seconds] 20120713 17:53:20-!- noy_ is now known as noy 20120713 17:58:50< Crab_> mattsc: have fun:) 20120713 17:59:05< mattsc> always :) 20120713 18:01:56-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20120713 18:04:20< boucman> bloodycoin: around ? 20120713 18:23:01-!- Crab_ [Crab_@wesnoth/developer/crab] has left #wesnoth-dev [] 20120713 18:24:07-!- lipk [~lipk@host-91-147-212-174.biatv.hu] has joined #wesnoth-dev 20120713 18:24:12-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has quit [Read error: Connection reset by peer] 20120713 18:30:27-!- lipk is now known as lipkab 20120713 18:32:04-!- mordante [~mordante@roadie.xs4all.nl] has joined #wesnoth-dev 20120713 18:32:04-!- mordante [~mordante@roadie.xs4all.nl] has quit [Changing host] 20120713 18:32:04-!- mordante [~mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20120713 18:32:18< mordante> servus 20120713 18:34:11< lipkab> hi mordante 20120713 18:35:08< vultraz> hey mordante 20120713 18:37:09-!- negusnyul__ [~negusnyul@1F2EBB6E.dsl.pool.telekom.hu] has joined #wesnoth-dev 20120713 18:37:10-!- negusnyul_ [~negusnyul@2E6BA662.dsl.pool.telekom.hu] has quit [Write error: Broken pipe] 20120713 18:41:13< mordante> hi lipkab 20120713 18:41:15< mordante> hi vultraz 20120713 18:45:46-!- ToBeFree [~tobefree@unaffiliated/tobefree] has joined #wesnoth-dev 20120713 18:45:47< mordante> lipkab, GSoC kept and keeps me busy at the moment, so haven't had time to have another look at your patch 20120713 18:48:13< lipkab> mordante: ok 20120713 18:52:54-!- Gallaecio [~quassel@84.120.114.134.dyn.user.ono.com] has joined #wesnoth-dev 20120713 18:53:15-!- anonymissimus [~chatzilla@HSI-KBW-078-042-163-105.hsi3.kabel-badenwuerttemberg.de] has joined #wesnoth-dev 20120713 19:29:11< bloodycoin> boucman: around, but busy packing things 20120713 19:29:29< boucman> ok, will/did you commit your stuff before leaving ? 20120713 19:30:04< bloodycoin> yea, I did commit thing with offsets yesterday... it's abit ugly imho... 20120713 19:30:32< bloodycoin> also... I will try to ting of few new effects while travelling 20120713 19:34:24-!- [Relic] [~relic@99-58-54-211.lightspeed.milwwi.sbcglobal.net] has joined #wesnoth-dev 20120713 19:37:06-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20120713 19:41:22< boucman> sounds good, i'll look at the code asap 20120713 19:41:35-!- lipkab [~lipk@host-91-147-212-174.biatv.hu] has quit [Quit: And away we go] 20120713 19:45:01-!- anonymissimus [~chatzilla@HSI-KBW-078-042-163-105.hsi3.kabel-badenwuerttemberg.de] has quit [Quit: ChatZilla 0.9.88.2 [Firefox 12.0/20120423122928]] 20120713 19:45:15< boucman> bloodycoin: this all looks good, but next time, for the sake of my sanity... 20120713 19:45:33< boucman> please have 80 char reformating be a specific commit :P 20120713 19:46:14< boucman> more serioulsy, for any profesional job, it's very important that changes that are "all over the place" always be in their own specific commit 20120713 19:47:25 * mordante agrees with boucman 20120713 19:47:43< mordante> also preferably every commit only does one thing 20120713 19:48:10 * mordante loves git for allowing to untangle one big patch in several smaller cleaner patches 20120713 19:51:36-!- Ayne [~Ayne@cpc2-sgyl34-2-0-cust493.sgyl.cable.virginmedia.com] has quit [Quit: Leaving] 20120713 19:53:03< bloodycoin> ugh.. yea... I don;t even why I decided to merge them... 20120713 19:55:40-!- fendrin [~fabi@88-134-22-51-dynip.superkabel.de] has joined #wesnoth-dev 20120713 19:55:40-!- fendrin [~fabi@88-134-22-51-dynip.superkabel.de] has quit [Changing host] 20120713 19:55:40-!- fendrin [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20120713 19:56:08-!- crab_ [~Crab_@wesnoth/developer/crab] has joined #wesnoth-dev 20120713 19:58:24< crab_> mordante: you were looking for me? 20120713 19:59:48-!- csarmi [csarmi@188-143-28-152.pool.digikabel.hu] has joined #wesnoth-dev 20120713 20:05:03< bloodycoin> boucman: bye, see after about a week :) 20120713 20:05:35< boucman> bye 20120713 20:10:01-!- Elvish_Pillager [~eli@71-10-229-241.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20120713 20:12:41-!- bloodycoin [~bloodycoi@193.170.133.111] has left #wesnoth-dev ["Leaving"] 20120713 20:16:30-!- trademark_ [~trademark@mon69-1-82-67-23-185.fbx.proxad.net] has joined #wesnoth-dev 20120713 20:30:39-!- fendrin_ [~fabi@88-134-22-51-dynip.superkabel.de] has joined #wesnoth-dev 20120713 20:34:19-!- fendrin [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 260 seconds] 20120713 20:38:06-!- csarmi [csarmi@188-143-28-152.pool.digikabel.hu] has quit [] 20120713 20:57:47-!- neXyon [~neXyon@84-119-56-199.dynamic.xdsl-line.inode.at] has quit [Quit: bye] 20120713 21:00:58-!- neXyon [~neXyon@84-119-56-199.dynamic.xdsl-line.inode.at] has joined #wesnoth-dev 20120713 21:11:53-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20120713 21:24:08-!- timotei [~timotei@wesnoth/developer/timotei] has quit [Read error: Connection reset by peer] 20120713 21:25:51-!- Guest49399 [~timotei@188.24.2.25] has joined #wesnoth-dev 20120713 21:26:18-!- Guest49399 is now known as timotei21 20120713 21:26:30-!- timotei21 [~timotei@188.24.2.25] has quit [Client Quit] 20120713 21:26:47-!- timotei21 [~timotei@wesnoth/developer/timotei] has joined #wesnoth-dev 20120713 21:43:42< shadowm> Ivanovic: okay, some people (e.g. mordante) seem to like editing POTFILES.in by hand for some reason. 20120713 21:44:39< shadowm> That was just plain confusing when it started happening. 20120713 21:45:31< mordante> shadowm, it's not really a bother for me 20120713 21:46:01< mordante> also not sure whether it was required in the automake era, but CMake can find files itself 20120713 21:46:21< shadowm> I think it's pointless and confusing. 20120713 21:48:26< Ivanovic> handediting was required in autotools era 20120713 21:48:30< Ivanovic> but should not be required anymore 20120713 21:53:14< mordante> good to know memory still serves me :-) 20120713 21:54:37< shadowm> The thing is we haven't been in the autofoo era for a year or so already. 20120713 21:54:56< shadowm> Okay, since December 27th 2010. 20120713 21:56:08< Ivanovic> shadowm: and you are right that this was not changed but can be changed 20120713 21:56:37< Ivanovic> you can svn rm those files and add an svn ignore on them 20120713 21:58:49< shadowm> That will require me to make a SVN checkout. 20120713 22:33:07-!- trademark_ [~trademark@mon69-1-82-67-23-185.fbx.proxad.net] has quit [Ping timeout: 240 seconds] 20120713 22:59:06-!- timotei21 [~timotei@wesnoth/developer/timotei] has quit [Read error: Connection reset by peer] 20120713 23:05:54< mattsc> crab_: you still there? 20120713 23:06:38< crab_> mattsc: yes 20120713 23:07:33< mattsc> quick question: assume I have a number of different ai's that a player (e.g. MP game) can choose from and I want to determine from in-game which one he chose. How do I do that? 20120713 23:07:43-!- Samual [diotecktec@xonotic/core-team/Samual] has joined #wesnoth-dev 20120713 23:09:45< crab_> the proper solution is not available (i.e., it's the same "how to pass info from ai to game" question) 20120713 23:10:03< mattsc> ok. good enough. 20120713 23:10:12< crab_> yet, there might be inproper hacks 20120713 23:10:17< mattsc> I think I've figure out a hacky way 20120713 23:10:22< mattsc> yes... 20120713 23:10:40< crab_> one that I can think of is to add a ca to recruit a dummy unit 20120713 23:10:40< mattsc> I could go through wesnth.sides and look whether a certain CA is therre, for example 20120713 23:11:00< crab_> no, you can't get a list of CAs from wesnoth. 20120713 23:11:10< crab_> but, you can add 1 special recruit per ai 20120713 23:11:16< crab_> and let ai recruit all of the special recruits 20120713 23:11:23< crab_> then, add a CA to recruit 'chosen' special recruit 20120713 23:11:37< mattsc> Uh, I just looked at wesnoth.sides[1] and it lists all the CA's 20120713 23:11:51< crab_> ah, that's easier. 20120713 23:12:04< crab_> yes, if you can get access to config, just get the ai id from there 20120713 23:12:20< crab_> that would be proper enough, as well 20120713 23:12:27< crab_> I was thinking of a more hacky way :)) 20120713 23:12:39< mattsc> well, it didn't list an ai (because I don't set one and didn't find where to set it). You put that into the [engine]? 20120713 23:12:54< mattsc> ... didn't list and _id_ ... 20120713 23:13:07< mattsc> Grrr: an id 20120713 23:13:41< crab_> directly in [ai] 20120713 23:14:19< mattsc> ah ... Ok, good. But that would again not appear in a replay, right? 20120713 23:14:30< crab_> it might appear there 20120713 23:14:37< crab_> check it. it should. it's part of the team config 20120713 23:15:01< mattsc> Hmm. Ok, I'll try... 20120713 23:15:57< mattsc> Let me tell you what I am trying to do (still along the same lines as before), maybe I am just missing something obvious. 20120713 23:17:06< mattsc> Let's say I have 3 different AI's to choose from in an MP era. At the beginning, I want the AI to say 'hello from the such-and-such AI'. And I want that to appear both during the game and during the replay. 20120713 23:17:28< mattsc> because saying hello is really just a placeholder for more devious things. :D 20120713 23:17:53< mattsc> If I fire it from the AI, it appears in the game, but not in the replay 20120713 23:18:13< mattsc> If I fire it from an event inside [era], it will do the same thing for each AI 20120713 23:18:41< mattsc> So the best I've come up with so far is use [era][event] and have it query for which AI is currently being used 20120713 23:19:41< mattsc> any better ideas? 20120713 23:20:43< crab_> yes, the best solution so far is yours. 20120713 23:21:07< crab_> yet, it's relatively easy to add that 'event from ai' mechanism that we've talked about today 20120713 23:21:20< crab_> it'll allow ai to interact with non-standard game mechanics 20120713 23:21:30< mattsc> ok. I'll test whether that info is available in the replay as well and report back 20120713 23:21:48< mattsc> if it's easy enough, maybe we should add it after all... 20120713 23:22:01< mattsc> sorry, Nephro :) 20120713 23:25:49< mattsc> crab_: yes, that does work indeed. I put displaying wesnoth.sides[1] into a start event, launched an MP game, saved a replay ... It shows up both in game and in the replay 20120713 23:26:00< crab_> great 20120713 23:26:20< mattsc> oh, forgot the id thing though. one moment. :) 20120713 23:26:23< crab_> :)) 20120713 23:26:51< crab_> if you're basing off default ai and just adding CAs via modify_ai, you can use the id of any ca, as well 20120713 23:27:09< mattsc> ok 20120713 23:27:24< mattsc> actually, I do have an id in [ai], but don't see it in the table ... 20120713 23:28:17< mattsc> oh, no, there it is! Sorry, it's a humongous table (and sorted arbitrarily, as Lua does) 20120713 23:28:26< mattsc> Ok, cool, so I think this will work. Thanks! 20120713 23:32:39< crab_> ok :) 20120713 23:32:51-!- negusnyul__ [~negusnyul@1F2EBB6E.dsl.pool.telekom.hu] has quit [Quit: Konversation terminated!] 20120713 23:33:21< crab_> and it'll be really good to add that 'ai sends event' feature, because it'd be useful for custom maps (where it'll be possible to teach AI to use special map elements) 20120713 23:34:12< mattsc> that makessense 20120713 23:34:24< mattsc> (even to me!) 20120713 23:46:15-!- Gambit [~gambit@wesnoth/developer/grickit] has joined #wesnoth-dev 20120713 23:56:37< mattsc> crab_: Wow, this is crazy... The information in wesnoth.sides is quite different depending on whether the game is launched from the command line or from the lobby 20120713 23:56:53< crab_> interesting 20120713 23:57:00< crab_> what's the difference? 20120713 23:57:04< mattsc> MP game, that is. For example, the AI id is not there if launched from the command line 20120713 23:57:22< crab_> but the CAs are in there? 20120713 23:57:28< mattsc> on the other hand, the cpp and fai engine are there, while they are not there if launched from the lobby 20120713 23:57:42< mattsc> CAs: yes 20120713 23:58:00< mattsc> Yet another problem with launching an MP game from the CL 20120713 23:58:20< mattsc> At least it means that I am not crazy for not seeing the ID previously! :D 20120713 23:59:31< crab_> :) then use the ID of the CA --- Log closed Sat Jul 14 00:00:19 2012