--- Log opened Sun Jul 05 00:00:45 2009 20090705 00:00:54< CIA-53> dragonking * r36596 /trunk/src/ai/formula/ai.cpp: New formula function: locations_in_radius 20090705 00:01:03< CIA-53> cornmander * r36563 /website/stats.wesnoth.org/wesstats/ (4 files in 2 dirs): Stubbed out code for killgraphs 20090705 00:01:45< Ivanovic> Soliton: okay, seems to not add any string 20090705 00:02:15< CIA-53> cornmander * r36546 /website/stats.wesnoth.org/wesstats/ (controllers/pieview.py templates/pieview.html): Made form selections persist after page reload. 20090705 00:04:06< CIA-53> crab * r36548 /trunk/src/ai/ (contexts.hpp game_info.hpp manager.cpp manager.hpp): small refactoring of ai::manager #include directives to reduce dependencies, plus cleanup of side_number usage 20090705 00:04:18< CIA-53> euschn * r36549 /trunk/src/ (7 files): added a vector recall_list_ to class team. changed a few includes and forward declarations to be able to reference unit in team 20090705 00:04:40< CIA-53> ivanovic * r36557 /trunk/utils/wesnoth-optipng: fixed script so that the test really works... 20090705 00:05:39< CIA-53> ilor * r36570 /trunk/ (3 files in 2 dirs): more WIP on the lobby dialog, very basic chat support 20090705 00:05:50< CIA-53> mordante * r36580 /trunk/ (8 files in 4 dirs): Move gui2::tbuilder_toggle_button to its own file. 20090705 00:06:27-!- gangil [n=gangil@117.98.21.189] has left #wesnoth-dev [] 20090705 00:06:53< CIA-53> mordante * r36578 /trunk/src/gui/dialogs/lobby_main.cpp: Fix some compiler warnings. 20090705 00:08:27< CIA-53> ilor * r36583 /trunk/src/ (5 files): Add a lobby_data cpp/hpp pair with classes containing info the client has about the server 20090705 00:08:38< CIA-53> ivanovic * r36561 /trunk/ (7 files in 6 dirs): updated Lithuanian translation 20090705 00:08:56-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has joined #wesnoth-dev 20090705 00:11:01< CIA-53> soliton * r36591 /trunk/src/game.cpp: quote the config file name on non-windows platforms, too 20090705 00:11:59< CIA-53> ivanovic * r36597 /branches/1.6/po/ (147 files in 3 dirs): 20090705 00:11:59< CIA-53> pot-update (only references updated, no changed/new strings) 20090705 00:11:59< CIA-53> regenerated doc files (nothing changed...) 20090705 00:12:19< CIA-53> dragonking * r36598 /trunk/src/ai/formula/ai.cpp: New formula function: debug_label 20090705 00:12:30< CIA-53> mordante * r36572 /trunk/ (9 files in 4 dirs): Move the window_builder helper functions to their own file. 20090705 00:13:04< CIA-53> mordante * r36552 /trunk/data/gui/default/window/campaign_dialog.cfg: 20090705 00:13:04< CIA-53> Move the dialog to the wesnoth-lib text domain. 20090705 00:13:04< CIA-53> Stikonas spotted this todo. 20090705 00:13:15< CIA-53> ilor * r36569 /trunk/src/ (13 files in 3 dirs): extract chat_handler into it's own separate header and make chat_handler not depend on game_display. This makes it possible to include chat_handler without including half the game's headers for no reason 20090705 00:16:16< CIA-53> ilor * r36564 /trunk/src/gui/widgets/ (listbox.cpp listbox.hpp): add a nonconst version of get_row_grid to the listbox class 20090705 00:16:27< CIA-53> cornmander * r36554 /website/stats.wesnoth.org/development.ini: 20090705 00:16:50< CIA-53> mordante * r36574 /trunk/ (9 files in 5 dirs): Move gui2::tbuilder_listbox to its own file. 20090705 00:20:52< Ivanovic> time for my bed, have fun reading commit messages, should keep you busy for the night 20090705 00:20:54< Ivanovic> ;) 20090705 00:20:56< Ivanovic> n8 20090705 00:21:05< Dragonking> Hmm... whole label system could be tweaked a bit.. apparently we can't remove labels that were set by side 2 as global ones, we have to delete all global ones... 20090705 00:21:09< Dragonking> night Ivanovic 20090705 00:21:19< CIA-53> ilor * r36586 /trunk/ (4 files in 3 dirs): more new lobby WIP 20090705 00:23:20< CIA-53> mordante * r36573 /trunk/ (8 files in 4 dirs): Move gui2::tbuilder_horizontal_scrollbar to its own file. 20090705 00:24:05< CIA-53> soliton * r36590 /branches/1.6/src/game.cpp: quote the config file name on non-windows platforms, too 20090705 00:24:59< CIA-53> ivanovic * r36560 /trunk/ (78 files in 18 dirs): 20090705 00:24:59< CIA-53> ran utils/wesnoth-optipng 20090705 00:24:59< CIA-53> Overall statistics (only for files with a smaller recompressed size): 20090705 00:24:59< CIA-53> Original size: 3115 KiB on 78 files 20090705 00:24:59< CIA-53> Optimized size: 2998 KiB 20090705 00:24:59< CIA-53> Total saving: 117 KiB = 3% decrease 20090705 00:25:09< CIA-53> ivanovic * r36550 /trunk/data/campaigns/Heir_To_The_Throne/units/Princess.cfg: unification of strings (removing a useless duplicate) 20090705 00:25:36< CIA-53> mordante * r36555 /trunk/src/team.cpp: Fix a compiler warning. 20090705 00:26:30< CIA-53> ilor * r36584 /trunk/src/ (attack_prediction_display.cpp unit_types.cpp): kill some warnings 20090705 00:27:04< CIA-53> ilor * r36588 /trunk/projectfiles/VC9/wesnoth.vcproj: vc9 project up 20090705 00:27:31< CIA-53> mordante * r36575 /trunk/ (8 files in 4 dirs): Move gui2::tbuilder_slider to its own file. 20090705 00:27:41< CIA-53> cornmander * r36545 /website/stats.wesnoth.org/ (3 files in 2 dirs): 20090705 00:27:41< CIA-53> Fixed lineview to use a simple evaluator when deciding whether or not to 20090705 00:27:41< CIA-53> use the full table or not. It will now almost always use the full table. 20090705 00:28:49-!- Doppp|EeePC [n=aasdasd@c-67-171-96-240.hsd1.pa.comcast.net] has joined #wesnoth-dev 20090705 00:31:05< CIA-53> mordante * r36582 /trunk/ (9 files in 5 dirs): Move gui2::tbuilder_multi_page to its own file. 20090705 00:31:19< CIA-53> esr * r36577 /trunk/ (5 files in 3 dirs): 20090705 00:31:19< CIA-53> Address bug #13795 (Teleportation runes put units in solid rock) with patch 20090705 00:31:19< CIA-53> #1183 (Prevent teleporting to impassable terrain). Tested at r36576. 20090705 00:31:52< CIA-53> mordante * r36556 /trunk/src/gui/dialogs/lobby_main.cpp: Fix some compiler warnings. 20090705 00:32:34< CIA-53> mordante * r36566 /trunk/src/gui/dialogs/lobby_main.cpp: Fix some compiler warnings. 20090705 00:32:49< CIA-53> ivanovic * r36558 /trunk/ (changelog players_changelog po/wesnoth-utbs/pl.po): updated Polish translation 20090705 00:33:30< CIA-53> mordante * r36551 /trunk/src/ai/contexts.cpp: Fix a compiler warning. 20090705 00:33:43< CIA-53> mordante * r36581 /trunk/ (8 files in 4 dirs): Move gui2::tbuilder_vertical_scrollbar to its own file. 20090705 00:34:10< CIA-53> mordante * r36576 /trunk/ (10 files in 5 dirs): Move gui2::tbuilder_scroll_label to its own file. 20090705 00:34:21< CIA-53> mordante * r36587 /trunk/src/gui/auxiliary/ (window_builder.cpp window_builder_private.hpp): Polishing after the window_builder splitting. 20090705 00:44:40-!- Elvish_Pillage2 [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090705 00:46:59-!- loonycyborg [n=sergey@79.139.136.167] has joined #wesnoth-dev 20090705 00:50:33-!- EliDupree [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 60 (Operation timed out)] 20090705 00:52:40< fendrin> esr: Can you ask Cathryn for her latest LoW scenario 14 prestart savegame, please? 20090705 01:21:07-!- boucman [n=rosen@wesnoth/developer/boucman] has quit ["Leaving."] 20090705 01:35:54-!- MJ999 [n=msflower@80.154.28.81] has quit [Read error: 104 (Connection reset by peer)] 20090705 01:37:19-!- AFKMJ [n=msflower@80.154.28.81] has joined #wesnoth-dev 20090705 01:45:35-!- Elvish_Pillager [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090705 01:49:14-!- Elvish_Pillage2 [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 60 (Operation timed out)] 20090705 01:53:23-!- silene [n=plouf@wesnoth/developer/silene] has joined #wesnoth-dev 20090705 01:53:46< silene> hi 20090705 01:58:30< Espreon> Hello silene. 20090705 01:58:52-!- Chusslove [n=Chusslov@brsg-d9befe53.pool.mediaWays.net] has quit [Read error: 110 (Connection timed out)] 20090705 02:01:41-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit [Remote closed the connection] 20090705 02:03:52-!- Chusslove [n=Chusslov@brsg-d9befd6e.pool.mediaWays.net] has joined #wesnoth-dev 20090705 02:04:51< CIA-53> dragonking * r36599 /trunk/src/ai/formula/ai.cpp: Another fix for a fix #36594 20090705 02:05:26-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090705 02:13:52-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [] 20090705 02:24:38< CIA-53> dragonking * r36600 /trunk/data/ai/formula/poisoner_eval.fai: Improvements to poison RCA eval 20090705 02:46:43-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit ["Zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"] 20090705 02:47:35-!- loonybot [n=loonybot@wesnoth/bot/loonybot] has quit [Remote closed the connection] 20090705 02:49:53-!- ilor_ [n=user@wesnoth/developer/ilor] has quit [] 20090705 03:36:26-!- silene [n=plouf@wesnoth/developer/silene] has quit ["Leaving."] 20090705 03:56:58-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit ["Tengo que ir... Yeahzorz..."] 20090705 04:09:31-!- AFKMJ [n=msflower@80.154.28.81] has quit [Read error: 104 (Connection reset by peer)] 20090705 04:10:43-!- MJ999 [n=msflower@80.154.28.81] has joined #wesnoth-dev 20090705 04:39:32-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090705 04:47:34-!- Ivanovic_ [n=ivanovic@dtmd-4db2acab.pool.einsundeins.de] has joined #wesnoth-dev 20090705 04:52:42-!- MJ999 [n=msflower@80.154.28.81] has quit [Read error: 54 (Connection reset by peer)] 20090705 04:54:20-!- MJ999 [n=msflower@80.154.28.81] has joined #wesnoth-dev 20090705 04:55:43-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit ["Tengo que ir... Yeahzorz..."] 20090705 04:57:10-!- MJ999 [n=msflower@80.154.28.81] has quit [Read error: 54 (Connection reset by peer)] 20090705 04:58:44-!- MJ999 [n=msflower@80.154.28.81] has joined #wesnoth-dev 20090705 05:03:35-!- Ivanovic [n=ivanovic@wesnoth/developer/ivanovic] has quit [Read error: 110 (Connection timed out)] 20090705 05:05:32-!- Ivanovic_ is now known as Ivanovic 20090705 05:07:26-!- Elvish_Pillager [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 110 (Connection timed out)] 20090705 05:09:41-!- BenUrban [n=benurban@68.55.19.224] has joined #wesnoth-dev 20090705 05:14:44-!- cib_ [n=cib@p5DC426CD.dip.t-dialin.net] has joined #wesnoth-dev 20090705 05:17:30-!- cib0 [n=cib@p5DC42513.dip.t-dialin.net] has quit [Read error: 60 (Operation timed out)] 20090705 06:11:47-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Remote closed the connection] 20090705 06:18:48< esr> fendrin: Where do you want her to drop it? 20090705 06:19:26-!- happygrue [n=George@wesnoth/developer/wintermute] has quit [Read error: 104 (Connection reset by peer)] 20090705 06:25:04< fendrin> esr: fabianmueller5@gmx.de 20090705 06:40:16-!- mordante [n=mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20090705 06:40:31< mordante> morning 20090705 06:47:10< MJ999> Good morning mordante :) 20090705 06:47:20< mordante> hi MJ999 20090705 06:48:56< MJ999> Found a bug in the overlays this morning. :P 20090705 06:49:39< mordante> what kind of bug? 20090705 06:49:51< MJ999> A lingering one. 20090705 06:50:41< MJ999> When teleporting a unit without animation with an overlay, the overlay won't follow. 20090705 06:52:31< mordante> with overlay you mean something like the halo of the white mage? with which unit did you run into this problem? 20090705 06:52:49< MJ999> Exactly like the halo of the white mage. 20090705 06:53:07< MJ999> Similar to the one in the save file on the teleporting rune bug. :P 20090705 06:54:59-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has joined #wesnoth-dev 20090705 06:55:33< MJ999> I'd make a patch myself, but I'm unfamiliar with the rendering scheme for wesnoth. 20090705 06:55:40< mordante> in which version of Wesnoth does it happen? 20090705 06:56:03< MJ999> trunk, I can retest with latest svn if you give me 5 mins. 20090705 06:57:07< mordante> I don't expect it magically fixed, but would be nice if you can retest. Can you also test 1.6.3? 20090705 06:57:24< MJ999> Only have 1.7.0 and trunk =/ 20090705 06:57:24< mordante> (or the head of the 1.6 branch) 20090705 06:57:43< mordante> ok no problem 20090705 07:04:03-!- cib_ [n=cib@p5DC426CD.dip.t-dialin.net] has quit [Remote closed the connection] 20090705 07:05:29-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit [] 20090705 07:13:07< MJ999> mordante, http://imagebin.org/54539 20090705 07:13:18< MJ999> Tested on both trunk and 1.7.0 20090705 07:14:47< mordante> guess somebody optimized a bit too aggressive, can you post a bug report with a savegame? 20090705 07:15:12< MJ999> I'll see if I can't find it myself. 20090705 07:15:41< mordante> btw is patch #1183 yours? 20090705 07:16:15< MJ999> Yup. 20090705 07:18:00< mordante> one request, can you keep lines a bit within the 80 chars limit, that makes reading patches easier 20090705 07:19:34< MJ999> Ahh, didn't know it was 80, I just went off what was on the wiki. 20090705 07:22:24< mordante> there's no hard limit, but I prefer no overly long lines that start to wrap 20090705 07:22:49< MJ999> Rightyho. 20090705 07:23:37< esr> fendrin: Cargty has only a replay from LoWL::14 and it dates from May. 20090705 07:23:49< esr> s/ Cargty/Cathy. 20090705 07:23:58< mordante> Dragonking, around? 20090705 07:24:45< esr> mordante: FYI, youu now own 50% of all known bugs. 20090705 07:25:16< mordante> I know and it helps that every bug that has something to do with the old gui is also assigned to me :-/ 20090705 07:29:54< mordante> esr, https://gna.org/bugs/index.php?13602 did you test with Chinese? 20090705 07:32:05< esr> No. Should I have? I just marrked it Need Info as a way of trying to get a reproduction recipe. 20090705 07:33:53< mordante> well I'm quite sure it's a language issue http://eshensh.net/e-think/uploads/img4a1a05af222a8.jpg 20090705 07:38:36< mordante> YogiHH, euschn, I think bugs https://gna.org/bugs/index.php?13764 and https://gna.org/bugs/index.php?13577 are better suited for either of you, can either of you look at them? 20090705 07:40:24< Soliton> i've received a backtrace for the latter, btw. will post it in the report later. 20090705 07:41:43< mordante> ah nice 20090705 07:50:47< MJ999> <3 one line fixes, http://wesnoth.pastebin.com/d405718d 20090705 07:53:03< esr> MJ999: Aha. Yes, I see why thatr one is good, for Mages of Light and so forth. Want me to commit it? 20090705 07:53:32< MJ999> Sure. 20090705 07:56:16< mordante> doesn't that remove the halo of the white mage completely? 20090705 07:57:43< esr> Yes. MJ999, have you tested that it is properly redrawn when the unit materializes? 20090705 07:58:18< MJ999> Not sure about same view move, but it works on the THoT level, gimme 2 sec. 20090705 07:58:49< MJ999> I got that from Unit::set_hidden 20090705 07:59:19< MJ999> And it calls clear_haloes when setting a unit to hidden. 20090705 08:01:46< MJ999> Works on same screen too. 20090705 08:02:13< MJ999> Halo correctly follows when moving from 20,1 to 20,4 so it works. :P 20090705 08:02:52< mordante> yes, but I wonder whether it's the right way 20090705 08:03:17< mordante> it works, but that's because redraw readds the halo 20090705 08:03:25< mordante> but it feels hacky 20090705 08:03:38< MJ999> Agree. 20090705 08:03:39< mordante> and I'm quite sure it worked before without that hack 20090705 08:04:05< MJ999> Check out the save file on the bug. 20090705 08:05:23< MJ999> https://gna.org/bugs/?13795 20090705 08:06:40< esr> mordante: He's right - if you view the save, the MoL teleports but the halo is left in place. Somehow I missed that last time. 20090705 08:07:21< mordante> esr, I'm not denying the bug, only that I think the fix as an ugly hack 20090705 08:07:30< mordante> is* 20090705 08:08:35< mordante> and I know that it used to work, with teleporting, so I think somebody overoptimized some code, which broke it 20090705 08:09:34< cjhopman> Sapient, Sirp, everyone else, too: I plan to commit changes to config interface: remove operator[] and change to get_attribute() and set_attribute()... touches 100+ files. I currently have it in local commits modifying 3-10 files each, and plan to commit it that way. 20090705 08:10:31< mordante> cjhopman, it would be nice to do it in one big commit and warn people about it upfront 20090705 08:10:42< mordante> it's bound to break some WIP patches people have 20090705 08:11:06< mordante> why do you need to remove operator[]? 20090705 08:11:30< esr> mordante: I'll commit with a note saying that, then. 20090705 08:12:07< cjhopman> Well, returning a t_string& requires that the internal data structures guarantee reference stability 20090705 08:12:31< mordante> esr, please wait with committing 20090705 08:12:37< esr> OK.... 20090705 08:13:53< cjhopman> we could actually keep the const version of operator[] (the one just for accessing the value)... but for changing the value using set_attribute(key, value) forces the least restrictions on the internal config data structure 20090705 08:13:55< mordante> MJ999, esr can you test with r36589, I can't reproduce the problem in that revision 20090705 08:14:39< esr> mordante: Is that the trunk tip? 20090705 08:15:18< MJ999> Nah, couple back. 20090705 08:15:30< mordante> esr, no some random revision, also not 100% sure it's the version I compiled with 20090705 08:15:51< MJ999> No affected pages since then though. =/ variant/game/forumula stuff 20090705 08:16:14< mordante> can't be I have a build from the 2th of july 20090705 08:16:39< esr> MJ999: I'llleave this to you then. I need to go sleep. 20090705 08:16:50< MJ999> esr, nn 20090705 08:17:07< cjhopman> another option would be to return a proxy object like in https://gna.org/patch/?1139. get_attribute and set_attribute are much simpler than that (but take a very lot more work to switch to) 20090705 08:18:01< mordante> maybe keep the const version of operator[], it's nicer to type cfg["foo"] as cfg.get_attribute("foo") 20090705 08:18:33< mordante> I also don't like the design of the std::map that operator[]() can add items 20090705 08:19:17< mordante> I rather would have seen operator[]() and operator[]() const and throw a range error if the key isn't found 20090705 08:19:43< mordante> but that's also tricky 20090705 08:20:36-!- Aethaeryn [n=Michael@wesnoth/umc-dev/developer/aethaeryn] has quit ["quit quit"] 20090705 08:20:39< cjhopman> mordante: I too prefer typing and reading cfg["foo"]. the two problems that I had with that was that it would not act the same as the standard containers, and I feel that get_attribute and set_attribute would be more consistent than operator[] and set_attribute 20090705 08:21:22< cjhopman> but I don't have real strong fealings about it 20090705 08:23:43< cjhopman> mordante: I plan to make the change probably tomorrow night (that is in about 24 hours). do you think I should send a mail to the dev-list mentioning it? ...do you think I should give a bit more time? 20090705 08:23:45< mordante> IMO operator[]() for std::map also acts weird ;-) 20090705 08:25:12< mordante> I rather prefer to discuss (on the ml) what to do with the interface before changing it 20090705 08:26:43< mordante> and also to have a few days before committing it 20090705 08:26:57< cjhopman> yeah, sounds good 20090705 08:26:58< mordante> it's annoying to have some WIP broken due to an interface change 20090705 08:27:30< mordante> especially since it most likely results in a lot of conflicts 20090705 08:28:09< cjhopman> very likely 20090705 08:29:34< mordante> also since we do a lot of foo = lexical_cast(cfg["x"]) and lexical_cast_default(cfg["x"]) it might be nice to get a good interface for that as well 20090705 08:30:07< mordante> (which move the cfg class a bit more into the variant area) 20090705 08:30:24< mordante> moves* 20090705 08:30:36< cjhopman> yeah, I was thinking the same thing as I went through the code 20090705 08:30:53< mordante> :-) 20090705 08:35:16< Soliton> simple_wml has to_int() and to_bool(). 20090705 08:37:36-!- boucman [n=rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20090705 08:38:13-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090705 08:39:06< cjhopman> I prefer the templated one... I'm thinking cfg.cast_attribute(key) and cfg.cast_attribute_default(key, t) 20090705 08:40:21< cjhopman> for just assignment like that I think we could have the type determined implicitly, but I think I prefer it being explicitly specified by the caller 20090705 08:42:32< boucman> morning all 20090705 08:44:18< MJ999> Good morning boucman. :) 20090705 08:46:21< cjhopman> that is we could do something like http://codepad.org/S39s9JQW and then just have cast_attribute() (or even get_attribute()) basically determine it's return type implicitly, but I don't actually like that 20090705 08:48:41< MJ999> mordante, I found a better fix, gimme 2 sec 20090705 08:51:11< MJ999> mordante, http://wesnoth.pastebin.com/d7eef5be5 20090705 08:51:46< MJ999> That's the source of the problem. :P 20090705 09:05:02< mordante> cjhopman, I also prefer templates 20090705 09:06:23< Ivanovic> moin 20090705 09:06:27< mordante> hi Ivanovic 20090705 09:07:07< mordante> cjhopman, I prefer to use the lexical_cast, since we already do that and the "partial" conversion might introduce new bugs later on 20090705 09:08:40< mordante> MJ999, much better now only change it to a one liner again :-P 20090705 09:08:50< Ivanovic> cjhopman: as a first thing it might be good to commit your stuff as a branch, so that it is in the svn and nothing will get lost even if you end in a hell of a merge conflict when trying to commit 20090705 09:09:31< Ivanovic> (the matter is that the mid term evals start tomorrow and your code should be available till then so that it is considered in the eval sapient does) 20090705 09:11:03< mordante> MJ999, although I can't reproduce the problem, I agree that the invalidated should be used there 20090705 09:11:19-!- Ivanovic changed the topic of #wesnoth-dev to: 1.6.4 planned for today | 58 bugs, 237 feature requests, 12 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090705 09:27:03-!- AnMaster [n=AnMaster@unaffiliated/anmaster] has joined #wesnoth-dev 20090705 09:29:54-!- maxy [n=maxy@80-219-1-128.dclient.hispeed.ch] has joined #wesnoth-dev 20090705 09:34:29< mordante> MJ999, you want to create a one-liner version or should I? 20090705 09:37:02< MJ999> Sorry, was afk for a bit, gimme a sec. 20090705 09:40:08< mordante> no problem 20090705 09:41:02< MJ999> http://wesnoth.pastebin.com/d1a366990 20090705 09:41:34< mordante> thanks, that patch makes me happy 20090705 09:45:31< mordante> esr, MJ999 I'll commit this patch instead of the first one 20090705 09:58:19< CIA-53> mordante * r36601 /trunk/ (changelog src/halo.cpp): 20090705 09:58:19< CIA-53> Fixes teleporting leaving a unit halo. 20090705 09:58:19< CIA-53> The probkem has been spotted by MJ999, who also provided this patch. I haven't 20090705 09:58:19< CIA-53> been able to reproduce the problem, but the invalidation should have been there 20090705 09:58:19< CIA-53> before. 20090705 09:59:16< boucman> mordante: do you know anything about team labels ? 20090705 09:59:30< mordante> boucman, not really, why? 20090705 09:59:37< boucman> nvm, then 20090705 09:59:57< boucman> i've been assigned bug 13831, but I don't know a thing about team label, so I'll have to dive in the code 20090705 10:00:17< boucman> I thought you might have an idea of how it worked and would have been faster than me 20090705 10:01:36< mordante> no haven't looked at that code yet 20090705 10:04:39-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090705 10:09:43< Dragonking> mordante: Yes? 20090705 10:09:55< CIA-53> mordante * r36602 /trunk/ (2 files in 2 dirs): 20090705 10:09:55< CIA-53> Campaign toggle button -> toggle pannel. 20090705 10:09:55< CIA-53> This change allows to change to the 'to be added' stacked widget later on, also 20090705 10:09:55< CIA-53> fixes the issue that the campaign text ended up in the border. 20090705 10:10:46< mordante> Dragonking, regarding r36592 what do the ./ .+ etc operator do? 20090705 10:11:13< boucman> Dragonking: don't forget your new stuff in formulas... 20090705 10:11:15< Dragonking> mordante: Have you ever used matlab? 20090705 10:11:39< boucman> in particular, you renamed an operator IIRC, this needs to be pointed out because it breaks backward compatibility... 20090705 10:11:41< mordante> Dragonking, long ago, but can't remember anything about it 20090705 10:11:59< Dragonking> boucman: Renamed?? 20090705 10:12:31-!- Baufo [n=quassel@62-47-149-122.adsl.highway.telekom.at] has joined #wesnoth-dev 20090705 10:12:32< Dragonking> mordante: [ 1, 2 , 3 ] .+ [ 1 2 3 ] = [ 2, 4, 6 ] 20090705 10:12:49< Dragonking> mordante: [ 1, 2 , 3 ] .* [ 1 2 3 ] = [ 1, 4, 9 ] etc 20090705 10:13:00< mordante> ah ok 20090705 10:13:01-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090705 10:13:24< boucman> Dragonking: error on differnt list size ? 20090705 10:13:26< mordante> and what does [1, 2] + [1, 2] do? 20090705 10:14:08< Dragonking> mordante: [ 1, 2, 1, 2] 20090705 10:14:16< Dragonking> boucman: I don't follow 20090705 10:14:47< boucman> [1 2] .+ [3 4 5 ] = ?? 20090705 10:14:56< Dragonking> Error 20090705 10:15:00< boucman> ok 20090705 10:15:22< Dragonking> boucman: What about compatibility? 20090705 10:15:40< boucman> you did rename a function, didn't you ? 20090705 10:16:12< boucman> Dragonking: ok, I must go, we'll discuss that later, sry 20090705 10:16:16-!- boucman [n=rosen@wesnoth/developer/boucman] has quit ["Leaving."] 20090705 10:16:17< Dragonking> boucman: Not really.. or I don't recall 20090705 10:16:24< mordante> ok, nice feature 20090705 10:16:31< Dragonking> mordante: :) 20090705 10:17:14-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090705 10:17:21-!- noy [n=Noy@wesnoth/developer/noy] has quit [Remote closed the connection] 20090705 10:17:23< mordante> Dragonking, another question; regarding r36595, why magic numbers instead of constants or enum values? 20090705 10:17:43-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 20090705 10:17:53< Dragonking> mordante: ok, better idea 20090705 10:17:59< Dragonking> mordante: Will do 20090705 10:18:26< Dragonking> mordante: Actually I thought about the same yesterday... 20090705 10:18:43< Dragonking> And answered: because it's 3am - go to bed ;p 20090705 10:20:27< mordante> ok, thanks 20090705 10:20:34< Dragonking> mordante: Now, any clue who designed current way how labels work/are stored? 20090705 10:20:55< mordante> coding late is a good excuse ;-) 20090705 10:21:31< mordante> no, but boucman also is looking at that code regarding bug 13831 20090705 10:21:45< mordante> so he might know more about that code soon 20090705 10:22:03< Dragonking> Would be nice to probably redesign it a bit... 20090705 10:23:10< mordante> well it probably will at some point, when I start to convert that part of the code to gui2, but that won't be soon 20090705 10:23:34< Dragonking> I think know where lies code responsible for 12831 20090705 10:23:40< Dragonking> 13831' 20090705 10:24:51< Dragonking> We just probbly end up with 2 labels - team and global end up being placed on a same tile and one is drawn above another 20090705 10:25:47< mordante> ah ok 20090705 10:25:48< Dragonking> Since we put labels in a map > and string corresponds to side name if label is "team only" or to the "" if label is global 20090705 10:26:23< Dragonking> It is a guess, since I only had a brief look at the code there 20090705 10:27:20< mordante> ok, boucman is looking into that bug (since esr assigned it to him), but if you know that area better, I think he won't object to some help 20090705 10:27:44< Dragonking> But having global labels be marked as "" is a bit of pain imho, would be better to have it all stored "by side" and to have bool is_team_only inside label 20090705 10:27:54< Dragonking> So we can remove easily labels of one side 20090705 10:28:16< Dragonking> (I could use that in a formula and add one function that relies on such functionality) 20090705 10:28:22< Dragonking> mordante: ok, noted 20090705 10:28:49-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has joined #wesnoth-dev 20090705 10:31:51-!- fabi [n=fabi@g228083008.adsl.alicedsl.de] has joined #wesnoth-dev 20090705 10:32:37-!- loonybot [n=loonybot@79.139.136.167] has joined #wesnoth-dev 20090705 10:34:20< mordante> grzywacz, hi, how do I know whether somebody managed to win a campaign? 20090705 10:39:16< mordante> ilor, regarding r36516 the macros, I'm not sure whether several [][] on one line are allowed 20090705 10:39:45< mordante> also to avoid namespace clashes I added a prefix to the GUI macros 20090705 10:40:22< ilor> mordante I'm fairly sure the parser doesn't care about whitespace or lack thereof 20090705 10:40:37< mordante> and if you add some documentation I think they can be general useful and thus moved to a more common location 20090705 10:41:21< ilor> mordante: I'd prefer engine support for a horizontal or vertical list of widgets, to be honest 20090705 10:41:27< mordante> at least the horizontal and vertical ones 20090705 10:43:11< mordante> I kind of prefer to keep the engine simple and use macro power (which is kind of how most of Wesnoth works) 20090705 10:43:26< mordante> but if you have suggestions how that list should look, please tell me 20090705 10:43:53< mordante> (I am aware the WML gets verbose and deeply nested fast ;-) ) 20090705 10:44:02< ilor> mordante: oh, regarding gui2 cfg files, I noticed that somehow parser errors don't stop the engine, it fails later with some nonsence error that's really caused by a missing closing tag or whatever 20090705 10:44:20-!- fendrin [n=fabi@wesnoth/developer/fendrin] has quit [Read error: 110 (Connection timed out)] 20090705 10:44:35< ilor> mordante: I'll pastebin a use case in a sec 20090705 10:45:02< mordante> yes those files are parsed later, since they're fully serialized and don't need to use memory 20090705 10:45:46< mordante> and I also hoped to find a student who wanted to work on WML validation this summer, but alas 20090705 10:46:12< ilor> hmm, I don't recall such a proposition 20090705 10:46:23< ilor> anyway, http://codepad.org/bethuSOi 20090705 10:47:09< ilor> mordante: my point was that even though there is a parse error the engine tries to work with whatever it's got, IMO it should display an error message when parsing fails and not wait for an assert later 20090705 10:47:24< mordante> ilor, http://www.wesnoth.org/wiki/SummerOfCodeIdeas#WML_validation_schemes 20090705 10:48:28< mordante> hmm I thought the parser error also caused an error 20090705 10:49:18-!- loonycyborg [n=sergey@79.139.136.167] has joined #wesnoth-dev 20090705 10:50:04< mordante> and you want to give all other parameters the same for a simple grid, eg alignment and border flags 20090705 10:50:10< mordante> etc 20090705 10:50:50< ilor> mordante: pretty much, the idea would be to avoid the one-element-in-column restriction 20090705 10:51:55< mordante> how does this proposal help against that? 20090705 10:52:24< mordante> will you be around longer? 20090705 10:52:54-!- ilor_ [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090705 10:53:18< ilor_> mordante: sorry, my wondrous ATI card is fluking out, fortunately a suspend/resume kicked it back to life 20090705 10:53:44< ilor_> mordante: I will be around for quite some time today 20090705 10:54:15< mordante> ok good, my lunch is almost ready, I'd like to discuss the grids further after lunch 20090705 10:54:22< ilor_> mordante: it helps because you don't need to do columns/rows, just a bunch of widgets 20090705 10:54:52< ilor_> imagine if an [event] required an extra [event_item] around every action inside. wouldn't be nice 20090705 10:55:53< mordante> kindof, but the one widget per cell is rather hard coded, of course we can use your idea to let the user "think" there are several widgets in a cell 20090705 10:57:14< ilor_> mordante: I understand that internally you need to have one widget per cell for layout purposes 20090705 10:57:53< ilor_> but having to deal with all these details distracts from the actual layout, imo 20090705 10:58:36< mordante> I agree with that and I've also added work-arounds for it, but I'm off for lunch now 20090705 10:59:32< grzywacz> mordante, the campaign selection dialog should get a map with "completed" key 20090705 10:59:44< grzywacz> mordante, I mean, it does get it now. 20090705 11:00:28< mordante> grzywacz, yeah I just found it, will test with it later 20090705 11:05:03< grzywacz> mordante, superb. I hope to get some time for wesnoth later on today, so I'll give it a try as well. 20090705 11:08:28-!- zookeeper [n=l@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20090705 11:09:40< CIA-53> dragonking * r36603 /trunk/src/ (4 files in 2 dirs): Made formula_callable use ENUM type 20090705 11:09:45< Dragonking> mordante: ^ 20090705 11:10:47-!- ilor [n=user@wesnoth/developer/ilor] has quit [Read error: 110 (Connection timed out)] 20090705 11:24:25-!- tsi [n=chatzill@cpc2-whit1-0-0-cust444.cdif.cable.ntl.com] has joined #wesnoth-dev 20090705 11:24:38-!- tsi is now known as thespaceinvader 20090705 11:27:22-!- Baufo [n=quassel@wesnoth/developer/baufo] has quit [Remote closed the connection] 20090705 11:34:56-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit ["KVIrc 3.4.2 Shiny http://www.kvirc.net/"] 20090705 11:35:55-!- loonycyborg [n=sergey@79.139.136.167] has joined #wesnoth-dev 20090705 11:41:11< CIA-53> dragonking * r36604 /trunk/src/ai/formula/ai.cpp: Made recruitment= formula work in a loop like move= formula 20090705 11:44:16< mordante> Dragonking, thanks, only one remark, could you readd the comment about the values 20090705 11:45:22< Dragonking> mordante: ok 20090705 11:45:31< mordante> thanks 20090705 11:46:09< mordante> ilor_, this is one of the work-arounds I added ../data/gui/default/window/title_screen.cfg 20090705 11:46:34< mordante> and I think if we add the simple_grid, all columns should have the same flag values 20090705 11:47:04< ilor_> mordante: agree on the simple_grid, note that the name is a placeholder and I'd gladly have something else ;) 20090705 11:47:09< mordante> if somebody doesn't want that, s/he should fall back to a normal grid and play with macro power 20090705 11:47:30< mordante> the name is good enough as working title 20090705 11:47:42< ilor_> mordante: also, I'm getting some asserts with my use of the listbox. Could you say what does it actually require? 20090705 11:47:59< grzywacz> ilor_, temporary solutions always last the longest :P 20090705 11:48:09< grzywacz> s/the// 20090705 11:48:10< mordante> I'm not sure whether horzontal and vertical grid are better names, that depends on how much the code is alike 20090705 11:48:20< ilor_> does it need to have the same number of columns in the header as in the definition, what happens when it differs etc 20090705 11:48:46< mordante> the header and the body need the same number of columns 20090705 11:49:04< mordante> the header is meant for sorting (not yet implemented_ 20090705 11:49:06< mordante> )* 20090705 11:49:39 * mordante is about to commit his temporary victory icon code :-P 20090705 11:50:09< ilor_> and can the body have some embedded grids inside? 20090705 11:51:09< mordante> yes, it only tests the "top level' columns 20090705 11:54:13< CIA-53> mordante * r36605 /trunk/ (4 files in 3 dirs): 20090705 11:54:13< CIA-53> Add a completion icon to the campaign. 20090705 11:54:13< CIA-53> This proof of concept version shows whether or not the user finished a 20090705 11:54:13< CIA-53> campaign. The UI needs more polishing, using the soon-to-be-committed stacked 20090705 11:54:13< CIA-53> widet. 20090705 11:54:17< mordante> grzywacz, ^ 20090705 11:56:41< ilor_> mordante: meh, I have the same number of columns in the header and body, and add_row still fails with an assert in window.cpp:636 20090705 11:57:11< ilor_> is it required that everything passed to add_row must find its way to a widget? 20090705 11:58:57< CIA-53> dragonking * r36606 /trunk/src/formula_callable.hpp: mordante wished for comment to reman here :) 20090705 11:59:03-!- Noyga [n=noyga@wesnoth/developer/noyga] has joined #wesnoth-dev 20090705 11:59:14< grzywacz> mordante, works. I'd love to see it stacked. ;) 20090705 12:00:54< mordante> ilor_, it's required that all columns in the header and body have the same ids to link them together see data/gui/default/window/mp_server_list.cfg for an example 20090705 12:01:16< mordante> thanks Dragonking 20090705 12:01:26< mordante> grzywacz, :-) stacking as we speak 20090705 12:01:26< ilor_> mordante: this really should be documented somewhere 20090705 12:02:07< mordante> ilor_, I know, documentation is a bit behind (also want to look at a better way as using ids, another reason why I didn't document it yet) 20090705 12:02:14< ilor_> wait, but column don't have ids, widgets do 20090705 12:02:28< mordante> yes, sorry meant them 20090705 12:03:40< ilor_> so every widget in the body needs a correspondin widget in the ehader with the same id? 20090705 12:03:58< Dragonking> mordante: No problem, really :) 20090705 12:03:59< mordante> yes, ugly ain't it? 20090705 12:04:11< ilor_> OUCH 20090705 12:04:25< ilor_> so I pretty much have to add 23423 empty labels now :/ 20090705 12:04:33< mordante> I needed something for 1.6 and rather fast :-( 20090705 12:04:53< ilor_> because what I'll have will be a very simple header if any, and many, many widgets in the body 20090705 12:06:55< mordante> finding a better solution, is (as usual) on my (overly long) todo list 20090705 12:07:40< CIA-53> ivanovic * r36607 /trunk/ (4 files in 3 dirs): updated Estonian translation 20090705 12:08:16< CIA-53> ivanovic * r36608 /trunk/RELEASE_NOTES: empty release notes 20090705 12:08:57-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit ["KVIrc 3.4.2 Shiny http://www.kvirc.net/"] 20090705 12:09:14-!- wesbot changed the topic of #wesnoth-dev to: 1.6.4 planned for today | 59 bugs, 237 feature requests, 12 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090705 12:09:17 * grzywacz bbl 20090705 12:09:56-!- loonycyborg [n=sergey@79.139.136.167] has joined #wesnoth-dev 20090705 12:11:21< ilor_> mordante: and about passing data to add_row when there is no widget for a given id? 20090705 12:13:19< mordante> then it should be ignored 20090705 12:15:05< CIA-53> ilor * r36609 /trunk/ (5 files in 3 dirs): more newlobby WIP 20090705 12:15:30-!- Elvish_Pillager [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090705 12:18:30-!- silene [n=plouf@wesnoth/developer/silene] has joined #wesnoth-dev 20090705 12:18:43< silene> hi 20090705 12:21:08< ilor_> mordante: I've added empty labels in the header with all the ids I have in the body and I still get teh assert 20090705 12:22:27< CIA-53> ilor * r36610 /trunk/data/gui/default/window/lobby_main.cfg: newlobby: add empty labels to listbox header with ids from bidy, does not help though 20090705 12:22:28< mordante> hi silene 20090705 12:24:09< CIA-53> ivanovic * r36611 /trunk/po/ (wesnoth/de.po wesnoth-ei/de.po): updated German translation (fixed part of bug #13761 and included updated rest of patch #1180 ) 20090705 12:24:27< CIA-53> ivanovic * r36612 /branches/1.6/po/ (wesnoth/de.po wesnoth-ei/de.po): updated German translation (fixed part of bug #13761 and included updated rest of patch #1180 ) 20090705 12:24:33< ilor_> mordante: could you take a look at he lobby_main.cfg file? 20090705 12:25:01< mordante> ilor_, already looking ;-) 20090705 12:26:02< Soliton> Dragonking: about the labels.. you need to consider having a team lable on a hex someone else put a global label. it should not be possible for another team to overwrite team labels accidentally. 20090705 12:26:36< ilor_> brb 10mins 20090705 12:27:06< silene> cjhopman: i don't agree with the removal of config::operator[]; using get_attribute/set_attribute makes the code harder to read, and a code hard to read is a code hard to get right 20090705 12:28:03< Dragonking> Soliton: Sure, that is something we need take into account too. :) 20090705 12:28:41 * Dragonking goes afk 20090705 12:28:44< Soliton> Dragonking: well, that is why team labels are in a different map. 20090705 12:29:23< Dragonking> Soliton: I know 20090705 12:29:24< mordante> ilor do you know which listbox causes the problem? 20090705 12:29:57< ilor_> mordante: it's the game listbox, error happens on an add_row() call and results in an asser in window.cpp:636 20090705 12:30:20< ilor_> I'd give you a backtrace and mre info but MSVC decided it's full rebuild time 20090705 12:30:46< mordante> no real need for a backtrace 20090705 12:33:51< mordante> it doesn't complain about the wrong number of columns? 20090705 12:48:39< ilor_> hmm, I guess I was looking at the columns inside the toggle panel when I should've been looking at the outer ones directly in list_definition 20090705 12:48:46< ilor_> but still it doesn;t complain about this 20090705 12:53:23< Soliton> Dragonking: how does having labels by side help? 20090705 13:03:20< Soliton> MJ999: you made the teleporting only to passable hexes patch, yes? 20090705 13:10:29< ilor_> mordante: what can be directly in a listbox column? 20090705 13:13:02< mordante> ilor_, any widget 20090705 13:13:21< mordante> Soliton, yes MJ999 did 20090705 13:13:39< ilor_> mordante: what aboutgenerator.cpp:404 20090705 13:13:53< ilor_> I got hit by that when I ad a label there 20090705 13:14:48< Soliton> MJ999: what happens when there is no free passable hex to teleport to? 20090705 13:15:30< mordante> oh yeah wait a listbox only a toggle_button and toggle_panel 20090705 13:15:57< ilor_> or a grid with any of those, it seems 20090705 13:16:26< mordante> yup, on that toggle panel every widget is allowed again 20090705 13:16:44< mordante> this restriction is there to indicate the selected row status 20090705 13:16:47< ilor_> and on that toggle panel buttons don't work ;/ 20090705 13:17:12< mordante> which I already feared and is high on my todo list to fix 20090705 13:18:38< ilor_> can you remind me how I put (static) images onto a dialog? 20090705 13:19:18< mordante> static as background or as normal image? 20090705 13:19:31< mordante> thanks for fixing that translation bug Ivanovic 20090705 13:19:33< ilor_> normal image that just sits somewhere 20090705 13:19:53< mordante> just add a [image]label=filename[/image] 20090705 13:20:11< ilor_> ah okay 20090705 13:20:37< ilor_> I'll try working around some issues to have something working this evening 20090705 13:21:05< mordante> great :-) 20090705 13:21:16< mordante> I'm off now, will be back later this afternoon 20090705 13:22:11< ilor_> hm, one problem though, need to figure out how to reliably call the other dialogs (create, wait etc) 20090705 13:25:03-!- mordante [n=mordante@wesnoth/developer/mordante] has quit ["Leaving"] 20090705 13:54:39-!- Noyga [n=noyga@wesnoth/developer/noyga] has quit ["Quitte"] 20090705 14:26:36< Dragonking> Soliton: I did not say that having labels by side help. 20090705 14:27:16< Dragonking> Soliton: I said I would like to have simple way of removing all labels wrote by a certain player (side) 20090705 14:29:11< Dragonking> Soliton: I *think* that #13831 is releated to duplicating label over a hex - after changing label type to/from "team only" we only insert new one 20090705 14:29:16< Dragonking> I may take a look at it now 20090705 14:29:50-!- Chusslove [n=Chusslov@brsg-d9befd6e.pool.mediaWays.net] has quit [Remote closed the connection] 20090705 14:33:12< Dragonking> Yup, it does look like it is the case. 20090705 14:39:42-!- mordante [n=mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20090705 14:39:57< mordante> servus 20090705 14:40:18< mordante> ilor_, what's the problem with calling other dialogs? 20090705 14:40:37< ilor_> mordante: not a problem yet but need to figure out how to do it :) 20090705 14:40:48< ilor_> will test one idea soon and see if it works 20090705 14:40:52< mordante> ok 20090705 14:41:37< ilor_> I'm somewhat worried about that network polling callback and need to make sure it won't cause losing network data when swicthing to an old-gui dialog 20090705 14:50:53< ilor_> off for an hour or two, need to go outside for a bit ;) 20090705 14:51:27-!- silene [n=plouf@wesnoth/developer/silene] has quit ["Leaving."] 20090705 15:09:05-!- Crab_ [i=crab@wesnoth/developer/crab] has joined #wesnoth-dev 20090705 15:09:46< Dragonking> Crab_: Around? :) 20090705 15:09:53< Crab_> yes 20090705 15:09:55< Dragonking> hi :) 20090705 15:10:10< Dragonking> Crab_: You can take a look at ./wesnoth -t poison -d 20090705 15:10:38< Crab_> Dragonking: ok :) 20090705 15:11:53< Soliton> Dragonking: yes, that's how it works. the question is whether we want to delete team labels when a global label is placed on the same hex. 20090705 15:12:36< Dragonking> Soliton: I would say we want if the team label belonged to the team that put on global one 20090705 15:13:36< Dragonking> Crab_: I have some idea regarding CA... you may notice the problem with ghoul next to the skeleton not having executed CA under circumstances: first cuttlefish hits leader - after leader is poisoned, this ghould can only reach one enemy - arch mage, but other ghould attacks it 20090705 15:13:54< CIA-53> thespaceinvader * r36613 /trunk/data/core/images/portraits/humans/ (footpad+female.png transparent/footpad+female.png): Flip the female footpad. 20090705 15:15:11< Dragonking> Crab_: It is genral case whern unit A can reach enemy 1 and 2, and unit B enemy 2, and due to same scoring of CA unit A attack enemy 2.. am I clear now? :) 20090705 15:15:12< Crab_> Dragonking: I'll take a look, after wesnoth compiles :) 20090705 15:15:26< Crab_> yes, I understood that 20090705 15:15:33< Dragonking> Crab_: I have idea around that 20090705 15:16:24< Soliton> Dragonking: yeah, i agree. what about having team only deselected in the dialog when i choose "set label" on a hex with a team label? 20090705 15:16:28< Dragonking> Crab_: Add another "priorities" for CA with same scores, based on how many units (which passed eval with score > 0 )our unit can reach 20090705 15:18:04< Dragonking> Soliton: well, that would involve checking for an existing label, but not sure it is really needed.. what is reasoning behind it? 20090705 15:18:37< Dragonking> Soliton: Especially if I would like to quickly correct what is written on a existing team label? 20090705 15:19:11< Soliton> Dragonking: we already check that. the reason is that i find it odd that team only can be selected even though you choose "set label" and not "set team label". 20090705 15:19:22< Soliton> Dragonking: then you choose "set team label". 20090705 15:19:29< Dragonking> Soliton: Ahh I understand 20090705 15:19:39< Dragonking> Soliton: I forgot we have both options 20090705 15:20:03< Crab_> Dragonking: it will be interesting to think more about it, but, before that, we need to solve 'CA with same scores' part :) 20090705 15:20:22< Crab_> we need 'guidelines' on assigning a score to ca 20090705 15:21:27< Dragonking> Crab_: CA with same scores as "we have CA 'poison' that scores 100, and CA 'backstab' that scores 100 too" ? 20090705 15:22:02< Crab_> Dragonking: yes. but why we assigned 100 to poison ? why 100 to backstab ? 20090705 15:22:19< Dragonking> Yes, that's different thing. 20090705 15:22:40< Dragonking> Crab_: But I'm talking about solving problem of same scores witin single CA 20090705 15:23:54< Dragonking> And I would like to know wheter this idea seems to be reasnable to you 20090705 15:24:43< Crab_> Dragonking: your idea is good. but, it needs more thought. 20090705 15:25:41< Dragonking> So... may you think about it with my now? :) 20090705 15:25:51< Dragonking> s/my/me/ 20090705 15:26:50< Crab_> Dragonking: imagine the situation:there are two good candidate actions which touch unit A: attack enemy (score=100) and hide in village (score=80), and there's only one good candidate action for unit B - attack the same enemy (score=90) 20090705 15:27:23< Crab_> it is similar to the situation you're described 20090705 15:28:04< Dragonking> Yes, I see. 20090705 15:28:19< Crab_> if we add a 'priority' to units, then... 20090705 15:31:02< Dragonking> Yes? :) 20090705 15:31:14< Crab_> Dragonking: thinking.. 20090705 15:31:22< Dragonking> ok :) 20090705 15:32:34-!- elias [n=allefant@allegro/developer/allefant] has joined #wesnoth-dev 20090705 15:34:38< Crab_> if we disregard fog_of_war/hidden units, then, what are the possible outcomes of an action ? 20090705 15:35:06< Crab_> if an action is an 'move+attack from A to B, attacking C' 20090705 15:35:30< Crab_> then, either 1) unit C is changed (killed or its hp/poisoned/slowed statuses change) 20090705 15:35:45< Dragonking> yes 20090705 15:35:56< Crab_> this can alter the scores of existing CAs 20090705 15:36:14< Crab_> also, the status of unit at B changes 20090705 15:36:19< Crab_> and A becomes free 20090705 15:36:31< Crab_> this will also change the scores of some candidate moves 20090705 15:36:36< Dragonking> True 20090705 15:39:13< Crab_> so, when considering the attack (in your example) of cuttie-fist to leader, if a leader is poisoned, ghoul has nothing good to do. so, executing a candidate action affected score of another candidate action in a bad way. 20090705 15:39:42< Dragonking> Not really that case, but close 20090705 15:39:59< Crab_> (correct me if I'm wrong) 20090705 15:40:23< Dragonking> all ok, except leader - it was arch mage - but yes, generally that's the case 20090705 15:40:33< Dragonking> Sorry for confusing you :) 20090705 15:40:37< Crab_> all ok ) 20090705 15:41:00< Crab_> so, you want to attach another label to CA (or to unit), saying something like " I has N another alternative good actions" ? 20090705 15:41:02< Dragonking> In case of leader, ig cuttlefish missed, ghoul attacks 20090705 15:41:09< Dragonking> It's all perfectly fine there 20090705 15:41:25< Dragonking> Crab_: Yes 20090705 15:41:48< Dragonking> Crab_: It may work for both CA and moves "iniside" CA 20090705 15:42:06< Dragonking> Poison thing is problem from "inside" CA 20090705 15:42:54< Crab_> note that execution of candidate action can remove multiple good moves from other units. 20090705 15:43:27< Dragonking> Still execution means that this CA was scored better than other... but I get what you mean 20090705 15:43:47< Crab_> and note that execution of candidate action can 'open' good moves which were not available before 20090705 15:44:13< Dragonking> True 20090705 15:44:32-!- melinath [n=melinath@stud247062.studentenheim.uni-tuebingen.de] has joined #wesnoth-dev 20090705 15:44:33< Dragonking> So we need some sord of "2nd rating" for already calculated CA 20090705 15:44:45< Crab_> yes 20090705 15:45:10< Dragonking> Which do not only take into account *one* best move with best score form CA, but set of all moves with same best score 20090705 15:45:41< Crab_> maybe not "same best score", but "simular best score" 20090705 15:46:02< Dragonking> Yes 20090705 15:46:23-!- cib0 [n=cib@p4FD0C940.dip.t-dialin.net] has joined #wesnoth-dev 20090705 15:46:26< Crab_> one idea is "for each of 'same best score'\'simular best score' candidate actions, make a second *local* rca loop on each of possible outcomes of said ca" 20090705 15:47:07< Crab_> by 'local' I mean 'calculate only those candidate actions which touch nearby units' 20090705 15:47:30< Crab_> for example: 20090705 15:48:12< Dragonking> So we look at move that changes sometihng around locA, look up locA in dstsrc_ and re-calculate CA for each affected unit? 20090705 15:48:52< Dragonking> Sort-of "planning ahead" locally 20090705 15:48:55< Crab_> yes 20090705 15:49:36< Dragonking> So in case of attack we look up 3 locations, move_from, move_to, target_loc 20090705 15:49:38< Crab_> this will also help with backstab 20090705 15:50:09< Crab_> yes, in case of move+attack we have 3 locations where there can be changes 20090705 15:50:22< Dragonking> Ok, so I follow so far :) 20090705 15:50:44< Crab_> or, more strictly speaking, we have 1 location move_from which changes 100% (it becomes free) 20090705 15:51:05< CIA-53> thespaceinvader * r36614 /trunk/ (6 files in 5 dirs): Add and wire Kitty's Footpad portrait, update changelogs, portrait credits. 20090705 15:51:37< Crab_> and we have 2 locations move_to and target_loc, which have N possible states (%-chances for each of the states of units on them we already calculate in attack_analysis) 20090705 15:52:00< Dragonking> yes 20090705 15:52:45< Crab_> let's imagine that this is done. how would it solve that ghoul/cuttiefish problem ? 20090705 15:53:40< Crab_> CA 1 outcome 1 : [score=100] cuttiefish attacks archmage, misses, [score=100] attack still available for ghoul 20090705 15:53:55< Dragonking> Yes 20090705 15:54:13< Crab_> CA 1 outcome 2 : [score=100] cuttiefish attacks archmage, hits, only [score=10] move available for ghoul 20090705 15:54:39< Crab_> CA2 outcome 1 : [score=100] ghoul attacks archmage, misses, [score=100] attack available for cuttiefish 20090705 15:54:57< Crab_> CA2 outcome 2 : [score=100] ghoul attacks archmage, hits, [score=60] attack available for cuttiefish (if cuttiefish has something else good to do) 20090705 15:55:07< Dragonking> Exactly 20090705 15:55:15< Crab_> then, weighted sums for CAs can be calculated 20090705 15:56:36< Crab_> so, we're basically replacing a position evaluator (which we don't have) with 'available candidate action'-based position evaluator. 20090705 15:57:37< Dragonking> Yes, another thing is to how "deep" to go with it and what are % of things to happen 20090705 15:57:43< Crab_> but, the problem still remains with 3+ units :) 20090705 15:58:07< Crab_> % are not a problem, we calculate them already 20090705 15:58:32< Crab_> note how Sirp wanted to solve this ( http://wesnoth.org/forum/viewtopic.php?f=10&t=24511&st=0&sk=t&sd=a ) 20090705 15:59:01< Crab_> (read from The Wesnoth AI Framework will use .. ) 20090705 15:59:33< Dragonking> Crab_: Yes, I know it well :) 20090705 15:59:53< Dragonking> Just wanted to make sure we apply this % here too 20090705 16:00:02< Crab_> basically, "locality" concept in a form of squads, plus evaluation of possible action sequences 20090705 16:00:29< Dragonking> Yes 20090705 16:02:03< Dragonking> Crab_: Regarding recruitment, I won't make it for now, got stuck with something else, but some first version will be out in about a week 20090705 16:02:15< Crab_> ok 20090705 16:02:42< Dragonking> There will be big room for improvement for sure, don't expect it to work like a charm since the very beginning ;) 20090705 16:03:11< Crab_> Dragonking: there are areas I think there will be definite improvement from the start :) 20090705 16:03:15< Dragonking> Also, thing is that best set of units for humant player is very ofthen not good for AI due to way how AI manages its units 20090705 16:03:46< Dragonking> So I have to take that into account too, and I'm not sure I'll get a good grasp of how to do it from a start 20090705 16:04:02< Crab_> Dragonking: see http://wesnoth.terraninfo.net/?dim1=faction_me&dim2=faction_enemy&dim3=my_side 20090705 16:04:22< Crab_> pay special attention to "Loyalists vs Undead" and "Undead vs Loyalists" 20090705 16:04:58< Dragonking> Let me gues... first recruitment and counter-recruitment issue? 20090705 16:05:03< Crab_> yes 20090705 16:05:47< Dragonking> I see generally undead ruled over loyalists 20090705 16:05:52< Crab_> yes 20090705 16:06:08< Dragonking> ok, will do that my first working testcase :) 20090705 16:06:58< Crab_> side1: your ai loyalists vs side2: ai_default undead 20090705 16:07:04< Dragonking> ohh 20090705 16:07:10< Dragonking> Notheners vs Rebels 20090705 16:07:13< Dragonking> Intersting 20090705 16:07:34< Dragonking> And not really affected much by a side 20090705 16:07:39< Crab_> yes 20090705 16:07:55< Dragonking> Apparently due to AI ignoring good terrain for fragile elves and notheners having more units thanks to lower cost 20090705 16:08:04< Crab_> Northerners and Undead are the strongest in ai-vs-ai context 20090705 16:08:41< Dragonking> Elves seems to be weakest.. 20090705 16:09:05< Soliton> most abilities you have to cleverly use vs raw power. 20090705 16:09:20< Crab_> yes. and the need for patience :) 20090705 16:09:21< Dragonking> True 20090705 16:10:26< Dragonking> Crab_: Hmm... what map? 20090705 16:10:28< Dragonking> Den? 20090705 16:10:59< Soliton> ok, i rewrote the label stuff to remove old labels when we switch from/to team labels. 20090705 16:11:02< Crab_> Den_of_Onis / Fallenstar_Lake / The_Freelands / Weldyn_Channel 20090705 16:11:10< Crab_> Dragonking: you can group by map, too 20090705 16:11:11< Soliton> now it behaves sane IMO. 20090705 16:11:18< Dragonking> Soliton: Great 20090705 16:11:38< Crab_> Dragonking: pick 'map' in dropdown #4 20090705 16:12:34< Dragonking> Crab_: I expect good recruitment to minimalize difference between recruting/counter recruting, but still there will be need to adapt it to the AI "skills" to make it better overall 20090705 16:15:12< Dragonking> Crab_: Tho, it would be best to adept AI to good recruting and utulize it... ;p 20090705 16:17:45< Crab_> Dragonking: returning to candidate actions, note the following situation: 20090705 16:18:27< Crab_> imagine that there's enemy 1-hp 3rd level unit standing on 30% defense tile 20090705 16:18:51< Crab_> so, many friendly units in range will have a 'very good' candidate action to finish it off. 20090705 16:19:07< Dragonking> yes... 20090705 16:19:27< Crab_> but, executing this candidate action will result in many 'very good' candidate action possibilities being removed :) 20090705 16:21:04-!- crimson_penguin [n=ben@64.201.60.211] has joined #wesnoth-dev 20090705 16:21:42< Dragonking> hmm 20090705 16:22:25< Dragonking> Good point 20090705 16:22:47< Crab_> that is the illustration that 'having multiple good candidate actions' != 'having a good position overall'. 20090705 16:23:14< Crab_> so, availability of candidate actions is not-so-good for position evaluation. 20090705 16:24:30< Crab_> so, if we try to keep it simpler, and only ask the question: 'which good actions of this unit this action removes ?' 20090705 16:24:43< Crab_> for example, for ghoul & cuttiefish: 20090705 16:25:12< Crab_> cuttiefish: score=100 action to attack archmage, and this removes score=60 action to do something else. 20090705 16:25:28< Crab_> ghoul: score=100 action attack archmage, and this removes score=10 action to do something else 20090705 16:26:14< Crab_> since if we move cuttiefish and attack archmage, we lose it's ability to do anything else this turn 20090705 16:26:32< Crab_> what do you think ? 20090705 16:26:56< Dragonking> Sorry, I got distracted 20090705 16:29:01< Crab_> where 'something else' = something true else, not 'attack the same archmage from another direction' :) 20090705 16:29:07< Crab_> s/true/truly 20090705 16:31:47< Dragonking> So you think to look only for the very one unit? 20090705 16:32:03< Crab_> yes. consider "this usage of unit" vs "alternate usages of this unit" 20090705 16:32:15< Dragonking> Like 'since' cuttlefish have good another possibility, let's attack with ghoul" ? 20090705 16:32:44< Dragonking> Crab_: That leaves one case still open... assuming: unit A can attack unit 2 and unit 3 - to attack unit 3 it has to move, score is the same, unit B can attack unit 2 only if unit A moves 20090705 16:33:06< CIA-53> soliton * r36615 /branches/1.6/ (changelog players_changelog src/menu_events.cpp): 20090705 16:33:06< CIA-53> implemented saner set label behaviour 20090705 16:33:06< CIA-53> check the team label box according to what command was chosen 20090705 16:33:06< CIA-53> remove the old label when switching from/to team labels 20090705 16:33:06< CIA-53> fixes bug #13831: Bug with team labels 20090705 16:33:09< Crab_> yes 20090705 16:33:19< Dragonking> Looking only for unit A, it seems that no matter what we do we get same result 20090705 16:33:59< Crab_> so, we can't do it this simply... 20090705 16:34:11< Crab_> unfortunately. 20090705 16:34:29< Dragonking> yes 20090705 16:36:23< Dragonking> Crab_: But hm... is that really a problem with this 'removing of a high-scoring' CA? 20090705 16:36:37< CIA-53> soliton * r36616 /trunk/ (changelog players_changelog src/menu_events.cpp): 20090705 16:36:37< CIA-53> implemented saner set label behaviour 20090705 16:36:37< CIA-53> check the team label box according to what command was chosen 20090705 16:36:37< CIA-53> remove the old label when switching from/to team labels 20090705 16:36:37< CIA-53> fixes bug #13831: Bug with team labels 20090705 16:37:04< Crab_> Dragonking: it was just an argument against using the availability of candidate actions for position evaluation 20090705 16:37:15< Dragonking> Crab_: Ah ok 20090705 16:37:30< Crab_> Dragonking: there's another way, suggested a few days ago by boucman: 20090705 16:37:36< Dragonking> yes? 20090705 16:38:25< Crab_> nowadays, candidate actions assign a score only to themselves. 20090705 16:38:55< Crab_> what if we change, to allow candidate actions to assign a score to any sequence-of-actions ? 20090705 16:39:53< Crab_> for example: step 1: a list of good attacks is generated, with the help of poisoning candidate action which proposes poisoning attacks. step 2: poisoning candidate action assigns a better score to those attacks which poison unpoisoned units. 20090705 16:40:28< Crab_> so, rca will be two-step: 20090705 16:41:01< Crab_> step 1: find good sequences of moves/attacks, and make a vector of that sequences (simular to vector) 20090705 16:41:23< Crab_> (step 1 is executed with the help of candidate actions which propose moves/attacks) 20090705 16:41:30< Dragonking> hmm 20090705 16:41:57< Crab_> step 2: ask each candidate action to assign a score to each of the move/attack sequences, in some of the categories. 20090705 16:42:41< Crab_> then, avg will be taken, and first action from best sequence of actions will be executed. 20090705 16:42:53< Dragonking> We do eval for each element of sequence yes? 20090705 16:43:06< Crab_> for sequence as a whole. 20090705 16:43:16< Crab_> for example - attack_analysis 20090705 16:43:25< Crab_> it is a sequence of attacks 20090705 16:43:28< Dragonking> um... so we have sequence of 3 attacks 20090705 16:43:39< Dragonking> And 3 of them can poison good unit 20090705 16:43:46< Dragonking> And then another sequence of 3 attacks 20090705 16:43:50< Dragonking> And there only one can poison 20090705 16:43:56< Dragonking> How to eval that? 20090705 16:44:05< Crab_> by using %-of-poisoning 20090705 16:44:10< Crab_> for example 20090705 16:44:59< Crab_> note how the current attack evaluation is done 20090705 16:45:01< Dragonking> ok, so we have eval that is supposed to work for whole sequence, but in the end it will still look at single 'move' element inside sequence? 20090705 16:45:42< Crab_> Dragonking: please open ai_default::do_combat 20090705 16:46:06< Dragonking> Done 20090705 16:46:16< Crab_> 'std::vector analysis = analyze_targets(srcdst, dstsrc, enemy_srcdst, enemy_dstsrc);' - here we've got a vector of attack sequences 20090705 16:47:08< Crab_> then it rates some of the attack_analysis elements 20090705 16:47:27< Crab_> then it executes 'best' one 20090705 16:47:43< Crab_> note that only the 1st attack from sequence is executed 20090705 16:48:00< Crab_> since after that 1st attack, we gain additional information (about the actual combat result) 20090705 16:48:25< Crab_> so, the proposal is to do an rca loop in the simular way 20090705 16:48:51< Dragonking> ok 20090705 16:48:52< Crab_> 'std::vector analysis = analyze_actions' - here we've got a vector of good action sequences 20090705 16:49:51< Crab_> then, ask 'candidate actions' to analyze various aspects of that action sequences - assign a score to them. 20090705 16:50:05< Crab_> the score will be assigned in one or several of 'categories' 20090705 16:50:47< Dragonking> yes... 20090705 16:51:02< Crab_> categories such as 'attack', 'defence', etc 20090705 16:51:22-!- fabi [n=fabi@wesnoth/developer/fendrin] has quit [Remote closed the connection] 20090705 16:51:30< Crab_> in each of the categories, avg will be taken (avg only from those candidate actions which assigned a score in that category) 20090705 16:51:40< Crab_> and, best action will be picked 20090705 16:52:43< Dragonking> ok 20090705 16:54:34-!- melinath [n=melinath@stud247062.studentenheim.uni-tuebingen.de] has quit [] 20090705 16:55:15-!- ilor_ [n=user@wesnoth/developer/ilor] has quit [Read error: 60 (Operation timed out)] 20090705 16:56:04< Crab_> but, note, that combat-related things are not a main ai problem today 20090705 16:56:34< Crab_> ai is quite good at 'killing things this turn' 20090705 16:57:00-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090705 16:57:43< Dragonking> Crab_: Yes... important would be to make it move units to safe places and do not expose special units easily 20090705 16:59:38< Crab_> you wanted to talk about on_fail, too ? 20090705 17:01:00< Dragonking> Crab_: Yes 20090705 17:05:00< Dragonking> Crab_: Well, my idea for on_fail was for situation when formula failed, but not due to coding error 20090705 17:05:07< Dragonking> s/coding/C++/ 20090705 17:05:08-!- kitty_ [n=kitty@wesnoth/artist/kitty] has joined #wesnoth-dev 20090705 17:05:17< kitty_> hi 20090705 17:05:22< Dragonking> hi kitty_ 20090705 17:06:00< Crab_> Dragonking: yes, I remember that 20090705 17:06:12< Dragonking> Crab_: Like we have this recruit() that may 'fail' where we have insufficent gold/no room in castle, move may fail when we want to move to impossible place etc 20090705 17:07:01< Dragonking> Then instead of generating in C++ just 'false' result of move, we would execute on_fail formula that is supposed to somehome clean up/fix what happened 20090705 17:07:29< Crab_> Dragonking: how do you clean-up from 0-gold situation :) ? 20090705 17:08:03< Crab_> Dragonking: note that the good 'ca' will need to check the possibility of the action it tries to do beforehand. during evaluation, not during execution 20090705 17:08:17< Dragonking> Crab_: I know, it is not for CA 20090705 17:08:44< Dragonking> Crab_: More like move= recruitment=, unit formuka= loop_formula= 20090705 17:09:23< Crab_> ok. note that recruitment can be considered a ca :) 20090705 17:09:38< Crab_> since it can only be done in specific circumstances 20090705 17:09:57< Dragonking> Crab_: But formula is of loop-type too 20090705 17:10:08< Dragonking> In case of recruitment= formula, not recruitment CA 20090705 17:10:37< Crab_> ok 20090705 17:10:46< Dragonking> Crab_: Lately we move away from loop-based formulas towards CA AI 20090705 17:10:58< Dragonking> But my on_fail is aimed at loop formulas 20090705 17:11:21< Dragonking> When we may want to have recruit till the 'full house' and then do some othr stuff 20090705 17:11:45< Dragonking> If we encounter a problem while recruting, currently no 'other stuff' will be executed. 20090705 17:12:14< Crab_> is there some example syntax for on_fail on your SoC page ? 20090705 17:12:21< Dragonking> C++ engine treats 'no action' same as 'incorrect action order' 20090705 17:13:18< Dragonking> Crab_: http://www.wesnoth.org/wiki/FormulaAISoC2009Dragonking#.27on_fail.27_formulas 20090705 17:13:28< Crab_> thanks 20090705 17:17:01< Crab_> can you point me to C++ line of code ? 20090705 17:17:36< Dragonking> Crab_: Code for what? 20090705 17:17:37< Dragonking> :) 20090705 17:17:51< Dragonking> loop of formula? 20090705 17:17:52< Crab_> where 'C++ engine treats 'no action' same as 'incorrect action order'' 20090705 17:18:34< Dragonking> formula/ai.cpp:2169 20090705 17:18:34< Crab_> src/ai/formula/ai.cpp:1853 ? 20090705 17:19:17< Dragonking> Crab_: This is loop condition, the made_move is returned 20090705 17:19:29< Dragonking> If we had "good move" it is set to true 20090705 17:19:46< Dragonking> If formula returned "no move" - we get false 20090705 17:20:00< Crab_> ok. note that for RCA, the semantic of 'made_move' should be a bit different. 20090705 17:20:04< Dragonking> If formula returned move, but it failed - we also get false - that is my concern 20090705 17:20:24< Dragonking> Crab_: I did not plan on fail for made_move initially 20090705 17:20:25< Crab_> candidate action should return true if 'gamestate is changed' (for example, it should return true on interrupted move) 20090705 17:20:31< Dragonking> tfu 20090705 17:20:33< Dragonking> wrong 20090705 17:20:42< Dragonking> I did not plan on_fail for RCA initiall 20090705 17:21:13< Crab_> ok, so where do you want to insert on_fail handler ? 20090705 17:21:17< Crab_> in :2169 ? 20090705 17:21:59< Dragonking> No, call it for example after 2175 20090705 17:22:21< Dragonking> 2169 is example of how it handles proper moves 20090705 17:22:30< Dragonking> So formula loop again 20090705 17:23:04< Crab_> so, on_fail is something like "if formula asked the game to do something stupid, launch on_fail formula passing that stupid action as parameter" ? 20090705 17:23:13< Dragonking> Yes 20090705 17:23:34< Dragonking> So we preserve loop, but can handle the problem somehow 20090705 17:23:48< Dragonking> By falling to dafault AI or whatever else 20090705 17:23:52< Dragonking> Set some variable etc 20090705 17:24:24< Dragonking> Currently after such "stupid move" formula AI just ends turn 20090705 17:25:12< Crab_> why do you want on_fail to be external to the formula ? 20090705 17:25:42< Crab_> move='move(a,b)' on_fail="" 20090705 17:25:43< Crab_> instead of move(a,b,on_fail_function) 20090705 17:26:19< Crab_> or move="recruit('Skeleton Archer')" on_fail="fallback()" instead of move="recruit("Skeleton Archer",fallback()) 20090705 17:26:55< esr> I just get a nasty error. "Mandatory WML child missing yet untested for. Please report." 20090705 17:27:03< esr> Game died. 20090705 17:27:23< Crab_> Dragonking: or instead of using wrapper simular to evaluate(recruit('Skeleton Archer'),fallback()) 20090705 17:28:06< Crab_> Dragonking: with on_fail external, it is sometimes hard to find out what part of formula failed (for example, if formula has several parts with moves) 20090705 17:28:21< Dragonking> Crab_: ok, got your point 20090705 17:28:36< Dragonking> Crab_: I thought it would be better to separate error handling from formula itself 20090705 17:29:17< Dragonking> And I'm far more keen to recruit(order,on_fail) than evaluate approach 20090705 17:29:58< Dragonking> But hm 20090705 17:30:19< Dragonking> That's actually no t much different 20090705 17:30:40< Crab_> recruit('Skeleton Archer',onfail1())+recruit('Skeleton',onfail2()) 20090705 17:30:43< Dragonking> We would get just one new action that attaches on_fail handler on the fly 20090705 17:30:56< ilor> esr: where did you get this error? 20090705 17:30:58< CIA-53> mordante * r36617 /trunk/src/gui/widgets/control.cpp: Also allow the id to be set in a definition list. 20090705 17:31:14< Dragonking> Crab_: ok 20090705 17:31:17< Dragonking> I like this 20090705 17:31:30< Dragonking> Crab_: We don't have to worry too much about errors reporting etx 20090705 17:31:37< Dragonking> We just fix what heppened 20090705 17:31:40< Crab_> Dragonking: yes, external on_fail can be useful to set a default on_fail handler 20090705 17:32:01< esr> ilor: Testing THoT::High Pass. At end of scenario after the Save Replay prompt. What can we do to diagnose? 20090705 17:32:05< Crab_> but using different on_fail's in different on_fail formulas can be more useful 20090705 17:32:37< Dragonking> Crab_: So safe_execute( order, on_fail ) maybe ? 20090705 17:32:57< ilor> esr: not sure sadly, I remember getting this error once during my fiddling with gui, but I can't remember what it was 20090705 17:33:02< Crab_> this is ok, too 20090705 17:33:08< Dragonking> It first attaches on_fail as tmp handler, then tries to exexute action 20090705 17:33:08< ilor> s/gui/gui2/ 20090705 17:33:17< CIA-53> mordante * r36618 /trunk/src/gui/widgets/generator.cpp: Allow the setting of unnamed data items. 20090705 17:33:51< Dragonking> In case of fail, it executes formula.. another thing is about if and how much data needs to be passed to on_fail after failure 20090705 17:34:35< Crab_> Dragonking: a smart pointer to a subclass of ai::action_result 20090705 17:34:35< Dragonking> I would say: the same data that was passed to faulty action order 20090705 17:35:32< Crab_> you'll probably need to make them implement your special interface which contains get_inputs and get_value 20090705 17:35:42< Crab_> look them up in src/ai/actions.cpp 20090705 17:36:22< Dragonking> Crab_: No, I don't follow 20090705 17:36:23< mordante> esr, ilor also doesn't ring a bell for me 20090705 17:37:17< Crab_> Dragonking: well, on_fail handler will need access to the parameters of the action 20090705 17:37:24< Dragonking> Crab_: I would simply in case of safe_execute(recruit('Archer'), on_fail() ) call on fail with added callable of error table which would consist of one elemnt 'Archer' 20090705 17:37:35< Crab_> such as 'from, to, is_move_full' for movement 20090705 17:37:47< Crab_> such is 'unit name, optional location' for recruitment 20090705 17:38:35< Crab_> such as 'attacker_location, defender_location, attacker_weapon' for attack 20090705 17:38:48< Crab_> and, the return code (reason for failure) 20090705 17:39:28< Crab_> so, I was trying to say that the objects which contain this info are already implemented 20090705 17:39:42< Crab_> and they can be looked up in src/ai/actions.cpp 20090705 17:40:08< Dragonking> Crab_: Objects with this info are passed to formula 20090705 17:40:21< Dragonking> recruit command is a formula_callable 20090705 17:40:53< Dragonking> Which inherit get_value() 20090705 17:42:08< Dragonking> Just throw whole recruit into map_callable and name it somehow, so you have access to it 20090705 17:42:22< Crab_> with move actions, there's some info which is not passed to formula before execution 20090705 17:42:38< Crab_> 'where the unit that is moved has stopped, in the case that move is interrupted' 20090705 17:43:00< Dragonking> Crab_: That's true 20090705 17:44:58< esr> It's a remorkably unhrlpful message. Doesn't even hint what child is missing. 20090705 17:44:59< Crab_> so, we basically agree on the ' on_fail handler will need access to the parameters of the action' part 20090705 17:45:08< Crab_> Dragonking: the rest is implementation details 20090705 17:45:21< Dragonking> yes 20090705 17:45:39< Dragonking> Crab_: And I tihnk this time we agree on purpose of this on_fail :) 20090705 17:45:40< Crab_> also, on_fail handler will need some post-action details (such as action failure code and current unit locations) 20090705 17:45:49< Crab_> :) 20090705 17:45:49< Dragonking> I tihnk there was some miscommunication last time 20090705 17:46:00< grzywacz> I'd rename to "on_failure" 20090705 17:46:03< Dragonking> Crab_: True 20090705 17:46:05< grzywacz> fail means formula ai library :P 20090705 17:46:11< Dragonking> Yes 20090705 17:46:13< Dragonking> :) 20090705 17:46:25-!- EdB [n=edb@4.12.95-79.rev.gaoland.net] has joined #wesnoth-dev 20090705 17:47:27< mordante> esr, ilor it's originating from config.cpp 20090705 17:47:29< Dragonking> ok 20090705 17:47:36< Dragonking> I need to disappear now 20090705 17:47:45< Dragonking> Crab_: I'll look into actions.cpp 20090705 17:47:45< Crab_> ok 20090705 17:47:47< Dragonking> Thanks 20090705 17:47:59< Crab_> find_dragonking(onfail=continue_coding) :) 20090705 17:48:22< Dragonking> hehe 20090705 17:48:23< Dragonking> :) 20090705 17:50:25< mordante> esr, git blame points at rev 34487 by silene 20090705 17:51:25< ilor> mordante that's a big refactoring commit by silene 20090705 17:51:38< mordante> yup 20090705 17:52:30< ilor> I wish I could remember what caused me to get that error yesterday 20090705 17:54:10< CIA-53> mordante * r36619 /trunk/ (13 files in 7 dirs): 20090705 17:54:10< CIA-53> Add the initial version of the stacked widget. 20090705 17:54:10< CIA-53> This widget allows several widgets to be placed on top of each other in the 20090705 17:54:10< CIA-53> same space. This can be used to create overlay images. (The widget is not yet 20090705 17:54:10< CIA-53> used and rather experimental.) 20090705 17:54:12-!- Elvish_Pillage2 [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090705 17:55:34< mordante> grzywacz, the stacked widget is there^, but the code needed for manipulation doesn't work, but that's probably at another place, so will take a bit longer before it works 20090705 17:55:45< mordante> the widget itself does work :-) 20090705 17:56:28< esr> mordante: I'll poost a bug for Silene and the savefile. 20090705 17:56:54< mordante> ok 20090705 17:59:35-!- Elvish_Pillager [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 60 (Operation timed out)] 20090705 18:03:45< grzywacz> mordante, ok, I'm going to take a look at it:) 20090705 18:03:46-!- MJ999 [n=msflower@80.154.28.81] has quit [Read error: 104 (Connection reset by peer)] 20090705 18:03:56< esr> Posted: https://gna.org/bugs/index.php?13866 20090705 18:04:24< mordante> grzywacz, you can't see much yet :-( 20090705 18:05:44< grzywacz> mordante, I meant the code ;) 20090705 18:05:51< mordante> ah ok 20090705 18:07:39< grzywacz> esr, is there any reason to change a "work's for me" status of a bug to "invalid"? 20090705 18:09:14-!- wesbot changed the topic of #wesnoth-dev to: 1.6.4 planned for today | 58 bugs, 237 feature requests, 12 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090705 18:10:24-!- MJ999 [n=msflower@80.154.28.81] has joined #wesnoth-dev 20090705 18:11:06< esr> grzywacz: Not usually. I did this ionce, recently, because the bug report seemed to indicate the submitter just didn't know how unit visibility in help is supposed to work. 20090705 18:12:34< grzywacz> esr, actually, I mean the previous one with leadership allegedly working for stoned units. I don't see the point. :) 20090705 18:14:05< esr> grzywacz: I'd have to look at it again. But my wife is insisting on lunch. 20090705 18:14:42< grzywacz> Enjoy your meal. 20090705 18:27:33-!- giusef [n=giusef@unaffiliated/giusef] has joined #wesnoth-dev 20090705 18:32:38< kitty_> are there foxes in wesnoth? or do we have completely different fauna? 20090705 18:33:49< grzywacz> I haven't seen any, but I see no reason for there being no foxes. 20090705 18:34:03< elias> fire foxes 20090705 18:34:08< kitty_> thanks, just wanted to be sure 20090705 18:34:17< kitty_> elias: :P 20090705 18:34:43< elias> and ice weasels, to make Debian players happy :) 20090705 18:40:23< CIA-53> mcshark * r36620 /trunk/projectfiles/ (CodeBlocks/wesnoth.cbp CodeBlocks-SCons/wesnoth.cbp): Update according to recent file changes 20090705 18:40:51< mordante> I would rather expect firebirds and Phoenixes ;-) 20090705 18:41:36< kitty_> but I need something with fur... 20090705 18:42:07< kitty_> for the fem outlaw to wear. but it's already too late, she got fux fur around her shoulders 20090705 18:42:28< grzywacz> I can see greenpeace banning Wesnoth now. 20090705 18:42:46< mordante> I would expect fox or rabbit fur 20090705 18:42:51< kitty_> it was roadkill, she only picked it up ;) 20090705 18:42:58< grzywacz> kitty_, +1 ;-)) 20090705 18:42:58< mordante> :-) 20090705 18:43:03< kitty_> why rabbit? 20090705 18:43:27< grzywacz> btw. https://gna.org/bugs/?13855 and https://gna.org/bugs/index.php?13856 20090705 18:43:48< grzywacz> I bet esr could comment on these two ^ 20090705 18:44:09< mordante> since they probably hunt them for food 20090705 18:45:03< grzywacz> Foxes are hunted for their fur. 20090705 18:45:23< mordante> no we just learned, they're roadkill ;-) 20090705 18:59:19-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090705 19:01:30-!- cib0 [n=cib@p4FD0C940.dip.t-dialin.net] has quit [Read error: 113 (No route to host)] 20090705 19:07:14< ilor> mordante: is there a gui2 "inputbox" equivalent? 20090705 19:07:53< mordante> what do you mean, there's a text_box, but I assume you don't mean that one 20090705 19:07:57< ilor> mordante: i.e. with a title, prompt and a textbox, and a way of getting whatever the user entered, bonus points if it can asterix the input like a passwordbox :) 20090705 19:08:12< ilor> I mean a premade dialog like a messagebox 20090705 19:11:04< mordante> ilor, no there isn't, but it would be trivial to add (both of them) 20090705 19:11:39< mordante> if you want I can take a look at it tomorrow 20090705 19:12:01< ilor> mordante: no, I think your time would be better spent on some other issues :) 20090705 19:15:35-!- MikeJB [n=Michael@wesnoth/umc-dev/developer/aethaeryn] has joined #Wesnoth-dev 20090705 19:21:05< mordante> ilor, moght be, only, this is something I can do in between while waiting for the compiler to finish ;-) 20090705 19:21:11< mordante> might* 20090705 19:23:46-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has joined #wesnoth-dev 20090705 19:24:17-!- kitty_ [n=kitty@wesnoth/artist/kitty] has quit ["bye"] 20090705 19:31:07-!- giusef [n=giusef@unaffiliated/giusef] has quit ["exit (-1);"] 20090705 19:31:23< mordante> ilor in your opinion what should happen if you click on a button on a toggle panel, when the panel is not selected yet? 20090705 19:32:09< ilor> I think the button handler should fire 20090705 19:32:21< ilor> it can check if the panel is selected 20090705 19:32:23< mordante> yes, but should the row also be selected? 20090705 19:32:31< ilor> I meant row, yes 20090705 19:33:08< mordante> (the code is bound to get ugly until I add proper signals :-( ) 20090705 19:33:12< ilor> actually my initial plan was to hide the buttons in all rows but the selected one, so I might not notice either way 20090705 19:33:48< ilor> so if the user needs to select the panel first I can live with it 20090705 19:34:10< mordante> I'll start to test with some code, guess won't be finished until tomorrow 20090705 19:34:27< mordante> how are things going for you in general for SoC? 20090705 19:34:37-!- [Relic] [n=[Relic]@99-58-54-211.lightspeed.milwwi.sbcglobal.net] has joined #wesnoth-dev 20090705 19:34:40< ilor> especially if there are on_select / on_deselect callbacks that I can use to hide or disable the buttons in other rows 20090705 19:34:54< ilor> mordante: I'm about to have a "crude but works" lobby 20090705 19:35:17< ilor> being able to clear listbox items would help here ;) 20090705 19:35:40< [Relic]> Hello :) 20090705 19:36:05< ilor> in general I feel I'm somewhat lagging behind but I have made some good progress this weekend, and I plan to continue in similar pace in the following days 20090705 19:37:48< ilor> okay, the new lobby allowed my two instances of wesnoth to start a MP game 20090705 19:37:52< mordante> ilor, the toggle panel itself also has a callback 20090705 19:38:01< mordante> hi [Relic] 20090705 19:38:45< mordante> I've upped the remove items on my todo list ;-) 20090705 19:39:01< Smar> when 1.6.4 is going to be tagged? 20090705 19:39:06< ilor> I'd say it's more important than the button-on-toggle-panel :) 20090705 19:39:40< ilor> for now I've made a button outside the gamelist like the old lobby has, but can't really work around the listbox thing :) 20090705 19:41:38< mordante> the button is easier for me, since the other change causes another full recompilation ;-) 20090705 19:42:15< ilor> hm, then you won't like the change I've made in helper.hpp -_- 20090705 19:42:17 * mordante hopes that soon the temperature drops again 20090705 19:42:22< ilor> (gui/dialogs/helper.hpp) 20090705 19:42:37< mordante> better as gui/widgets/helper ;-) 20090705 19:42:50< ilor> mordante: is the create game gui2 diaog supposed to work? 20090705 19:43:02< mordante> somewhere where I can test the call back for the button? 20090705 19:43:15< mordante> ilor, you mean the MP create dialog? 20090705 19:43:19< ilor> yes 20090705 19:43:44< mordante> no I added it to test some features, feel free to reuse/scrap it 20090705 19:44:02< ilor> mordante: I am just about to commit qnd you can test by creating a MP game and in another instance there will be buttons on the gamelist that should atm work like the "global " 20090705 19:44:24< ilor> mordante: ok, I've disabled it under --new-widgets so I can get a working use case 20090705 19:44:51< mordante> you mean you disabled the create dialog? 20090705 19:46:36< ilor> mordante: I made it use the old dialog all the time 20090705 19:47:20< mordante> ok 20090705 19:47:53< CIA-53> ilor * r36621 /trunk/src/gui/dialogs/helper.hpp: Add a helper macro for setting standard button callbacks in a dialog. Yes, it's a macro, but it can reduce the copy-paste factor of a pre_show() function quite a lot when there are many buttons. 20090705 19:49:24< CIA-53> ilor * r36622 /trunk/ (4 files in 3 dirs): Yet another new lobby WIP, this time with crude, but working create/join game. 20090705 19:50:04< ilor> mordante: I justify r36621 by having 7 buttons in the lobby dialog so far and each one would need a 2-line dyn_cast..find_widget; and then validate; setcallback; with othing creative going on 20090705 19:50:13< ilor> *nothing 20090705 19:54:05< mordante> I'll kill that macro soon :-P 20090705 19:54:26< mordante> (I've been working on some code to make that marco rather redundant ;-) ) 20090705 19:54:37< ilor> I won't mind :) 20090705 19:55:04< mordante> based on your work on twidget::find_widget 20090705 19:55:58< mordante> seems my compiler doesn't hate you for that macro, recompilation is just done ;-) 20090705 19:57:21< grzywacz> ugh @ g++ 20090705 19:57:39< grzywacz> src/ai/formula/ai.cpp:1497: error: passing 'const::max_possible_damage_with_retaliation_function' as 'this' argument of 'std::pair::max_possible_damage_with_retaliation_function::best_melee_and_ranged_attacks(::max_possible_damage_with_retaliation_function::unit_adapter, ::max_possible_damage_with_retaliation_function::unit_adapter)' discards qualifiers 20090705 19:57:51< grzywacz> It's like... the most confusing error message ever. 20090705 19:58:41< ilor> grzywacz: why, "discards qualifiers" tells it all :) 20090705 19:58:44-!- stikonas [n=and@ctv-213-164-98-244.vinita.lt] has joined #wesnoth-dev 20090705 19:58:45< loonycyborg> It means that a non-const method was called on a const object AFAICT. 20090705 19:59:31< grzywacz> loonycyborg, that's what it says, but clumping the method call with std::pair in that message...? :O# 20090705 20:00:09< mordante> ah ilor I see why the buttons on the panel are redundant at the moment 20090705 20:00:26< mordante> is the filling up of the list due to the not being able to delete items? 20090705 20:00:33< ilor> mordante: yes 20090705 20:00:42< mordante> grzywacz, it's only 3 lines, why complain :-P 20090705 20:00:53 * mordante switches priorities (again) 20090705 20:00:56< ilor> mordante: it does make it easier to test what happens when there are lots of items ;P 20090705 20:01:58 * mordante switches priorities (again) :-P 20090705 20:04:28-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Remote closed the connection] 20090705 20:08:46< CIA-53> mordante * r36623 /trunk/src/gui/widgets/ (listbox.cpp listbox.hpp): 20090705 20:08:46< CIA-53> Add dummy remove row function for the listbox. 20090705 20:08:46< CIA-53> No time to implement the function yet, but when I have time I'd like the 20090705 20:08:46< CIA-53> function to be used already. 20090705 20:08:59< mordante> ilor, can you add the calls^, so I can test once my code is finished 20090705 20:09:04< ilor> mordante: sure 20090705 20:09:35< mordante> I'm off in a few minutes 20090705 20:09:45< mordante> Ivanovic, no 1.6.4 blockers left for me 20090705 20:10:39 * grzywacz wonders why the unit class returns a cached vector of attacks in its attacks() method, but unit_type generates it on the fly in its corresponding attacks() 20090705 20:11:01-!- fendrin [n=fabi@g228083008.adsl.alicedsl.de] has joined #wesnoth-dev 20090705 20:12:43-!- mordante [n=mordante@wesnoth/developer/mordante] has quit ["Leaving"] 20090705 20:12:44< ilor> mordante: I actually would need a plain old clear() on the listbox 20090705 20:12:45< [Relic]> :) 20090705 20:12:52< ilor> oh well ;) 20090705 20:13:56< Ivanovic> re 20090705 20:15:03< Ivanovic> AI0867, cjhopman, corn, Crab_, crimson_penguin, dfranke, Dragonking, EdB, elias, esr, ettin, fendrin, grzywacz, ilor, loonycyborg, noy, Rhonda, shadowmaster, Soliton, thespaceinvader, zookeeper, everyone else who cares: ready for 1.6.4? 20090705 20:15:27< thespaceinvader> Ivanovic: nothing on the line here 20090705 20:15:36< grzywacz> Ivanovic, sure 20090705 20:15:44< dfranke> yup 20090705 20:15:46< Crab_> Ivanovic: yes, nothing for 1.6.4 20090705 20:17:45 * loonycyborg wonders whether he should backport uninstall information support in the installer to 1.6 20090705 20:19:10< CIA-53> ivanovic * r36625 /branches/1.6/po/wesnoth-low/fi.po: updated Finnish translation 20090705 20:19:11< CIA-53> ivanovic * r36624 /trunk/po/wesnoth-low/fi.po: updated Finnish translation 20090705 20:19:25< fendrin> Ivanovic: ready? Just no idea that something like that could happen today. 20090705 20:20:06< Ivanovic> cf topic 20090705 20:22:41< crimson_penguin> Sure 20090705 20:26:44< CIA-53> loonycyborg * r36626 /trunk/ (SConstruct src/game_display.cpp): 20090705 20:26:44< CIA-53> Added support for kde's desktop notification DBus service. 20090705 20:26:44< CIA-53> For now disabled by default. Enabled with 'scons notifications=true 20090705 20:26:44< CIA-53> notifications_backend=kde". Compilation requires only QtDBus but they'll 20090705 20:26:44< CIA-53> only work if wesnoth is run in a kde4.2 session. 20090705 20:27:59< grzywacz> loonycyborg, nice 20090705 20:27:59-!- boucman [n=rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20090705 20:28:07< boucman> hey all 20090705 20:28:13< grzywacz> hi boucman 20090705 20:28:14< loonycyborg> All these backends are mere wrappers for dbus so IMO it's a good idea to replace them with direct dbus calls :P 20090705 20:28:30< CIA-53> ivanovic * r36627 /branches/1.6/po/wesnoth/ (49 files): pot-update (preparing for 1.6.4, there should be nothing new...) 20090705 20:29:24< grzywacz> loonycyborg, yes :) 20090705 20:29:46< CIA-53> ivanovic * r36628 /trunk/po/wesnoth-sotbe/de.po: updated German translation 20090705 20:29:49< CIA-53> ivanovic * r36629 /branches/1.6/po/wesnoth-sotbe/de.po: updated German translation 20090705 20:30:36< Ivanovic> boucman: ready for 1.6.4? 20090705 20:30:48< crimson_penguin> so what are these notifications used for? 20090705 20:30:56< boucman> Ivanovic: all clear 20090705 20:31:34< grzywacz> crimson_penguin, end of turn events and talking in case wesnoth window is not focused 20090705 20:31:50< grzywacz> crimson_penguin, in multiplayer, of course 20090705 20:32:28< crimson_penguin> grzywacz: hmmm... well on Mac, there's Growl, maybe I should look into adding support for that 20090705 20:33:00-!- ilor_ [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090705 20:35:38< grzywacz> crimson_penguin, I bet users would appreciate it ;-) 20090705 20:36:13< crimson_penguin> grzywacz: where in the Wesnoth code would I find the notifications? 20090705 20:36:19< crimson_penguin> also, is it in 1.6, or just 1.7? 20090705 20:37:56< grzywacz> crimson_penguin, 1.7, so trunk 20090705 20:38:14< grzywacz> crimson_penguin, there's send_notification in game_display 20090705 20:38:25< crimson_penguin> ok, thanks 20090705 20:38:56< grzywacz> But it probably shouldn 20090705 20:39:00< grzywacz> 't be in that file :P 20090705 20:41:41< MikeJB> 1.6.4 planned for today? Good. I'd hate to downgrade to 1.6.2 just to host a Bob the Mighty scenario 20090705 20:41:52< MikeJB> I keep getting client disconnected, but it looks like it's a known issue when I looked it up 20090705 20:43:17-!- stikonas [n=and@wesnoth/translator/stikonas] has quit [Read error: 110 (Connection timed out)] 20090705 20:47:44< CIA-53> ivanovic * r36630 /branches/1.6/ (changelog configure.ac players_changelog src/wesconfig.h): bump version to 1.6.4 20090705 20:47:52-!- Ivanovic changed the topic of #wesnoth-dev to: releasing 1.6.4, using r36630 | 58 bugs, 237 feature requests, 12 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090705 20:48:02-!- ilor [n=user@wesnoth/developer/ilor] has quit [Read error: 110 (Connection timed out)] 20090705 20:48:08-!- stikonas [n=and@ctv-213-164-98-244.vinita.lt] has joined #wesnoth-dev 20090705 20:59:21< crimson_penguin> grzywacz: I'm mostly worried about that fact that I have no idea how to add a dependency, and people who do probably don't compile on Macs, and I can't really test myself because I don't compile with scons or cmake... 20090705 21:00:36< crimson_penguin> I could make it so it just uses Growl if some macro is defined, but then you couldn't normally compile with it 20090705 21:04:33< grzywacz> crimson_penguin, can't you just look at how it's done for other dependencies? 20090705 21:06:13< crimson_penguin> Well come to think of it, I don't think it'd work the same if you're not building a .app (because you're supposed to include it in the .app) 20090705 21:07:10< grzywacz> How is it done for SDL and others? 20090705 21:07:59< crimson_penguin> I don't actually know; I've never built with scons, but I'm guessing it just links to the regular dylibs that you have in your library path 20090705 21:09:07< loonycyborg> crimson_penguin: You need to use a framework to use Growl? 20090705 21:09:09< crimson_penguin> I'm not sure that there is a way to install Growl the unix-y way, with the headers in /usr/local/include or whatever, and library in /usr/loca/lib 20090705 21:09:18< crimson_penguin> loonycyborg: Yeah 20090705 21:09:57< loonycyborg> scons can be made to use frameworks. 20090705 21:10:33< crimson_penguin> scons, building on Mac, doesn't make a .app, right? 20090705 21:11:07< loonycyborg> Probably not.. 20090705 21:11:34< crimson_penguin> "Note: Inclusion of Growl.framework in your application is required." 20090705 21:14:16-!- maxy [n=maxy@80-219-1-128.dclient.hispeed.ch] has quit [] 20090705 21:15:35< CIA-53> ivanovic * r36631 /tags/1.6.4/: tagged 1.6.4 (using r36630) 20090705 21:15:40< crimson_penguin> I just don't really want to figure out how to make Growl work with the standard unix install method... it'll already be a little tricky, since there's the language bridge to figure out 20090705 21:16:41< loonycyborg> Why do you need to intall Growl in unixy way? 20090705 21:16:52< CIA-53> ivanovic * r36632 /branches/1.6/ (changelog configure.ac players_changelog src/wesconfig.h): post-release version bump to 1.6.4+svn 20090705 21:16:54-!- Ivanovic changed the topic of #wesnoth-dev to: released 1.6.4, announcing soon | 58 bugs, 237 feature requests, 12 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090705 21:17:39< loonycyborg> Aren't you using XCode to make your apps which might even support building against frameworks with a GUI drag&drop? :P 20090705 21:18:40< crimson_penguin> loonycyborg: Oh yes, I'm just saying if I add Growl support to svn, it won't actually work with any of the build systems included in svn 20090705 21:18:58< crimson_penguin> Unless I figure out how to make it work of course, which I don't really wanna do 20090705 21:19:25< Soliton> why does that matter? 20090705 21:20:29< crimson_penguin> well, if no one else minds, then... good :) 20090705 21:21:08 * loonycyborg doesn't mind :) 20090705 21:21:33< zookeeper> wtf? http://www.wesnoth.org/mw/index.php?title=User_talk:Ayin/New_terrain_graphics_system_proposal&curid=1914&diff=31052&oldid=4778&rcid=29834 20090705 21:21:41 * loonycyborg wonders whether there's a wesnoth port in MacPorts 20090705 21:21:44< zookeeper> so, why exactly would anyone want to do something like that? 20090705 21:21:59-!- Polarina1 [n=polarina@85-220-18-216.dsl.dynamic.simnet.is] has joined #wesnoth-dev 20090705 21:22:09< zookeeper> oh, wait. it's _not_ a spambot. 20090705 21:22:14 * zookeeper thought it was 20090705 21:22:28< grzywacz> spamhuman? 20090705 21:22:47 * grzywacz runs checkcpp on wesnoth 20090705 21:23:14-!- Polarina [n=polarina@wesnoth/translator/Polarina] has quit [Nick collision from services.] 20090705 21:23:18-!- Polarina1 is now known as Polarina 20090705 21:23:50< zookeeper> at a glance it looked so unrelated to anything that i figured it must be some kind of spam, and i couldn't figure out why someone would want to spam something about prolog and sendmail. 20090705 21:24:09-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit ["KVIrc 3.4.2 Shiny http://www.kvirc.net/"] 20090705 21:24:48-!- loonybot [n=loonybot@wesnoth/bot/loonybot] has quit [Remote closed the connection] 20090705 21:24:59< grzywacz> checkcpp results: http://kolos.math.uni.lodz.pl/~grzywacz/results.txt 20090705 21:26:11< grzywacz> md5 ones are so obvious ;s 20090705 21:48:28-!- ardesh_ is now known as ardesh 20090705 21:48:49< boucman> http://www.wesnoth.org/forum/viewtopic.php?p=365674#p365674 <= still great as usual 20090705 21:48:56< Ivanovic> the new sf.net theme s***s 20090705 21:50:44< grzywacz> Ivanovic, agreed 20090705 21:51:22< grzywacz> boucman, oh yes. These art threads are pretty much the only ones I follow regularly just for the pleasant experience :) 20090705 21:51:29< boucman> :) 20090705 21:53:25< stikonas> sf.net now by default tries to offer me solaris 1.4 build :( 20090705 21:54:23< grzywacz> Maybe it's your destiny, only you don't realise it yet. 20090705 22:02:18-!- ardesh_ [n=ardesh@port-92-206-163-106.dynamic.qsc.de] has joined #wesnoth-dev 20090705 22:02:24-!- ardesh_ [n=ardesh@port-92-206-163-106.dynamic.qsc.de] has quit [Read error: 104 (Connection reset by peer)] 20090705 22:05:34< grzywacz> boucman, have a minute? 20090705 22:05:38< boucman> sure 20090705 22:06:28< grzywacz> boucman, http://kolos.math.uni.lodz.pl/~grzywacz/oops.patch 20090705 22:06:37< boucman> looking 20090705 22:06:40< grzywacz> boucman, anything that I've obviously broken there? 20090705 22:06:45< grzywacz> boucman, basically forum auth stopped working for me :) 20090705 22:07:15< boucman> this is an area I absolutely don't know, but i'll see if there is anything obvious 20090705 22:11:29< boucman> couple of stuff as they come 20090705 22:11:44< boucman> - memcpy(s, digest, 16); 20090705 22:11:44< boucman> - return s; 20090705 22:11:44< boucman> + return std::string((char *) digest); 20090705 22:11:51< boucman> not sure these are equivalent... 20090705 22:11:52< crimson_penguin> Hmm, is there an #elseifdef or something? 20090705 22:11:53< grzywacz> digest is char[16] 20090705 22:12:07< boucman> ok 20090705 22:12:25< boucman> in that same function, s is declared as 20090705 22:12:30< boucman> - uint1 *s = new uint1[16]; 20090705 22:12:33< grzywacz> hm 20090705 22:12:40< grzywacz> unless it stores something which isn't characters 20090705 22:12:44< grzywacz> or can have binary zeroes..... 20090705 22:12:47< boucman> this means that it's allocated and the allocated memory is returned 20090705 22:12:59< boucman> which means the caller is supposed to free that memory 20090705 22:13:10< grzywacz> boucman, caller didn't free it anywhere 20090705 22:13:17< boucman> however, with your change you return a std::string from the stack 20090705 22:13:33< boucman> ok, so it was a memory leak you are implicitely fixing ? 20090705 22:13:39< grzywacz> yes 20090705 22:13:41< boucman> ok 20090705 22:13:51 * boucman goes back to studying 20090705 22:13:52< grzywacz> And it's a low performance path, so I just wanted to drop a string there and let it grind :P 20090705 22:16:49< boucman> ok, you still have a probably useless cast std::string=>char* in md5, but it's harmless afaict 20090705 22:18:13-!- ardesh [n=ardesh@port-92-206-90-43.dynamic.qsc.de] has quit [Read error: 110 (Connection timed out)] 20090705 22:18:42< grzywacz> boucman, g++ was complaining since it's signed/unsigned 20090705 22:18:50-!- loonybot [n=loonybot@79.139.136.167] has joined #wesnoth-dev 20090705 22:19:17< boucman> ok, one more question 20090705 22:19:25< grzywacz> yes? 20090705 22:19:25< boucman> - output = md5(std::string((char *) output, (char *) output + 16).append(password)); 20090705 22:19:25< boucman> + output = md5(output.substr(0, 16).append(password)); 20090705 22:19:48< boucman> here, in the old code you seem to build a std::string from two char* 20090705 22:20:18-!- loonycyborg [n=sergey@79.139.136.167] has joined #wesnoth-dev 20090705 22:20:32< boucman> however there is no such constructor, so it is assumed that we have the string in output, 20090705 22:21:23< boucman> and i'm not sure how to understand the second argument, it should be the length of the array according to stl documentation 20090705 22:21:39< grzywacz> I thought it was a range constructor 20090705 22:21:44< boucman> but you add an int to a pointer, so it can't be a size 20090705 22:21:57< grzywacz> two pointers treated as 2 iterators 20090705 22:22:07< boucman> I might have missed it, but I can't find such a constructor in the stl doc 20090705 22:22:28< boucman> unless it's an implicit char* as iterator, but that would be ugly 20090705 22:22:32< grzywacz> template string (InputIterator begin, InputIterator end); 20090705 22:22:56< boucman> and char* are valid iterators ? 20090705 22:23:10< grzywacz> yes 20090705 22:23:15< boucman> oh 20090705 22:23:48< boucman> in that case, no, I can't see anything wrong :) 20090705 22:23:57< grzywacz> but it doesn't work ;) 20090705 22:24:02< boucman> :P 20090705 22:24:42< Ivanovic> wesbot: seen sapient 20090705 22:24:42< wesbot> Ivanovic: The person with the nick Sapient last spoke 4d 1h ago. 3d 1h ago person left: 20090705 22:25:40< loonycyborg> Ivanovic: Did you see 500 errors when uploading to sourceforge? 20090705 22:25:57< loonycyborg> That is error number 500 :P 20090705 22:26:28< boucman> grzywacz: ok, one last 20090705 22:26:34< Ivanovic> when visting the page i get it rather often, yeah 20090705 22:26:34< boucman> - memcpy(s, digest, 16); 20090705 22:26:34< boucman> - return s; 20090705 22:26:34< boucman> + return std::string((char *) digest); 20090705 22:26:35-!- Elvish_Pillage2 [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 110 (Connection timed out)] 20090705 22:26:45-!- silene [n=plouf@wesnoth/developer/silene] has joined #wesnoth-dev 20090705 22:26:49< silene> hi 20090705 22:27:02< grzywacz> boucman, yes? 20090705 22:27:02< boucman> if digest contains a 0, the returned std::string is probably not the same as the one obtained by memcopy 20090705 22:27:13-!- Elvish_Pillager [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090705 22:27:15< boucman> you should also use the range constructor there 20090705 22:27:33< grzywacz> hm 20090705 22:29:36< grzywacz> boucman, no luck ;) I'm going to do it another way round 20090705 22:29:44< boucman> darn :) 20090705 22:29:57< boucman> well i'm pretty sure that was wrong, let's look a bit deeper 20090705 22:31:04< boucman> grzywacz: you could ask silene, he's one of our c++ expert, and this get too hard for me 20090705 22:31:16< boucman> silene: around ? 20090705 22:31:19< silene> yes 20090705 22:31:44< grzywacz> silene, http://kolos.math.uni.lodz.pl/~grzywacz/oops.patch 20090705 22:31:50< grzywacz> silene, anything obviously broken here? 20090705 22:31:51< boucman> http://kolos.math.uni.lodz.pl/~grzywacz/oops.patch <= could you help us find out what's wrong with that patch ? grzywacz says it doesn't work 20090705 22:34:40< silene> are there embedded zeros? (i don't see anything else) 20090705 22:34:58-!- Doppp [n=aassdf@c-67-171-96-240.hsd1.pa.comcast.net] has quit [Client Quit] 20090705 22:35:24-!- Doppp [n=aassdf@c-67-171-96-240.hsd1.pa.comcast.net] has joined #wesnoth-dev 20090705 22:35:58 * boucman just discovered http://www.facebook.com/group.php?gid=2204793403 20090705 22:36:37-!- Doppp|EeePC1 [n=aasdasd@c-67-171-96-240.hsd1.pa.comcast.net] has joined #wesnoth-dev 20090705 22:36:56< boucman> I guess there might be... 20090705 22:37:07< grzywacz> I guess there's no other reason for it to break 20090705 22:37:15< CIA-53> ai0867 * r36633 /trunk/data/tools/trackplacer: Fix trackplacer's overlaps(). 20090705 22:37:35-!- Doppp|EeePC [n=aasdasd@c-67-171-96-240.hsd1.pa.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 20090705 22:38:38-!- Doppp|EeePC1 is now known as Doppp|EeePC 20090705 22:40:29< silene> esr: here? your report 13886 doesn't contain any savefile 20090705 22:41:01< esr> silene: That's odd! 20090705 22:41:10< esr> Hold on, I'll re-attach. 20090705 22:41:57< esr> Um, it's already there. file #6130: missing_wml_child.gz added by esr (0B - application/octet-stream) 20090705 22:42:20< esr> https://gna.org/bugs/download.php?file_id=6130 20090705 22:42:35< Soliton> very space efficient. 20090705 22:42:40< esr> See it? 20090705 22:42:42< silene> esr: "0B"... 20090705 22:43:00< esr> Bizarre. I wonder what happened? 20090705 22:44:28< esr> OK, I deleted and reattached, try again. 20090705 22:45:27< silene> looks like a proper file now, thanks 20090705 22:46:30< silene> hmm... wesnoth doesn't even start for me... someone broke it 20090705 22:47:24< grzywacz> silene, latest trunk? works for me. 20090705 22:47:35-!- stikonas [n=and@wesnoth/translator/stikonas] has quit [Read error: 110 (Connection timed out)] 20090705 22:48:08< silene> trunk from this morning, it immediately segfaults 20090705 22:48:49 * boucman updates and compile 20090705 22:49:02-!- MikeJB is now known as Aethaeryn 20090705 22:53:04< silene> it still segfaults with latest trunk; let's try another compiler 20090705 22:53:22-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has joined #wesnoth-dev 20090705 22:53:28< grzywacz> FYI, g++ 4.4.0 here 20090705 22:53:38< silene> 4.5 here 20090705 23:00:25< silene> works with 4.3; i wonder if it's a compiler bug or if we are doing something ugly 20090705 23:00:59< grzywacz> Soliton, how do you avoid creating merge commits with git svn? First rebase the other branch to master, then merge? 20090705 23:03:23< silene> grzywacz: seems complicated; why not directly commit from your other branch? 20090705 23:03:23-!- elias [n=allefant@allegro/developer/allefant] has quit [Read error: 104 (Connection reset by peer)] 20090705 23:03:35-!- elias [n=allefant@allegro/developer/allefant] has joined #wesnoth-dev 20090705 23:03:53< silene> (i mean, the branch on which your work is done) 20090705 23:09:32< grzywacz> hm, let me try that... 20090705 23:09:57-!- nickbp [n=fsoh@unaffiliated/beoba] has left #wesnoth-dev ["(☞゚∀゚)☞"] 20090705 23:10:27< CIA-53> grzywacz * r36634 /trunk/src/ (md5.cpp md5.hpp): Fixed a potential memory leak in md5 code; removed unused code 20090705 23:11:08< grzywacz> silene, thanks; I had "dcommit from master only" stuck in my mind for some reason 20090705 23:11:21< grzywacz> boucman, that was much simpler to fix, actually ;) 20090705 23:11:31 * boucman checks the commit 20090705 23:12:19-!- noy_ [n=Noy@d75-157-33-190.bchsia.telus.net] has joined #wesnoth-dev 20090705 23:12:21-!- noy [n=Noy@wesnoth/developer/noy] has quit [Read error: 104 (Connection reset by peer)] 20090705 23:12:29< boucman> ok, simpler indeed 20090705 23:13:34< grzywacz> boucman, if you feel like reviewing changes I have more coming ;) 20090705 23:13:41< boucman> :P 20090705 23:13:45< boucman> bed soon here 20090705 23:15:42< loonycyborg> Ivanovic: 1.6.4 installer is uploaded. 20090705 23:16:18< loonycyborg> "Error 500" on sourceforge's home page didn't stop me :P 20090705 23:17:10< grzywacz> Can I just delete buggy code that's unused? :P 20090705 23:18:03< silene> grzywacz: just make sure it is really unused, that is, compile at least the two servers and the testsuite 20090705 23:19:58< boucman> silene: no insta-crash here 20090705 23:20:01< grzywacz> silene, thanks, I'll keep that in mind. In case of md5 grep found no references 20090705 23:20:15< boucman> gcc 4.3. 20090705 23:20:30< silene> yes, 4.3 works for me too 20090705 23:20:48< boucman> ok, so it's acompiler issue it seems 20090705 23:21:43< CIA-53> grzywacz * r36635 /trunk/src/savegame.cpp: Use delete [] to delete arrays. 20090705 23:21:52< grzywacz> boucman, ^ 20090705 23:22:13-!- ancestral [n=ancestra@97-116-127-39.mpls.qwest.net] has joined #wesnoth-dev 20090705 23:22:43< crimson_penguin> I found a problem with starting wesnothd from within the game, that shows up probably only on Mac in 1.7 20090705 23:22:58< crimson_penguin> I've got the user data in a path with spaces, and that breaks it 20090705 23:23:12< crimson_penguin> 20090705 17:14:56 error server: unknown option: Support/Wesnoth_1.7/lan_server.cfg 20090705 23:23:13< grzywacz> crimson_penguin, version? 20090705 23:23:21< crimson_penguin> trunk 20090705 23:23:39< crimson_penguin> or, oh... maybe I didn't update 20090705 23:25:10< Ivanovic> crimson_penguin: something like this was fixed some weeks ago 20090705 23:25:19-!- noy_ [n=Noy@d75-157-33-190.bchsia.telus.net] has quit [Read error: 104 (Connection reset by peer)] 20090705 23:25:24< crimson_penguin> ok, I didn't update, I'll try again in a minute 20090705 23:26:42< silene> crimson_penguin: spaces shouldn't be an issue; but if the path contains a quote, it will break hard 20090705 23:27:00< crimson_penguin> no quotes here 20090705 23:32:21< silene> crimson_penguin: seems like Soliton fixed the issue yesterday 20090705 23:34:14-!- Crab_ [i=crab@wesnoth/developer/crab] has quit ["Leaving."] 20090705 23:35:56< CIA-53> ai0867 * r36636 /trunk/data/scenario-test.cfg: Add a [set_variable] random 0..0 testcase. 20090705 23:36:02< CIA-53> ai0867 * r36637 /trunk/ (changelog src/game_events.cpp): Fixed [set_variable]'s rand and random when operating on 0..0 (return 0) 20090705 23:37:06-!- testing_xyz [n=johnTriv@87.126.108.161] has quit [] 20090705 23:38:29< esr> silene: The fatal-error bug - do you think it is in fact yours? 20090705 23:38:59-!- elias [n=allefant@allegro/developer/allefant] has quit ["Leaving"] 20090705 23:39:34< silene> no, it's caused by euschn recent commit (is my post to the bug-report unclear?) 20090705 23:41:00< crimson_penguin> ...conflicts are annoying 20090705 23:41:12 * crimson_penguin should've updated before he started working on game_display.cpp 20090705 23:41:43< esr> silene: Hadn't seen the second comment before. Should we back that out, or do you think it can be fixed? 20090705 23:41:48< grzywacz> If you started to work on a copy older than the latest dbus changes... :P 20090705 23:43:01-!- ancestral [n=ancestra@97-116-127-39.mpls.qwest.net] has quit [Read error: 60 (Operation timed out)] 20090705 23:43:21< silene> esr: not sure, there are quite a few other commits from euschn is this area; so reverting just this one may not be sufficient or even possible 20090705 23:44:13-!- ancestral [n=ancestra@97-116-127-39.mpls.qwest.net] has joined #wesnoth-dev 20090705 23:44:15< crimson_penguin> grzywacz: yeah, I did :P which was particularly dumb, because what made me think of working on it, was seeing that those changes were made 20090705 23:46:07-!- boucman [n=rosen@wesnoth/developer/boucman] has quit ["Leaving."] 20090705 23:48:09< fendrin> esr: That replay is useful. You can save from the recalls if I remember right. 20090705 23:48:33< CIA-53> grzywacz * r36638 /trunk/src/server/user_handler.hpp: Delete mailer_ in user_handler's destructor. 20090705 23:50:57-!- EdB [n=edb@4.12.95-79.rev.gaoland.net] has quit [Remote closed the connection] 20090705 23:51:00< crimson_penguin> 20090705 17:50:17 error server: Caught network error while server was running. Aborting.: Could not bind to port 20090705 23:51:59< grzywacz> crimson_penguin, do you have something else running on that port? Like a previous server instance? 20090705 23:52:47< crimson_penguin> I shouldn't, but what's the port? I'll check 20090705 23:53:04< grzywacz> IIRC it's something around 15000 20090705 23:53:33< crimson_penguin> ah, apparently I do... 20090705 23:53:57 * crimson_penguin kills it 20090705 23:55:21 * crimson_penguin almost tried to upload to sourceforage.net 20090705 23:55:41< crimson_penguin> that's another valid method of making programs, you know - forage for your source code 20090705 23:56:06< MJ999> XD 20090705 23:58:07< crimson_penguin> how do you get the pid of the shell you're in? 20090705 23:58:42-!- Doppp|EeePC [n=aasdasd@c-67-171-96-240.hsd1.pa.comcast.net] has quit [Connection timed out] 20090705 23:59:13< grzywacz> wow 20090705 23:59:18< grzywacz> we have so many failing tests 20090705 23:59:22< grzywacz> I guess nobody cares 20090705 23:59:34< silene> crimson_penguin: $$ --- Log closed Mon Jul 06 00:00:02 2009