--- Log opened Sat Aug 15 00:00:14 2009 --- Day changed Sat Aug 15 2009 20090815 00:00:14-!- umcreg [n=umcreg@190.22.88.158] has joined #wesnoth-dev 20090815 00:00:21-!- shadowmaster_ [n=ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-dev 20090815 00:00:34-!- umcstat [n=umcstat@wesnoth/umc-dev/bot/umcstat] has joined #wesnoth-dev 20090815 00:00:44-!- shikadibot_ [n=shikadi@190.22.88.158] has joined #wesnoth-dev 20090815 00:00:58-!- shadowma1ter_ [n=ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-dev 20090815 00:01:08-!- shikadibot_ is now known as Guest70985 20090815 00:01:11< deekay> Crab_: Anyway, this move was straight step towards hell.. or wherever undead ends up :) 20090815 00:02:16-!- umcreg [n=umcreg@190.22.88.158] has quit [Client Quit] 20090815 00:02:23-!- umcstat [n=umcstat@wesnoth/umc-dev/bot/umcstat] has quit [Client Quit] 20090815 00:02:24-!- Guest70985 [n=shikadi@190.22.88.158] has quit [Client Quit] 20090815 00:02:35-!- Guest440 [n=1002@190.22.88.158] has quit [Client Quit] 20090815 00:02:48-!- shadowma1ter_ is now known as shadowm_laptop 20090815 00:03:26-!- shadowm_laptop [n=ignacio@wesnoth/developer/shadowmaster] has quit [Nick collision from services.] 20090815 00:04:29-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [] 20090815 00:06:02-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090815 00:09:15-!- wesbot changed the topic of #wesnoth-dev to: 1.7.3 planned for Sunday | 72 bugs, 239 feature requests, 12 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090815 00:09:46< Crab_> deekay: I should try to cook up a different power projection routine, to see how much it changes things.. 20090815 00:10:14< deekay> I should make fish disappear ;p 20090815 00:10:21-!- noy_ [n=noy@24.114.236.37] has joined #wesnoth-dev 20090815 00:10:21< deekay> And much more... :) 20090815 00:10:25< Crab_> deekay: and make it reappear in the water :)) 20090815 00:10:29< Crab_> deekay: where it should be :) 20090815 00:10:30< deekay> haha 20090815 00:10:31< deekay> :) 20090815 00:10:49-!- Bob_The_Mighty [n=chatzill@cpc3-brig15-0-0-cust460.3-3.cable.virginmedia.com] has joined #wesnoth-dev 20090815 00:12:34-!- xchat_sux [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090815 00:12:44-!- xchat_sux is now known as Elvish_Pillager 20090815 00:12:50-!- shadowmaster_ [n=ignacio@wesnoth/developer/shadowmaster] has quit [Nick collision from services.] 20090815 00:13:24-!- shadowmaster_ [n=ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-dev 20090815 00:13:24< Soliton> deekay: just put more emphasis on water villages. 20090815 00:13:42-!- shadowmaster_ [n=ignacio@wesnoth/developer/shadowmaster] has quit [Client Quit] 20090815 00:14:12< deekay> Soliton: I'll try :) 20090815 00:14:27< Soliton> since there are none in random maps water units are pretty much never useful there. 20090815 00:14:40< Crab_> deekay: one idea that'm having, is to make code to ai to formulate and describe its 'opening strategy' 20090815 00:15:00-!- noy_ [n=noy@wesnoth/developer/noy] has quit [Client Quit] 20090815 00:15:06< Crab_> Soliton: well, there are water villages in random maps 20090815 00:15:07< Soliton> and if you want to get fancy check connected water bodies and if they're in the combat zone you project. 20090815 00:15:25< Soliton> Crab_: ok, i wasn't sure. 20090815 00:15:33-!- noy_ [n=noy@24.114.236.37] has joined #wesnoth-dev 20090815 00:15:38< Soliton> they seem to be very rare. 20090815 00:15:40< Crab_> Soliton: looking at one atm 20090815 00:15:49< Crab_> Soliton: 1/39 are water on this map... 20090815 00:15:56< Soliton> oh, right i took one. :-P 20090815 00:16:29< deekay> So fish was right choice!1111!!1 20090815 00:16:30< deekay> ;p 20090815 00:16:56< Soliton> the fish from this game will never see water. 20090815 00:17:03< deekay> haha 20090815 00:17:15< deekay> But it did advance 20090815 00:18:07< loonycyborg> Only due to my suicidal tendencies :P 20090815 00:18:40< deekay> ;) 20090815 00:18:42< loonycyborg> And because cavalry is vulerable to weapons the fish used.. 20090815 00:18:47< deekay> Yes 20090815 00:19:10< deekay> AI proved that fish is best against cavalery on open terrain and in the forest :) 20090815 00:19:37-!- Sirp [n=user@wesnoth/developer/dave] has quit [Read error: 113 (No route to host)] 20090815 00:20:12 * deekay stops fooling around with stupid jokes before other people leave ;) 20090815 00:21:00< noy_> Really dk? I'll have to do that for my next clash map 20090815 00:21:36< deekay> noy: Yes, AI recruited fish to fight on grass, forest and hills, and managed to lvlup it 20090815 00:23:16-!- noy [n=Noy@wesnoth/developer/noy] has quit [Success] 20090815 00:23:17-!- noy_ is now known as noy 20090815 00:27:10-!- stikonas [n=and@wesnoth/translator/stikonas] has quit [Read error: 60 (Operation timed out)] 20090815 00:27:33< Sapient> well, I have seen some human players do that 20090815 00:29:12-!- Elvish_Pillage2 [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 110 (Connection timed out)] 20090815 00:34:10-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090815 00:35:53-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090815 00:36:08-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090815 00:37:35-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has quit [Read error: 113 (No route to host)] 20090815 00:44:03< Crab_> deekay: btw, leaders are too passive... 20090815 00:44:34< deekay> Crab_: Prolly thanks to that red didn't suicide at turn 6 ;) 20090815 00:44:43< deekay> When he could overpower us with leader 20090815 00:44:51< Crab_> deekay: no, he was not in range 20090815 00:44:57< Crab_> deekay: he was 1hex away 20090815 00:45:01< deekay> oh 20090815 00:45:02-!- noy [n=noy@wesnoth/developer/noy] has quit ["Get Colloquy for iPhone! http://mobile.colloquy.info"] 20090815 00:45:04< deekay> That's too bad 20090815 00:45:05< deekay> :) 20090815 00:45:19< Crab_> deekay: well, he survived exactly 1 turn of combat :) 20090815 00:45:24< deekay> hehe 20090815 00:46:13-!- Sirp [n=user@wesnoth/developer/dave] has joined #wesnoth-dev 20090815 00:49:07-!- noy [n=noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090815 00:58:05-!- noy [n=noy@wesnoth/developer/noy] has quit ["Get Colloquy for iPhone! http://mobile.colloquy.info"] 20090815 01:05:55-!- BenUrban [n=benurban@c-68-50-54-86.hsd1.md.comcast.net] has joined #wesnoth-dev 20090815 01:06:14-!- shadowmaster_ [n=ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-dev 20090815 01:06:25-!- shadowmaster_ [n=ignacio@wesnoth/developer/shadowmaster] has quit [Nick collision from services.] 20090815 01:07:19-!- Bob_The_Mighty [n=chatzill@cpc3-brig15-0-0-cust460.3-3.cable.virginmedia.com] has quit ["ChatZilla 0.9.85 [Firefox 3.0.13/2009073022]"] 20090815 01:10:27-!- Sapient [n=patrickp@wesnoth/developer/sapient] has left #wesnoth-dev [] 20090815 01:10:41-!- busfahrer` [n=busfahre@ulmg-5f70c37f.pool.einsundeins.de] has joined #wesnoth-dev 20090815 01:19:26-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit [Read error: 145 (Connection timed out)] 20090815 01:28:57-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has joined #wesnoth-dev 20090815 01:28:57< shadowmaster> ilor: you implemented the toggle option to keep scrolling when the mouse leaves the window? 20090815 01:29:12< ilor> shadowmaster: posibly 20090815 01:29:20< ilor> s/s/ss/ :P 20090815 01:31:58< ilor> shadowmaster: what about it? 20090815 01:32:29< shadowmaster> oh yes, you did. r30918 20090815 01:32:39< shadowmaster> you've got a friend: http://www.wesnoth.org/forum/viewtopic.php?f=6&t=26666 20090815 01:32:43< shadowmaster> * new friend, I mean 20090815 01:33:17< ilor> yay :) 20090815 01:33:25-!- busfahrer` [n=busfahre@ulmg-5f70c37f.pool.einsundeins.de] has quit ["leaving"] 20090815 01:34:12< shadowmaster> I'm a bit annoyed by how the editor treats terrains that exist in more than one add-on 20090815 01:35:20< shadowmaster> at the moment, if say, add-on A defines terrain Foo, and add-on B does too, both with a different editor_group (wesnoth-A and wesnoth-B respectively, note the lphabetical order)... 20090815 01:35:55< shadowmaster> terrain Foo will appear in the aplette for group wesnoth-A twice, and zero times on the wesnoth-B palette 20090815 01:36:28< shadowmaster> which becomes even more annoying since my two add-ons define a terrain that already exists in UtBS 20090815 01:36:31< ilor> shadowmaster: sounds like a bug 20090815 01:36:34< shadowmaster> *redefine 20090815 01:36:43< shadowmaster> yeah, obviously it is a bug :P 20090815 01:37:04< ilor> definitely does not sound like the intended behavior ;) 20090815 01:37:05< shadowmaster> one of those "hard to report" bugs 20090815 01:37:17< ilor> shadowmaster: why, you just did 20090815 01:37:25< shadowmaster> ah. 20090815 01:38:13< shadowmaster> this has affected 1.5 and 1.6 since as long as I remember 20090815 01:38:22< shadowmaster> of course 1.7 too. 20090815 01:39:52< ilor> shadowmaster: care to point me to an addon that does that in 1.7? 20090815 01:41:43< shadowmaster> none that has been published. Both of them are stuck in the wesnoth-umc-dev SVN repository until I get them in shape for the audiences. 20090815 01:41:54< shadowmaster> I can give you a svn url however 20090815 01:42:58< ilor> shadowmaster: in essence we end up with two [terrain] tags with the same id, correct? 20090815 01:43:27< shadowmaster> [terrain_type], yes exactly 20090815 01:43:41< shadowmaster> I didn't notice they had an id= until now :/ 20090815 01:44:38< ilor> well, id, terrain code, whatever 20090815 01:44:40-!- thespaceinvader [n=chatzill@wesnoth/artist/thespaceinvader] has quit ["night all"] 20090815 01:46:45-!- Turuk_ [n=Turuk@74.83.233.84] has joined #wesnoth-dev 20090815 01:46:53< shadowmaster> yes, the terrain code is the problem actually 20090815 01:47:03< ilor> shadowmaster: I don't have a fresh build and a compile will take longer than I want to stay awake just now, but I'll fix it tomorrow, likely will require some tweaks to terrain loading code 20090815 01:47:27< shadowmaster> okay 20090815 01:55:16-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090815 01:58:47-!- Chusslove [n=Chusslov@adsl-ppp-2079.yubc.net] has quit [Remote closed the connection] 20090815 01:59:42< deekay> Crab_: Still around? 20090815 01:59:46< Crab_> yes 20090815 01:59:56< deekay> I'm looking at svn testing 20090815 02:00:23< deekay> If I'm interpreting this properly seems that rebels vs northeners improved 20090815 02:01:05< deekay> For rebels side 20090815 02:01:58< Crab_> yes 20090815 02:02:42< Crab_> it is 'formula rebels (side 1) vs undead (side 2) : 50%, formula rebels (side 2) vs undead (side 1): 91.7% 20090815 02:03:04< deekay> looks nice 20090815 02:03:32< Crab_> deekay: I can make a report of 'what improved what not', if you want 20090815 02:03:42< deekay> Crab_: Could be great help 20090815 02:04:11< Crab_> it'll take a few mins.. 20090815 02:04:28< deekay> Sure, no rush 20090815 02:04:31< Soliton> rebels smash undead with the new recruiting? 20090815 02:04:36< Crab_> Soliton: yes 20090815 02:04:50< Crab_> 11/12 games when rebels were side 2 20090815 02:04:59< Soliton> cool. against undead recruiting is actually pretty crucial. 20090815 02:05:43< Soliton> how are they doing against drakes? 20090815 02:06:44< Crab_> Soliton: http://wesnoth.terraninfo.net/index.php?dim1=ai_ident_me&dim2=faction_me&dim3=faction_enemy&dim4=my_side&dim5=&dim6=&dim7=&dim8=&dim9=&dim10=&dim11=&dim12=&dim13=&dim14=&dim15=&dim16=&dim17=&dim18=&dim19=&dim20=&latest_svn_only=yes&filter_svn_release=0 20090815 02:07:22< Crab_> which ai - playing as -playing vs - playing as side (1 or 2 ) -win % 20090815 02:07:41-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit ["Zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"] 20090815 02:08:11< Soliton> what do you mean which AI? both sides are played by the same AI? 20090815 02:08:21-!- loonybot [n=loonybot@wesnoth/bot/loonybot] has quit [Remote closed the connection] 20090815 02:08:31< Crab_> which ai config 20090815 02:08:35< Crab_> 'default' is ai_default 20090815 02:08:48< Soliton> well, there are two sides. 20090815 02:08:49< Crab_> 'formula' is ai_default+ Dragonking's recruitment 20090815 02:09:02< Crab_> one of the sides is 'default', another is 'formula' 20090815 02:09:16< deekay> Sirp: You may be interested too ^ 20090815 02:09:22< Sirp> deekay: ? 20090815 02:09:57< deekay> Sirp: Data about formula AI vs default AI 20090815 02:10:14< CIA-62> dragonking * r37753 /trunk/src/ (formula_function.cpp variant.cpp variant.hpp): New formula functions: as_decimal, ceil, floor, round 20090815 02:10:17< Soliton> Crab_: can you filter by which AI and which faction? 20090815 02:10:24< Sirp> deekay: ahhh 20090815 02:10:50< Soliton> Crab_: as in actually specifying an AI and faction for one side. 20090815 02:10:53< Crab_> Soliton: no, hasn't bothered to add filters yet, but all the data (per-ai and per-faction) is shown 20090815 02:11:24< Crab_> and the grouping order can be changed 20090815 02:12:09< Sirp> deekay: so am I to understand that default AI vs formula AI is a 43-53 split? 20090815 02:12:44< Crab_> Sirp: yes, after 750+ games. 20090815 02:13:24< Sirp> okay, cool. 20090815 02:13:35< Sirp> so how much does this formula AI fall back to the default AI 20090815 02:13:36< Sirp> ? 20090815 02:13:49< deekay> All the time 20090815 02:13:49< Crab_> Sirp: it is default ai vs default ai. 20090815 02:13:57< Crab_> Sirp: the part which is differs is recruitment 20090815 02:14:05< Sirp> okay, so recruitment is the only difference. 20090815 02:14:28< Soliton> seems like the rebels gain a lot since i thought usually they ai plays them rather badly. 20090815 02:14:37< deekay> Soliton: Yes 20090815 02:14:38< Soliton> s/they/the/ 20090815 02:14:41< deekay> Seems to 20090815 02:14:46< Sirp> I think getting a +10% from changing recruitment is quite good. :) 20090815 02:14:56< Soliton> indeed. 20090815 02:15:06< Sirp> so, brainstorming question: I think this approach of just doing recruitment and focusing on that is a good one.... 20090815 02:15:21< Sirp> if we wanted to try to devour one more aspect, does anyone have any ideas of what would be a good target? 20090815 02:15:35< deekay> Sirp: Stategic part 20090815 02:15:40< Soliton> better leader movement? 20090815 02:15:43< deekay> Where to fight, how to act 20090815 02:16:01< Crab_> 'strategic planning of first turns' 20090815 02:16:11< Sirp> deekay: okay so leave *attacking* and tactics to the default AI, but modify strategic direction? 20090815 02:16:31< Soliton> how do you give default ai strategic directions? 20090815 02:16:40< Crab_> e.g. "there are N players, M teams, their starting gold is known. What shall we do ?" 20090815 02:16:42< Sirp> leader movement could be good. 20090815 02:16:54< Soliton> do the moves except for attacks? 20090815 02:16:59< Sirp> what about an opening AI that I will call an "out of range AI" 20090815 02:17:17< Sirp> i.e. an AI that does moves for the early parts of the game when the AI is out of enemy range. 20090815 02:17:18< Crab_> Soliton: no, decide ' whom to kill first ' :) 20090815 02:17:38< Crab_> Soliton: and moving/recruiting to that effect 20090815 02:17:42< Soliton> doesn't sound very strategic. 20090815 02:17:53< Soliton> unless you mean a whole side. 20090815 02:18:07< Crab_> Soliton: the whole team - several sides. 20090815 02:19:14< Sirp> though actually I still like a modified version of the idea I proposed in the forums a while ago 20090815 02:19:21< Soliton> i think improving leader movement could easily lead to noticable results depending on how many losses there are because of fatal leader moves. (which i suspect there are still a lot) 20090815 02:19:29< Crab_> Sirp: can you post a link ? 20090815 02:19:38< deekay> Soliton: That is also good idea 20090815 02:20:08< Crab_> Soliton: well, when we played, the leaders generally stayed still on their keep, expect at the very beginning (to grab a village) and the very end (to retreat to heal) 20090815 02:20:26< Crab_> Soliton: the only part which definitly needs improvement is keep relocation. 20090815 02:20:38< Soliton> Crab_: put a unit he can kill outside of his keep and see what happens. 20090815 02:20:56< Crab_> Soliton: he (most certanly) won't try to kill it 20090815 02:21:10< Soliton> well, he used to. 20090815 02:21:39< Sirp> Crab_: I can, but it might be better for me to re-describe, since my idea has evolved somewhat. 20090815 02:21:44< Crab_> Sirp: ok 20090815 02:23:45< Sirp> Crab_: I'm going to write up a short description 20090815 02:31:09-!- shadowmaster is now known as patchpatch 20090815 02:33:34-!- ilor [n=user@wesnoth/developer/ilor] has quit [Read error: 113 (No route to host)] 20090815 02:36:08< corn> Crab_: I am considering building an experimental AI that relies completely on emergent behavior after gsoc. where can I find fai documentation? 20090815 02:36:43< Crab_> corn: wiki, Dragonking, me, source :) 20090815 02:37:25< Crab_> corn: http://www.wesnoth.org/wiki/Ai_Module http://www.wesnoth.org/wiki/FormulaAI http://www.wesnoth.org/wiki/FormulaAI_Functions 20090815 02:37:44< Crab_> corn: source is src/ai/formula/ai.?pp 20090815 02:38:19< corn> ah, looking at formulaAI page 20090815 02:39:17< corn> question: is the AI evaluated from the perspective of a player controller or individually run per-unit after the unit has spawned 20090815 02:39:36< Sirp> Crab_, deekay, Soliton, anyone else interested: http://pastebin.com/m280f4d02 20090815 02:39:44< Crab_> corn: ai has an entry point, ai::interface::play_turn 20090815 02:40:09< Crab_> corn: base ai is a composite ai, it's play_turn is 'for each stage, stage->play_stage() ' 20090815 02:40:17< Sirp> my new AI design idea. 20090815 02:40:45< Sirp> more of an "AI framework" -- or "how to make the formula AI more usable" 20090815 02:44:21< corn> Sirp: would eval() be operating on a particular candidate move or a set of all the candidate moves (in order) that you would make during a turn 20090815 02:44:23< Crab_> Sirp: when I've talked with boucman, we've talked about evaluating a move by asking a list of evaluators 'how good the move is?'. Basically, about representing the eval function as a sum of individual component 'scores' 20090815 02:44:46 * deekay recall this duscussion 20090815 02:45:06< Sirp> corn: eval() would be operating on a *position* which is a result of making a candidate move for EVERY unit that can move. 20090815 02:45:24< corn> ah 20090815 02:45:42< Sirp> Crab_: but the big problem is that a single move of one unit doesn't stand on its own. The problem with the AI (and a hard problem for AI in general) is making units co-ordinate movement. 20090815 02:46:17< Sirp> so my idea is to have a way to provide an eval() function where you evaluate an entire position, and then try to find the way to move your entire army to the best position for the army, not just each individual unit to the best position for that unit. 20090815 02:46:24< Crab_> Sirp: I was mainly talking about 'EVAL = sum (eval of aspect)' idea 20090815 02:46:54< Crab_> Sirp: e.g. making a group of evaluators, asking the to evaluate, then taking a sum of the score 20090815 02:47:26< Crab_> s/the/them 20090815 02:47:27< Sirp> Crab_: okay and what would be an example of a single evaluator? 20090815 02:48:56< Sirp> Crab_: do you mean where each evaluator evaluates an individual unit, or where each evaluator evaluates an 'aspect' of the game (like positioning of units, villages controlled, etc) 20090815 02:49:00< Crab_> Sirp: if we're talking about positions.. for example: 1) 'how much gold per turn will it bring' 2) how much damage enemy will be able to do/take next turn 20090815 02:49:08< Sirp> ahhh 20090815 02:49:09 * Sirp nods 20090815 02:49:13< Sirp> yes I think that works well. 20090815 02:49:27< Crab_> Sirp: not always ( 20090815 02:49:53< Sirp> Crab_: no, not always, since sometimes the whole is greater or less than the sum of its parts. 20090815 02:50:10< corn> I want to try an agent-based approach to AI where each unit makes individual decisions 20090815 02:50:23< corn> and maybe there will be emergent group behavior as a result 20090815 02:50:24< Crab_> Sirp: for example, today ai made 3 stupid moves in a row (attacked a heavy infantry with 3 skeletons), just because those attacks scored high because of the 'support' component of the attack evaluation 20090815 02:50:43< deekay> corn: You could use candidate action for single-unit movements 20090815 02:51:09< Sirp> Crab_: well that can also be simply that the weight of some aspects aren't high enough 20090815 02:51:28< Crab_> Sirp: yes. so, some aspects must be more important than others. 20090815 02:51:33< corn> deekay: ok 20090815 02:52:27< Crab_> corn: look at data/ai/dev/default_ai_testing.cfg for an example of candidate-action-evaluation-loop default ai. 20090815 02:52:35< deekay> corn: Well, you just need to think about what you need and read a bit, It is all described in the wiki :) 20090815 02:52:42< Crab_> deekay: not all :) 20090815 02:52:51< corn> yeah, I am reading it right now 20090815 02:53:34< Crab_> Sirp: ok, about 'candidate_moves' function.. 20090815 02:54:01< Crab_> Sirp: currently, we have one such function - default ai attack analysis - which returns a vector 20090815 02:54:11< Sirp> Crab_: yes... 20090815 02:54:52< Crab_> Sirp: we'll need to add a new container to hold the list of any actions, not just attacks (similar to formula_ai callables) 20090815 02:55:25< Sirp> Crab_: yes. 20090815 02:55:39< Crab_> Sirp: should this container be linear or tree-like ? 20090815 02:56:07< Crab_> Sirp: e.g. "I think that doing A and then if it hits>=2 times, doing B, is a very good idea" 20090815 02:56:26< Sirp> Crab_: my idea is for it to be linear. If you have N units, each of your units is ordered (probably by location). So then you have a vector of moves. 20090815 02:56:50< Crab_> Sirp: what about backstab/leadership ? 20090815 02:56:50< Sirp> Crab_: oh, no my idea definitely doesn't involve any kind of 'if' like that 20090815 02:57:13< Crab_> Sirp: the order of moves matters in them.. 20090815 03:00:37< Crab_> Sirp: do you have any ideas on 'locality' concepts ? i.e. evaluating a small part of position to save speed ? 20090815 03:00:59< deekay> ok, really time for me to sleep... 20090815 03:01:05< deekay> good bye everyone 20090815 03:01:44< Sirp> Crab_: the order of moves only matters if you attack 20090815 03:02:49< Crab_> Sirp: so, you want to use this only for 'where to move when no enemy is near' ai part ? 20090815 03:03:06-!- ancestral [n=ancestra@97-116-126-165.mpls.qwest.net] has joined #wesnoth-dev 20090815 03:03:07< Sirp> Crab_: no. I think it can be used for attacking too. 20090815 03:04:00< Sirp> Crab_: this is how it would work: there would be a struct which would describe a unit's moves like this: struct UnitMove { location dst; location attack; }; -- if you have a unit 'dst' represents where it'll move, 'attack' represents the hex it will attack. Either member can be invalid/null 20090815 03:04:55< Sirp> now the function which is responsible for determining the set of moves will return a vector. The size of this vector will be equal to the number of units you have that can move. The first member corresponding to the first unit, second to the second unit, etc. 20090815 03:06:26-!- Elvish_Pillager [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 110 (Connection timed out)] 20090815 03:06:28< Sirp> The way that it will determine this vector of moves is by using a monte carlo method to select combinations of moves to try. It will try these moves, and then propose the resulting position to the eval() function and choose the best it can find. 20090815 03:06:47< Crab_> Sirp: I think that it will be interesting to try this for movement-without-enemy-near first. 20090815 03:07:08< Sirp> now if the moves involve attacks, the algorithm will make up several possible results, and propose each of them to eval(), and will weight them and come up with an approximation 20090815 03:07:22< Sirp> Crab_: movement-without-enemy-near is certainly a little less ambitious. :) 20090815 03:07:28< Crab_> Sirp: well, IMO, attacking requires branching... 20090815 03:07:39< Soliton> it's what the ai is weakest though. 20090815 03:07:42< Crab_> Sirp: we can try without attacks first, and, if it works, it could replace default ai 'move to targets' part, which is dawn slow... 20090815 03:07:48-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has quit [Remote closed the connection] 20090815 03:08:03< Sirp> Soliton: what is what the AI is weakest at? 20090815 03:08:15< Soliton> sorry s/what/where/ 20090815 03:08:25< Soliton> =moving without attacking 20090815 03:08:31< Sirp> Soliton: okay, I agree. 20090815 03:08:38< Soliton> i.e. getting the right units in position. 20090815 03:09:27< Sirp> now there is also a step before that: if we want to bite off the smallest chunk possible it could be moving when the enemy won't be able to attack us after our move. 20090815 03:09:39< Sirp> i.e. usually the very very opening of the game 20090815 03:09:40< Crab_> Sirp: does that 'getting to position' require some strategic decisions to be made at start (i.e. before recruitment) ? 20090815 03:10:16< Soliton> if you want to evaluate all positions, no. 20090815 03:10:39< Crab_> Soliton: well, first turn recruitment is partly determined by 'where we will fight ? what we will try to do ?" 20090815 03:11:09< Soliton> that needs to be covered by the eval function. 20090815 03:12:15< Soliton> strategic decisions could prune a lot of positions though, of course. 20090815 03:12:24< Crab_> Soliton: not fully. we were talking about evaluation of positions... 20090815 03:12:37< Crab_> Soliton: but, strategic decisions do not talk about game positions as such 20090815 03:12:47< Crab_> Soliton: for example 'at what keep will my leader recruit ?' 20090815 03:13:09< Soliton> how does that not result in a position? 20090815 03:13:44< Crab_> Soliton: too many unknown variables 20090815 03:14:20< Crab_> Soliton: so, a generic 'position evaluator' will not be able to evaluate that 'position' 20090815 03:14:27< Soliton> a large number of positions is still a number of positions you can evaluate. 20090815 03:14:58< Crab_> Soliton: e.g. 'my leader with 300gp is on the central keep, dwarves with 100 gp are on the right, drakes with 100gp are on the left, please evaluate this position' 20090815 03:15:12< Sirp> personally I think that if we want to make a decision like "at what keep will my leader recruit?" we need the scenario designer to plug that decision in. Making it dynamically I think is too difficult. 20090815 03:15:27< Crab_> Sirp: for multiplayer team-vs-team ? 20090815 03:16:04< Sirp> for multiplayer team-vs-team I don't think it's really a feasible decision for an AI to make well and consistently 20090815 03:16:15< Soliton> if we can define combat zones i don't think it's that difficult. 20090815 03:16:32< Sirp> mmmmmm I'm still doubtful 20090815 03:16:41< Crab_> Sirp: DK has done some work about defining combat zones already.. 20090815 03:16:48< Soliton> if the AI sees there is another keep nearer combat zone and it can get there without crossing any combat zones it can safely make that move. 20090815 03:16:50< Crab_> Sirp: so, it can be at least 'tried' 20090815 03:17:11< Soliton> like one ally in the back of another with nothing behind. 20090815 03:17:58< Crab_> Soliton: or, what about the strategic decision 'whom will we try to kill - dwarves (to the right) or drakes (to the left) ?;' 20090815 03:18:11< Crab_> Soliton: generic position evaluator will not be able to say anything about this, as well 20090815 03:19:01< Soliton> i don't really see how it can not. 20090815 03:19:18< CIA-62> cornmander * r37754 /website/stats.wesnoth.org/wesstats/ (controllers/killview.py templates/killview.html): 20090815 03:19:18< CIA-62> Finished filter support for columns from the KILLMAPS table. A JOIN still needs to be done to add filter support for columns from the 20090815 03:19:18< CIA-62> GAMES/GAMES_MP table. 20090815 03:20:24< Soliton> a generic position evaluator evaluates any position. whether it does a good job at those specific decisions or not is of course a different question. 20090815 03:20:50< Crab_> Soliton: by evaluating, what does it say about a position ? 20090815 03:20:58< Soliton> i agree that that is better handled differently. 20090815 03:21:03< Soliton> good or bad. 20090815 03:21:18< Soliton> or rather better or worse. 20090815 03:21:28< Crab_> Soliton: then how it will answer the question 'whom will we try to kill - dwarves (to the right) or drakes (to the left) ?;' ? 20090815 03:21:36< Crab_> Soliton: as current position is a 'start position' 20090815 03:21:49< Sirp> Crab_: I'm not against trying it......I just cautious against being too ambitious. :) 20090815 03:21:50< Crab_> Soliton: it can say, if the start position is 'good or bad', yes 20090815 03:22:05< Crab_> Soliton: but the question which is asked is a bit special. 20090815 03:22:32< Crab_> Soliton: as it is asked about an undefined set of 'future' positions 20090815 03:22:48< Soliton> well, if you really mean answer the question for a multi-turn strategy asked of a position evaluator.. 20090815 03:22:59< Crab_> Soliton: no, it doesn't need to be multiturn 20090815 03:23:00< Soliton> then obviously that's not what it's for. 20090815 03:23:19< Soliton> killing a whole side sounds multi-turn to me. 20090815 03:23:31< Soliton> if it's not then i don't see the problem. 20090815 03:23:31< Crab_> Soliton: but, 1st turn recruitment wants to know 'whom we are going to attack and where shall we fight ?' 20090815 03:23:46< Crab_> Soliton: so, at turn 1, we need to somewhat pick the strategy 20090815 03:24:02< Crab_> we can change it later, but 1st turn recruitment wants to know now.. 20090815 03:24:22< Soliton> well, i don't really understand what you're getting at. 20090815 03:24:54< Crab_> Soliton: I'm saying that, in addition to 'generic' position evaluator, some special position evaluator will be needed, too. 20090815 03:25:21< Soliton> it'd be nice, sure. 20090815 03:25:33< Soliton> i don't see how it's needed. 20090815 03:25:45< Soliton> anyway, i don't really care. 20090815 03:25:50< Crab_> for example, a special position evaluator which takes a keep location, and says "how good this keep is for our leader" 20090815 03:26:21< Crab_> or, a special position evaluator which takes a side/choke point, and says, how much we need to kill that side / control this choke point 20090815 03:26:36< Crab_> or, a special position evaluator which takes a village and says, how much we need this village 20090815 03:27:19< Crab_> Sirp: what do you think about it? 20090815 03:29:03< Soliton> sounds to me like that is all covered in the eval function. 20090815 03:29:04< Sirp> Crab_: I am very much in favor of having an AI like that with lots of different components 20090815 03:29:16< Soliton> you have to aggregate all those evaluations in the end. 20090815 03:29:32< Sirp> Soliton: it really is, under my design. However splitting up like that is a good idea, from the point of view that then someone can just modify some evaluators 20090815 03:29:58< Soliton> true. 20090815 03:30:34< Sirp> Soliton: I also don't think everyone is quite sold on my design yet. ;) which is probably fair. 20090815 03:30:37< Crab_> splitting also allows to have separate aspects which depend only on some of the evaluator components 20090815 03:30:52< Soliton> Sirp: i'm sold when it beats me! 20090815 03:31:32< Crab_> for example, 'formula_ai recruitment' already depends on 'determination of combat zones' 20090815 03:31:55< Sirp> I think having recruitment as a different component is already good. 20090815 03:32:04< Crab_> and, lots of default_ai parts depend on power_projection 20090815 03:33:41< Soliton> i think there is no way past some eval funtion that evaluates positions to one score. 20090815 03:33:44< Crab_> also, having multiple evaluators solves the problem of 'global' modificators, such as aggression and caution which are hard to tune. 20090815 03:33:58< Soliton> and the monte carlo approach sounds like a good idea as well. 20090815 03:34:04< Crab_> Soliton: yes 20090815 03:34:47< Soliton> also nicely provides replay value. 20090815 03:35:48< Soliton> until wesnoth is solved. ;-) 20090815 03:35:56< Crab_> i.e. ai doing different mistakes all the time :) 20090815 03:50:59< Crab_> still not too many results of formula ai recruitment, but, most improved matchups include: Rebels (side1) vs Northerners, Loyalists (side1) vs Drakes, Loyalists (side1) vs Knalga, Rebels (side1) vs Loyalists, Rebels (side1) vs Knalga, Rebels (side1) vs Undead, Loyalists (side1) vs Northerners, Loyalists (side1) vs Knalga 20090815 03:51:32< CIA-62> cornmander * r37755 /website/stats.wesnoth.org/ (4 files in 2 dirs): Added support for filtering by level range in killmaps. 20090815 03:51:40-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit ["WRYYYYYYYYYYYYYYYYYYYY!"] 20090815 03:52:53< corn> Crab_: that reminds me... after 1.7.3 is released I will be updating the upload_log format again so that end-game results will be stored (which side wins) 20090815 03:52:55< Crab_> by 'improved matchup' I consider 'new recruitment is playing vs old recruitment, and fares better than the old-vs-old in the same matchup. 20090815 03:53:21< corn> so your AI logging will finally be 'merged' with my work, only around 2 months after I said I would do it :) 20090815 03:53:36< Crab_> :) 20090815 03:54:12< Crab_> corn: note that for ai logging, logging svn release and ai identifiers is very important 20090815 03:54:20< Crab_> (for ai-vs-ai) 20090815 03:54:46< corn> ok, neither are being logged right now but I can make that happen 20090815 03:55:39< corn> right now I have two tables for general game info logging, GAMES (for singleplayer games) and GAMES_MP (for multiplayer)... I will just create GAMES_MP_AI with all the columns that you will need 20090815 03:55:44< Crab_> corn: note that svn release has several parts 20090815 03:55:46< Crab_> e.g. 11111M 20090815 03:55:53< corn> ? 20090815 03:56:01< corn> why not just store r35671 or whatever 20090815 03:56:02-!- patchpatch is now known as shadowmaster 20090815 03:56:16< Crab_> corn: you can just store 35671 20090815 03:56:20< corn> yes 20090815 03:56:32< Crab_> corn: I'm just noting that it *is not* a number, so you'll have to parse that number 20090815 03:56:37< corn> ah 20090815 03:56:42< corn> ok 20090815 03:56:48< Crab_> for example, I'm now running 37720LM 20090815 03:56:57< corn> LM? 20090815 03:57:03< Crab_> yes 20090815 03:57:57< corn> is the revision number stored somewhere in wesnoth as a variable? I want to look at it 20090815 03:58:08< shadowmaster> L: local commits. M: local modifications, not committed 20090815 03:58:15< shadowmaster> of course, this is for git-svn trees 20090815 03:58:44< Crab_> corn: see src/revision.hpp 20090815 03:59:06< corn> ah 20090815 03:59:21< corn> it will also probably be good to store a user-defined AI version number 20090815 03:59:32< corn> since an SVN revision does not necessarily correlate to any AI changes 20090815 03:59:55< Crab_> corn: even better, store a 'id of the test run' 20090815 04:00:12< corn> well, right now all games are uniquely identified by a game_id 20090815 04:00:19< Crab_> corn: since each test run takes several days, they can be named by hand 20090815 04:00:27< corn> ah, I see 20090815 04:00:34< Crab_> corn: no, i mean an arbitrary string passed to wesnoth as a parameter 20090815 04:00:35< corn> also, there is already filtering by date ranges 20090815 04:00:38< corn> ok 20090815 04:01:02< Crab_> e.g. "fai_vs_default_test_with_aggression=0.5" 20090815 04:01:12< corn> yes, I understood 20090815 04:02:30< corn> ok. this will be what I will work on next week along with a refactor of attack::attack() that I have put off 20090815 04:04:11-!- ancestral [n=ancestra@97-116-126-165.mpls.qwest.net] has quit [] 20090815 04:07:54< Crab_> good night, then 20090815 04:11:08< corn> night 20090815 04:11:15-!- Crab_ [n=Crab_@wesnoth/developer/crab] has quit ["Leaving."] 20090815 04:24:54-!- ancestral [n=ancestra@97-116-126-165.mpls.qwest.net] has joined #wesnoth-dev 20090815 04:40:23-!- ABCD_ [n=ABCD@gentoo/contributor/abcd] has joined #wesnoth-dev 20090815 04:40:31-!- ABCD [n=ABCD@gentoo/contributor/abcd] has quit [Read error: 104 (Connection reset by peer)] 20090815 04:43:37-!- Ivanovic_ [n=ivanovic@dtmd-4db2b862.pool.einsundeins.de] has joined #wesnoth-dev 20090815 04:45:44-!- ABCD_ [n=ABCD@gentoo/contributor/abcd] has quit [Read error: 104 (Connection reset by peer)] 20090815 04:46:15-!- ABCD [n=ABCD@gentoo/contributor/abcd] has joined #wesnoth-dev 20090815 04:52:15-!- ancestral [n=ancestra@97-116-126-165.mpls.qwest.net] has quit ["And that’s the end of THAT chapter."] 20090815 05:00:51-!- Ivanovic [n=ivanovic@wesnoth/developer/ivanovic] has quit [Read error: 110 (Connection timed out)] 20090815 05:01:35-!- Ivanovic_ is now known as Ivanovic 20090815 05:41:12-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit [No route to host] 20090815 05:55:20-!- crimson_penguin [n=ben@64.201.60.211] has joined #wesnoth-dev 20090815 06:25:36-!- crimson_pinvin [n=ben@64.201.60.211] has joined #wesnoth-dev 20090815 06:39:57-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090815 06:40:14-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit [Success] 20090815 06:45:22-!- allefant_ [n=allefant@allegro/developer/allefant] has joined #wesnoth-dev 20090815 06:46:59-!- allefant [n=allefant@allegro/developer/allefant] has quit [Read error: 110 (Connection timed out)] 20090815 06:50:44-!- crimson_pinvin [n=ben@64.201.60.211] has quit [Read error: 110 (Connection timed out)] 20090815 07:00:07-!- [Relic] [n=[Relic]@99-58-54-211.lightspeed.milwwi.sbcglobal.net] has quit ["Leaving"] 20090815 07:28:08-!- Doppp [n=Doppp@unaffiliated/doppp] has quit [Connection timed out] 20090815 07:29:49-!- silene [n=plouf@AMarseille-251-1-77-133.w83-205.abo.wanadoo.fr] has joined #wesnoth-dev 20090815 07:47:13-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090815 08:29:34-!- ilor_ [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090815 08:37:39-!- dfranke [i=dfranke@wesnoth/developer/dfranke] has joined #wesnoth-dev 20090815 08:41:16-!- ilor [n=user@wesnoth/developer/ilor] has quit [Read error: 110 (Connection timed out)] 20090815 08:45:34-!- stikonas [n=and@ctv-213-164-121-103.vinita.lt] has joined #wesnoth-dev 20090815 08:51:28-!- Sirp [n=user@wesnoth/developer/dave] has quit [Read error: 113 (No route to host)] 20090815 09:10:52-!- Doppp [n=Doppp@c-67-171-96-240.hsd1.pa.comcast.net] has joined #wesnoth-dev 20090815 09:16:43-!- stikonas [n=and@wesnoth/translator/stikonas] has quit [Read error: 110 (Connection timed out)] 20090815 09:21:53-!- Chusslove [n=Chusslov@adsl-ppp-2079.yubc.net] has joined #wesnoth-dev 20090815 09:27:11-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has quit [Read error: 113 (No route to host)] 20090815 09:39:39-!- zookeeper [n=l@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20090815 09:47:26< ilor_> Dragonking: is C99 (and not standard C++ apparently). Also, MSVC barfs on it. 20090815 09:50:52< silene> ilor_: have you tried with instead? 20090815 09:51:04< ilor_> silene: yup, same deal 20090815 09:51:23< silene> what about ? 20090815 09:51:40< ilor_> trying boost/stdint.hpp 20090815 09:52:22< silene> does that even exist? 20090815 09:52:54< ilor_> sorry, boost/cstdint.hpp 20090815 09:52:59< ilor_> http://www.boost.org/doc/libs/1_37_0/boost/cstdint.hpp 20090815 09:53:10< ilor_> (also present in earlier versions) 20090815 09:54:15< ilor_> silene: cstddef is present but does not define int64_t 20090815 09:56:15< ilor_> silene: #include using boost::int64_t; works 20090815 09:57:14< silene> it's a bit ugly; is int64_t really needed? 20090815 09:57:57< silene> i see, it's just so that fp arithmetic is not used; not sure i approve... 20090815 09:58:54< ilor_> silene: our code uses plain "long long" already, maybe just use that? 20090815 09:59:23< silene> yes, please 20090815 10:00:13< CIA-62> silene * r37756 /trunk/src/ (game_events.cpp game_events.hpp): Exported event finalization. 20090815 10:00:23< CIA-62> silene * r37757 /trunk/src/scripting/lua.cpp: Added error messages to chat window. 20090815 10:00:27< CIA-62> silene * r37758 /trunk/src/menu_events.cpp: Ensured events registered on command line are taken into account. 20090815 10:00:33< CIA-62> silene * r37759 /trunk/src/scripting/lua.cpp: Displayed Lua messages in chat window. Added an optional header to them. 20090815 10:00:37< CIA-62> silene * r37760 /trunk/src/scripting/lua.cpp: Removed undocumented and redundant function. 20090815 10:00:42< CIA-62> silene * r37761 /trunk/src/scripting/lua.cpp: Made prefixed error messages appear as WML errors. 20090815 10:00:48< CIA-62> silene * r37762 /trunk/data/lua/wml-tags.lua: Added some error messages. 20090815 10:08:20< CIA-62> ilor * r37763 /trunk/src/variant.cpp: int64_t -> long long to avoid a MSVC problam or having to include a boost header just for that 20090815 10:09:22< CIA-62> ilor * r37764 /trunk/src/ (ai/composite/engine.cpp ai/default/ai.cpp formula.cpp): avoid '*/ found outside of comment' warnings in msvc 20090815 10:11:50-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has joined #wesnoth-dev 20090815 11:10:59< Ivanovic> moin 20090815 11:13:45< Ivanovic> so how are things looking regarding the release of 1.7.3 tomorrow? 20090815 11:14:01< Ivanovic> anything that might still bomb my plans? 20090815 11:19:08< ilor_> Ivanovic: I need to write some stuff in release notes and the changelogs but otherwise should be doable 20090815 11:21:37< silene> Ivanovic: seems stable enough to me 20090815 11:21:47-!- mordante [n=mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20090815 11:22:04< mordante> servus 20090815 11:22:07< ilor_> hi mordante 20090815 11:22:18< mordante> hi ilor_ 20090815 11:22:24< Ivanovic> hi mordante 20090815 11:22:32< mordante> hi Ivanovic 20090815 11:22:35< ilor_> mordante: how are the most severe lobby bugs looking? 20090815 11:22:50< mordante> ilor_, bad didn't have too much time this week :-( 20090815 11:23:05< mordante> brb 20090815 11:23:45< ilor_> mordante: I recall one or two your commits fixing the crashes though 20090815 11:24:43< ilor_> shadowmaster: please give me a ref to an addon that triggers the editor palette bug, I copypasted a terrain_type, changed the editor_group and it worked as expected so it must be something more specific 20090815 11:28:20< mordante> ilor_, yes the dynamic cast is ready for testing 20090815 11:28:35< mordante> but the doesn't fit problem is still there :-( 20090815 11:28:53< ilor_> mordante: okay I'll try idling in 1.7 lobby and hopefully I never crash 20090815 11:29:00< mordante> this is a bug I want to tackle soon, but got a bit stuck in the design 20090815 11:29:04< mordante> ilor_, thanks 20090815 11:29:16< ilor_> mordante: and that scrollbar (?) problem 20090815 11:29:33< mordante> for the listbox problem at the start has a known cause, but no solution yet 20090815 11:30:22< mordante> also not sure yet what the best fix would be, guess it needs to call a relayout itself 20090815 11:30:46< ilor_> ah okay, was worried a bit about that one since I stopped being able to reproduce it all of a sudden 20090815 11:30:58< mordante> I also haven't found time to work on that as well 20090815 11:31:07< mordante> RL ate a lot of my time last week 20090815 11:31:22< ilor_> mordante: I can understand that 20090815 11:31:55< mordante> yeah, but it's annoying since I like it fixed and get 1.7.3 ready 20090815 11:32:03< ilor_> right now I have to choose between doing something with Wesnoth or doing something to my desk which is currently in very many pieces waiting to be assembled ;) 20090815 11:32:47< ilor_> mordante: I guess we'll have to add some warnings to release notes wrt the new lobby 20090815 11:33:21< mordante> yes we should do that anyway since it will need a lot of testing 20090815 11:33:50< mordante> I expect it to uncover more gui2 problems, this is one of the trickiest dialogs I can think of 20090815 11:35:10< ilor_> I guess only gui2 game layout would be trickier 20090815 11:35:39< mordante> no it has less dynamic elements 20090815 11:36:32< mordante> it will be tricky in other areas, but I think the MP lobby was expected to be one of the hardest dialogs 20090815 11:37:07< mordante> partly because I wanted to tackle it before the game area, which means a lot of issues for the game area are already tackled there 20090815 11:37:45-!- thespaceinvader [n=chatzill@wesnoth/artist/thespaceinvader] has joined #wesnoth-dev 20090815 11:41:11-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has joined #wesnoth-dev 20090815 11:46:07-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090815 11:46:56-!- Chusslove [n=Chusslov@adsl-ppp-2079.yubc.net] has quit [Remote closed the connection] 20090815 11:51:59-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090815 11:56:48< mordante> Ivanovic, regarding 1.73 I still have the resize blocker bug open and we should add some code so wesnoth remains backwards compatible regarding the drake rename 20090815 12:03:28-!- loonybot [n=loonybot@79.139.138.234] has joined #wesnoth-dev 20090815 12:03:52-!- ilor [n=user@wesnoth/developer/ilor] has quit [Read error: 60 (Operation timed out)] 20090815 12:04:18-!- loonycyborg [n=sergey@79.139.138.234] has joined #wesnoth-dev 20090815 12:04:25-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090815 12:06:42< CIA-62> jetryl * r37765 /trunk/data/core/ (26 files in 2 dirs): Shadow conversion on the peasants, and added an updated bow attack for the woodsman. 20090815 12:07:32< Ivanovic> mordante: the compatibility with the drake rename is not possible 20090815 12:07:36< Ivanovic> because the names were used agaion 20090815 12:07:42< Ivanovic> those were shifting around things 20090815 12:07:58< mordante> O_O 20090815 12:08:15< Ivanovic> correct 20090815 12:08:16< mordante> that was really a stupid idea :-_ 20090815 12:08:20< mordante> :-| 20090815 12:08:25< Ivanovic> that was also realized some time after that change 20090815 12:08:43< mordante> why wasn't that discussed before making the change? 20090815 12:08:45< Ivanovic> at least by those that wanted to add some auto conversation to wmllint 20090815 12:10:00-!- ilor_ [n=user@wesnoth/developer/ilor] has quit [Read error: 113 (No route to host)] 20090815 12:12:10< mordante> and of course there's nothing mentioned in the changelog about it as well :-| 20090815 12:12:44< mordante> do you know who made this change 20090815 12:13:09< Ivanovic> it is mentioned in the RELEASE_NOTES 20090815 12:13:46< mordante> yes, but these get wiped after the release so it will be hard to find when that change occured 20090815 12:13:50< mordante> occurred* 20090815 12:15:16< Ivanovic> that is the change was done by Turuk_ 20090815 12:15:49< Ivanovic> part of the whole mess is in r37259 20090815 12:16:23< mordante> great changelog entry :-| 20090815 12:16:26< Ivanovic> the corresponding changelog entry is "* Updated Drake Clasher, Arbiter and Slasher descriptions." 20090815 12:19:23< mordante> IMO there should be something be done with this mess before the release 20090815 12:19:41< Ivanovic> the question is *what* should be done? 20090815 12:20:01< Ivanovic> (personally i was 100% satisfied with the old names, but maybe that rename stuff makes really sense) 20090815 12:20:13< mordante> at least map Drake Gladiator so it doesn't cause a load error 20090815 12:20:26< mordante> and personally I'm tempted to revert the whole mess 20090815 12:20:47< mordante> I'm seriously pissed that backwards compatibility is so silently broken 20090815 12:21:05< Ivanovic> wesbot: seen Turuk_ 20090815 12:21:06< wesbot> Ivanovic: Queried user Turuk_ is currently (also as Turuk) here and on the channels #wesnoth and #wesnoth-umc-dev. 20090815 12:21:07< Ivanovic> wesbot: seen Turuk 20090815 12:21:09< wesbot> Ivanovic: The person with the nick Turuk last spoke 1d 12h ago. 10h 25m ago was here and on the channels #wesnoth and #wesnoth-umc-dev with the message: Read error: 110 (Connection timed out) 20090815 12:21:18< mordante> when working on the terrain system I took great effort to avoid breaking backwards compatibility 20090815 12:21:44-!- Elvish_Pillager [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090815 12:22:44< mordante> which cost me a lot of extra time, and now we have a trivial change which just drops backwards compatibility without discussion 20090815 12:25:23-!- dfranke [i=dfranke@wesnoth/developer/dfranke] has quit [Success] 20090815 12:26:31-!- dfranke [i=dfranke@wesnoth/developer/dfranke] has joined #wesnoth-dev 20090815 12:48:53-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has quit [Remote closed the connection] 20090815 12:49:12-!- Crab_ [n=Crab_@wesnoth/developer/crab] has joined #wesnoth-dev 20090815 12:52:42-!- Crab_ [n=Crab_@wesnoth/developer/crab] has quit [Client Quit] 20090815 12:54:19-!- Crab_ [n=Crab_@wesnoth/developer/crab] has joined #wesnoth-dev 20090815 13:05:34< noy> mordante Ivanovic he probably didn't realize it 20090815 13:06:18< noy> And I think the decision was a group one too 20090815 13:06:35< mordante> noy might be, but I already asked questions about it earlier this week and didn't get any good reason why it was needed 20090815 13:06:51< noy> I think thats a question more for jetrel 20090815 13:07:07< mordante> noy, it was no group decision, important things _must_ be discussed on the dev-ml 20090815 13:07:08< noy> as him and others wanted greater consistency among the names 20090815 13:07:24< noy> Well I believe it was discussed on the forum 20090815 13:07:26< noy> in the thread there 20090815 13:08:14< mordante> which is not the place to discuss these changes, as said before important things _must_ be on the dev-ml 20090815 13:09:05< mordante> it's no problem to have the initial discussion somewhere else, but the final idea should be on the dev-ml 20090815 13:09:33< mordante> and the changelog entry was also bad, so the commit also went unnoticed 20090815 13:10:09< mordante> I'm not against changing names for a good reason, but I'm against breaking backwards compatibility at a whim 20090815 13:10:24< mordante> it frustrates developers, users and umc creators 20090815 13:10:42-!- Zarel [i=Zarel@warzone2100/developer/Zarel] has quit [Read error: 110 (Connection timed out)] 20090815 13:10:43< noy> mordante: a penny for every time that happens to me. 20090815 13:10:58< mordante> if a user now updates to 1.7.3 and plays a drake campaign it is directly borked 20090815 13:11:17< noy> mordante: annd what drake campaigns might that be? 20090815 13:11:18< mordante> noy, yeah it already happens too often, and I want to reduce that count 20090815 13:11:47< mordante> there are some drake UMC campaigns and several mainline as well 20090815 13:12:07< mordante> TRoW, NR and LoW come directly in mind 20090815 13:12:42< noy> Well just change the names.... 20090815 13:13:09< mordante> try to explain that to the user 20090815 13:13:13< noy> Its not like we haven't done something like this before 20090815 13:13:29< mordante> and who wants to handle the forum and bug reports about it 20090815 13:13:33< noy> *shrugs* more like explain that to Myth or ESR. 20090815 13:13:48< noy> because its really only those two who do the maintaining. 20090815 13:13:54< noy> and one or two others. 20090815 13:14:09< mordante> noy, I _know_ it happened before, but I want to reduce the count 20090815 13:14:24< mordante> this scares away beta testers 20090815 13:14:27< noy> no offense, I don't see why you're getting so up in arms about this. 20090815 13:14:41< noy> yeah I'd like to, but it happens too often. 20090815 13:15:17< noy> Turuk made a mistake, he'll learn from this. 20090815 13:15:27< mordante> why? because I spend a lot of time to always to try preserve backwards compatibility 20090815 13:15:44< mordante> the terrain system took me a lot longer because of it 20090815 13:15:46< noy> Yeah, as I said, this happens from time to time to all of us. 20090815 13:16:03< noy> and its not likely to change. 20090815 13:16:05< mordante> so I get rather pissed if it happens for something trivial like this 20090815 13:16:46< loonycyborg> Be happy that it wasn't backported to 1.6 branch :P 20090815 13:16:57< mordante> no we decided to work harder on backwards compatibility and keep it for at least two releases 20090815 13:17:02< noy> Sure, I also get pissed when decisions are handed to me fait accompli, and all I get when I question them is shrugs. 20090815 13:17:11< mordante> loonycyborg, I'm really pissed and not in the mood for jokes :| 20090815 13:17:15< noy> and comments like "you weren't here for that decision" 20090815 13:17:40< mordante> noy the problem is that the decision hasn't been made in the right place ! 20090815 13:17:54< mordante> it should have been made on the dev-ml 20090815 13:19:00< Ivanovic> so it sounds like a case of: revert the mess, post on the dev-ml about the reversion and the reason for it and ask the ones responsible to redo it with backwards compatibility in mind 20090815 13:19:09< noy> Uh, as you're probably a party to some of the things in the past that happened to me, I'm having a hard time jumping to your defence. 20090815 13:19:29< Ivanovic> *and* with the appropriate discussion on the dev ml before commiting 20090815 13:19:41< mordante> noy like what? 20090815 13:20:18< noy> I can't remember any particular instance, though I do remember at one point not being very pleased by something you did. 20090815 13:21:12< mordante> and had I made that change without mailing to the dev-ml? 20090815 13:22:10< Ivanovic> mordante: like i said, we should probably revert all the commits belonging to this and post to the dev-ml about this issue 20090815 13:22:10< noy> I believe you were a party to the decision but maybe not the implementer. It wasn't on the ML... I wonder what it was. 20090815 13:22:17-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090815 13:22:26< mordante> Ivanovic, agreed 20090815 13:22:32-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090815 13:22:45< Ivanovic> noy: from what i remember mordante has always at least discussed the stuff when he knew that something *might* break 20090815 13:23:09< Ivanovic> and he has done some great steps with the map system (including the border stuff) to keep backwards compatibility all the time 20090815 13:23:23< noy> Yeah, this is a more general issue though. Its nice to get angry about this issue, but it happens to everyone. 20090815 13:23:28< loonycyborg> Is it possible to undo only some of renames so backward compatibility could be maintained? 20090815 13:23:53< Ivanovic> loonycyborg: since we have no idea what is needed, atm everything in those regards should be reverted 20090815 13:24:05< Ivanovic> and later on only the stuff that does not break things should be commited 20090815 13:24:08< mordante> noy, like I said before, I want to reduce the amount of times that happens, preferable to never again 20090815 13:24:55< noy> Again, this was likely more of a error by Turuk than a systemic problem. What I'm talking about is more of a systemic problem. 20090815 13:25:15< mordante> noy, I hope you manage to recall which case you refer to so I can try to avoid it in the future 20090815 13:25:31< noy> I suspect it was more of an administrative decision. 20090815 13:26:27< loonycyborg> Even if you try to maintain backwards compatibility, you're still a human and some errors are unavoidable. That's why there's a stable branch :P 20090815 13:26:56< mordante> loonycyborg, true, but if an error has been made we should try to fix it and not shrug and move on 20090815 13:27:18< mordante> and if possible before a release 20090815 13:27:21< noy> In any case things often get decided with limited discussion and no ML post. 20090815 13:27:31< mordante> once 1.7.3 has been released it can't be fixed anymore 20090815 13:28:07< mordante> noy, which annoys me rather often 20090815 13:29:54< mordante> but for example I like Crab_'s last mail, we discussed to upgrade to a higher boost version here and he mailed it to the dev-ml and referred to the statements made on irc 20090815 13:30:27< mordante> which allowed people not being in irc to learn about the change and post comment 20090815 13:38:45< noy> gtg 20090815 13:38:47< noy> night 20090815 13:38:49-!- noy [n=Noy@wesnoth/developer/noy] has quit ["GO, GET TO THE CHOPPAH!!!"] 20090815 13:42:21< Elvish_Pillager> The wiki says "note that [option] and [text_input] can only be used in moveto events in MP, otherwise they cause OOS" 20090815 13:42:35< Elvish_Pillager> this seems not to be true (there are other safe ways to use them); does anyone know more? 20090815 14:00:20< CIA-62> silene * r37766 /trunk/src/ (unit.cpp unit.hpp): Reduced code duplication. 20090815 14:00:29< CIA-62> silene * r37767 /trunk/src/pathfind.cpp: Simplified code. 20090815 14:00:34< CIA-62> silene * r37768 /trunk/src/ (menu_events.cpp menu_events.hpp): Reduced code duplication. 20090815 14:00:39< CIA-62> silene * r37769 /trunk/src/ (menu_events.cpp menu_events.hpp): Removed unused function menu_events::has_team. 20090815 14:00:44< CIA-62> silene * r37770 /trunk/src/ (sdl_utils.cpp sdl_utils.hpp): Removed unused function darken_image. 20090815 14:00:48< CIA-62> silene * r37771 /trunk/src/ (actions.cpp actions.hpp): Removed unused function timeofday_at. 20090815 14:00:54< CIA-62> silene * r37772 /trunk/src/ (filesystem.cpp filesystem.hpp): Removed unused function get_addon_dirs. 20090815 14:00:57< CIA-62> silene * r37773 /trunk/src/ (sdl_utils.cpp sdl_utils.hpp): Removed unused function color_to_int. 20090815 14:01:01< CIA-62> silene * r37774 /trunk/src/ (language.cpp language.hpp): Removed unused function languagedef_name. 20090815 14:01:06< CIA-62> silene * r37775 /trunk/src/serialization/ (binary_or_text.cpp binary_or_text.hpp): Removed unused function write_possibly_compressed. 20090815 14:01:10< CIA-62> silene * r37776 /trunk/src/ (map_location.cpp map_location.hpp): Removed unused function map_location::legacy_difference_assigns. 20090815 14:01:16< CIA-62> silene * r37777 /trunk/src/ (unit_display.cpp unit_display.hpp): Removed unused function unit_display::unit_visible_on_path. 20090815 14:01:19< CIA-62> silene * r37778 /trunk/src/ (marked-up_text.cpp marked-up_text.hpp): Removed unused function font::text_to_lines. 20090815 14:01:48-!- Netsplit clarke.freenode.net <-> irc.freenode.net quits: Rhonda, isaac 20090815 14:03:00-!- Netsplit over, joins: isaac 20090815 14:03:19-!- Rhonda [n=rhonda@anguilla.debian.or.at] has joined #wesnoth-dev 20090815 14:14:25< zookeeper> Elvish_Pillager, yeah, i think you can substitute "moveto events" with "any synced events" 20090815 14:14:34< Elvish_Pillager> zookeeper: oh good 20090815 14:14:46< Elvish_Pillager> now I just wish I could give all the players their options simultaneously :) 20090815 14:15:11< zookeeper> synced event being one triggered directly by an in-game action (moveto, attack, recruit, menu items) instead of new turn, side turn, start etc 20090815 14:15:46< Elvish_Pillager> oh, what? 20090815 14:16:03< Elvish_Pillager> why the difference? 20090815 14:19:18< zookeeper> because when for example a new turn starts, each client triggers the events individually 20090815 14:19:30< zookeeper> if you have an [option] there, the choice is never transmitted to anyone else 20090815 14:20:02< zookeeper> if you have a moveto event with an [option] in it, then the move and the event is triggered first, and afterwards transmitted along with the choices 20090815 14:20:31< zookeeper> hence why using [option]s in a side turn event for example would cause OOS 20090815 14:22:03< Elvish_Pillager> I was asking if there was a reason for those events not to be synced 20090815 14:24:03< zookeeper> no 20090815 14:24:33< zookeeper> except that presumably it'd be kinda tricky 20090815 14:25:13< Elvish_Pillager> ...I take it that options in a message shown only to a player whose turn it isn't would also cause problems? 20090815 14:28:16< zookeeper> yeah, if it'd even work 20090815 14:28:23< zookeeper> i've never tried to see what'd happen 20090815 14:29:06< Ivanovic> hmm, lets start a vote for the most meaningfull title of a bug report submitted so far 20090815 14:29:13< Ivanovic> i vote for this one: https://gna.org/bugs/index.php?14132 20090815 14:30:24< zookeeper> nice. 20090815 14:37:10-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090815 14:38:10< Ivanovic> mordante: just pinged jetrel about the drake rename stuff 20090815 14:38:16< Ivanovic> he has nothing (at all) to do with it 20090815 14:38:28< Crab_> deekay: ok, I've got some (somewhat biased) results on what-improved-with-recruitment 20090815 14:39:10< Ivanovic> asking him who has his/her hands in it he said to maybe blame melinath 20090815 14:39:14< deekay> Crab_: Yes? 20090815 14:39:16< Ivanovic> [14:39:01] I know he jumped in and started demanding a bunch of stuff on the descriptions. 20090815 14:40:06< Ivanovic> mordante: are there easy ways with git to find out the offending commits and easily revert them? 20090815 14:40:14< Ivanovic> that is: all commits connected to it, there are >1 20090815 14:40:19-!- Elvish_Pillage2 [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090815 14:40:20-!- allefant_ [n=allefant@allegro/developer/allefant] has quit [Read error: 110 (Connection timed out)] 20090815 14:40:29-!- allefant_ [n=allefant@allegro/developer/allefant] has joined #wesnoth-dev 20090815 14:40:30< Soliton> there was a new name suggested in that drakes thread that everyone seemed to approve. 20090815 14:40:40< Soliton> nothing been done with it so far though. 20090815 14:41:34< Soliton> i'm guessing they're waiting for Turuk_ or esr to do the change since no one else there has commit access. 20090815 14:41:43< mordante> Ivanovic, indeed the bug title is great, the contents is exactly what the title promises ;-) 20090815 14:42:34< Ivanovic> Turuk, Turuk_: PING!!! 20090815 14:42:52< Ivanovic> Turuk, Turuk_: please have a look at the mess you created ASAP! 20090815 14:42:53-!- Elvish_Pillager [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 60 (Operation timed out)] 20090815 14:43:17< silene> zookeeper: i think side turn events are synchronized now (disclaimer: the patch was by suokko) 20090815 14:43:30< Ivanovic> so it will explode in the users faces 20090815 14:43:30< Elvish_Pillage2> oh that would be nice 20090815 14:43:31< Ivanovic> ;) 20090815 14:43:44< mordante> Ivanovic, not sure whether it's easy in git, guess not since I assume not all commits touch the same files, but I can grep the log messages for drakes.... 20090815 14:43:47< Elvish_Pillage2> I guess the emphasis should be on "would"? ;p 20090815 14:44:00< Ivanovic> mordante: i already said some revisions 20090815 14:44:15< Ivanovic> the logs for *all* drakes are problematic since thespaceinvader has done some work on them 20090815 14:44:16< Ivanovic> ;) 20090815 14:44:20< Crab_> deekay: 20090815 14:44:20< Crab_> Loyalists (side2) vs Drakes: from 39 % to 85 % (+ 46 % ) 20090815 14:44:20< Crab_> Loyalists (side2) vs Knalgan Alliance: from 28 % to 64 % (+ 36 % ) 20090815 14:44:20< Crab_> Loyalists (side1) vs Undead: from 20% to 50% (+30%) 20090815 14:44:20< Crab_> Rebels (side2) vs Knalgan Alliance: from 33% to 61% (+28%) 20090815 14:44:20< Crab_> Rebels (side1) vs Drakes: from 22% to 47% (+25%) 20090815 14:44:22< Crab_> Rebels (side2) vs Undead: from 49% to 73% (+24%) 20090815 14:44:24< Crab_> Rebels (side1) vs Loyalists: from 52% to 74% (+22%) 20090815 14:44:26< Crab_> Loyalists (side1) vs Knalgan Alliance: from 41% to 62% (+21%) 20090815 14:44:38< Crab_> deekay: the rest are +- 20 % 20090815 14:45:14-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Connection timed out] 20090815 14:45:49< zookeeper> silene, right. i remain sceptical ;) 20090815 14:46:19< Crab_> deekay: basically, things are bad with knalga and undead, and so-so with drakes and northerners 20090815 14:46:46< deekay> Crab_: ok, I think I have an idea what is going on 20090815 14:47:38< Crab_> deekay: so, you've compensated somewhat for problems in default recruitment with loyalists and rebels 20090815 14:47:42< deekay> Crab_: My guess: since AI now prefers raw power units, loyalists may get use of HI against UD and horses agaisnt drakes, rebels prolly are getting more woses 20090815 14:48:11< Crab_> deekay: so, I'd guess it's better to add your recruitment as default for loyalists and rebels, for 1.7.3, If you say it's ready enough 20090815 14:48:26< deekay> Crab_: Nah, I don't want to have it in 1.7.3 yet 20090815 14:48:31< deekay> I want to test it more 20090815 14:48:32< Crab_> ok 20090815 14:48:57< deekay> Crab_: There was time when recruitment was added, but it caused too much problems, I don't want to rush things 20090815 14:49:20< Crab_> deekay: yes, I remember. but, we add it in a more subtle way now :) 20090815 14:49:35< deekay> Crab_: I'll think about this and around end of the next week I will ask you again to run test games ok? 20090815 14:49:41< Crab_> deekay: ok 20090815 14:50:09< deekay> I have some thing I'll need to look at now other than wesnoth, and even within wesnoth there are other things I need to look at now 20090815 14:50:59< Crab_> deekay: you can try check your guess with corn, btw. Stats for those games are uploaded. 20090815 14:52:11< Crab_> deekay: for example, info about 'how many undead units were killed by heavy infantry during a given date' is in the DB. 20090815 14:52:33< deekay> Crab_: Hmm... one thing, I could make formula AI write to console recruitment map for the first turn, do you think we may parse output of wesnoth and attach it to the table? 20090815 14:53:23< Crab_> deekay: show me the example of recruitment map 20090815 14:53:42< deekay> [ 'Thief' -> 10, 'Footpad' -> 20, ... ] 20090815 14:54:01< Crab_> deekay: isn't it better to log actual recruits ? 20090815 14:54:14< Crab_> deekay: ah, that is somewhat different... 20090815 14:54:49< deekay> Crab_: Recruitment map simple is % unit distibution that AI would like to have 20090815 14:55:07< deekay> So sum(values(recruitment_map)) = 100 20090815 14:56:02< deekay> Crab_: It's just idea that came to my mind :) 20090815 14:56:14< mordante> Ivanovic, all commits with drakes in them http://paste.debian.net/44279/ 20090815 14:56:34< Soliton> Ivanovic, mordante: if there is no reaction until the release i can see about doing the rename as proposed here: http://www.wesnoth.org/forum/viewtopic.php?p=375875#p375875 then we can do automatic conversion and backwards compatibility etc. 20090815 14:58:10< mordante> Soliton, I like that idea better since we can keep backwards compatibility etc 20090815 14:58:13< Crab_> deekay: let's go from another direction first.. 20090815 14:58:21< Crab_> deekay: imagine that those recruitment patterns are in the db 20090815 14:58:31< Crab_> deekay: how they should be viewed ? 20090815 14:59:24< Crab_> deekay: imagine that the data is available for 3-10K games (~30-150 games per matchup ) 20090815 14:59:57< deekay> Crab_: Yes... ther's not really much of need to store all of these 20090815 15:00:11< Crab_> deekay: there's no problem in storing the data 20090815 15:00:17< deekay> Crab_: If formula AI was side 1, then as trying to recruit against possible recruits of the opponent, if fai was side 2, then it is fai trying to recruit against enemy recruits (to look at this we would need know what enemy got) 20090815 15:00:19< Crab_> deekay: the problem is making somewhat useful report out of them 20090815 15:02:24< Crab_> deekay: note, for example, that avg. numbers are not good. i.e. if side 2 chooses either 'Heavy Infantry - 80' or "Heavy Infantry -0', the avg would be 40, which is quite meaningless :) 20090815 15:02:46< deekay> Yes 20090815 15:02:52< Crab_> deekay: I can store the string verbatim, if that would be useful 20090815 15:03:02< deekay> Nah, don't bother :) 20090815 15:03:12-!- fabi [n=fabi@wesnoth/developer/fendrin] has quit [Remote closed the connection] 20090815 15:03:36< Crab_> deekay: this will allow you to, for example, 'select all loyalists side1_formula_ai vs undead side_2_default_ai, and look at 30-150 strings and see the numbers 20090815 15:04:33< deekay> In that case (fai as side 1) strings would depend mostly on map 20090815 15:04:41< Crab_> deekay: yes 20090815 15:04:50< Crab_> deekay: if you want to do this, output it as a separate log domain like this: "FOO_VALUE: bar" 20090815 15:05:13< Crab_> deekay: it'll be easy enough to log the field to DB and setup a small web interface to view the results 20090815 15:06:05< deekay> Crab_: ok, I'll keep that in mind 20090815 15:06:47< Crab_> deekay: also note that the general solution to this is to allow logging of arbitrary game events to corn's new website 20090815 15:07:41< Crab_> deekay: also note the following: it's easy enough to forget about the DB and do the following: 20090815 15:08:16< Crab_> foreach map, foreach faction1 (fai recruitment), foreach faction2, output recruitment_map for side1 20090815 15:09:17< Crab_> with 7 maps, 36 faction*faction's, 1-turn game limit, it'll take several minutes to check 20090815 15:10:06< deekay> Yeah 20090815 15:10:32< deekay> Ok, I need to disappear for now, I'll be back later 20090815 15:10:35< Crab_> ok 20090815 15:10:44< deekay> Crab_: Thanks for info about fai so far :) 20090815 15:18:00< mordante> I'm off for a few hours, bye 20090815 15:19:09-!- mordante [n=mordante@wesnoth/developer/mordante] has quit ["Leaving"] 20090815 15:20:19-!- boucman [i=43fa2d5d@wesnoth/developer/boucman] has joined #wesnoth-dev 20090815 15:20:41< boucman> hey all 20090815 15:20:44< Crab_> hi boucman 20090815 15:21:09< boucman> so, how is it going ? 20090815 15:22:35< Crab_> boucman: fixing some bugs, such as #14096 atm 20090815 15:23:12< boucman> wesbot: bug 14096 20090815 15:23:13< wesbot> Bug #14096 Assigned to: Yurii Chernyi Status: In Progress Priority: 3 - Low 20090815 15:23:16< wesbot> Summary: checking the "do not show AI moves" checkbox has no effect 20090815 15:23:18< wesbot> Original submission: checking the "do not show AI moves" checkbox has no effec 20090815 15:23:21< wesbot> t. 20090815 15:23:24< wesbot> URL: https://gna.org/bugs/?14096 20090815 15:23:48< boucman> hehe I could probably help you on that one 20090815 15:26:08< boucman> afaik the feature was lost a long time ago, and should be "reimplemented" (or the checkbox removed) more than the bug fixed 20090815 15:26:29< boucman> not sure if the option is that usefull since nobody complained so far 20090815 15:27:05< Crab_> boucman: someone complained :) 20090815 15:27:21< Crab_> boucman: well, in multiplayer game, it would be useful if I don't want to see what the ai does, and think about my moves instead... 20090815 15:27:58< Crab_> boucman: " I could probably help you on that one " -> a hint about 'how to verify that it works' should probably be enough 20090815 15:28:00< boucman> ok, do you need help finding out how to do that, or are you ok ? 20090815 15:28:04< Soliton> then you can turn focus follows unit actions off or whatever that is named. 20090815 15:28:28< Soliton> i think the option is not very useful. 20090815 15:28:32< Crab_> Soliton: but what if I want to see human actions ? 20090815 15:28:54< Soliton> not a likely scenario IMO. 20090815 15:29:25< boucman> i'd tend to agree with soliton here, you usually still want to see what the AI does (if fast) 20090815 15:29:52< boucman> and removing follow actions + turbo is probably enough 20090815 15:29:52< Crab_> boucman: so, you think that it's better to fix this bug by removing this option ? 20090815 15:30:09-!- thespaceinvader_ [n=chatzill@cpc3-whit1-0-0-cust305.cdif.cable.ntl.com] has joined #wesnoth-dev 20090815 15:30:35< boucman> i think it' worth discussing this approch, but that question is better answered by our MP devs (which Soliton happens to be) 20090815 15:31:03< Crab_> corn: ^ 20090815 15:31:08-!- lizard_r [n=Miranda@wesnoth/umc-dev/developer/lizard] has joined #wesnoth-dev 20090815 15:32:06< Crab_> Soliton: so, should I remove this option instead ? 20090815 15:32:21< deekay> boucman: I agree with Soliton :) 20090815 15:32:54< boucman> Crab_: was corn the one originally complaining ? 20090815 15:32:57< Soliton> Crab_: IMO yes. 20090815 15:33:21< Crab_> boucman: yes and no. he has noted: "I think just found a bug in trunk: checking the "do not show AI moves" checkbox has no effect - I still see AI units moving" 20090815 15:33:57< boucman> ok, so even the bugreporter doesn't actually use the option :P 20090815 15:34:09< boucman> corn: feel free to interject 20090815 15:35:48< Crab_> boucman: note that for SP, I already fixed that checkbox :) 20090815 15:36:09< boucman> k 20090815 15:38:15< Crab_> Soliton: boucman: so, I think I'll commit that fix. Maybe someone actually uses it :) 20090815 15:38:48< boucman> do as you feel... 20090815 15:40:13-!- Kenpachi [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has joined #wesnoth-dev 20090815 15:41:40-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has joined #wesnoth-dev 20090815 15:41:44-!- dfranke [i=dfranke@wesnoth/developer/dfranke] has quit [Read error: 60 (Operation timed out)] 20090815 15:44:40< Crab_> boucman: also, I've had a discussion, with Sirp and Soliton, about AI (see today's irclog) 20090815 15:46:23-!- thespaceinvader [n=chatzill@wesnoth/artist/thespaceinvader] has quit [Read error: 110 (Connection timed out)] 20090815 15:47:29< boucman> ok, will look at it later 20090815 15:47:36< boucman> i'm semi afk right now 20090815 15:47:42< Crab_> ok 20090815 15:48:10-!- Kenpachi_ [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has joined #wesnoth-dev 20090815 15:49:11-!- crimson_penguin [n=ben@64.201.60.211] has joined #wesnoth-dev 20090815 15:49:22-!- thespaceinvader_ [n=chatzill@cpc3-whit1-0-0-cust305.cdif.cable.ntl.com] has quit [Read error: 110 (Connection timed out)] 20090815 15:49:31-!- thespaceinvader_ [n=chatzill@cpc3-whit1-0-0-cust305.cdif.cable.ntl.com] has joined #wesnoth-dev 20090815 15:49:36-!- thespaceinvader_ is now known as thespaceinvader 20090815 15:53:31-!- dfranke [i=dfranke@wesnoth/developer/dfranke] has joined #wesnoth-dev 20090815 16:05:23-!- Kenpachi [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has quit [Read error: 110 (Connection timed out)] 20090815 16:06:49-!- Kenpachi [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has joined #wesnoth-dev 20090815 16:08:47-!- Sirp [n=user@wesnoth/developer/dave] has joined #wesnoth-dev 20090815 16:09:17-!- Kenpachi__ [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has joined #wesnoth-dev 20090815 16:16:16-!- Chusslove [n=Chusslov@adsl-ppp-1228.yubc.net] has joined #wesnoth-dev 20090815 16:18:18-!- Kenpachi_ [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has quit [Read error: 110 (Connection timed out)] 20090815 16:20:38< CIA-62> silene * r37779 /trunk/src/ (unit.cpp unit.hpp): Removed unused function unit::team_rgb. 20090815 16:20:42< CIA-62> silene * r37780 /trunk/src/ (unit_types.cpp unit_types.hpp): Removed unused function attack_type::has_special_by_id. 20090815 16:20:48< CIA-62> silene * r37781 /trunk/src/ (display.cpp display.hpp): Removed unused field display::hex_overlay_. 20090815 16:20:52< CIA-62> silene * r37782 /trunk/src/ (sound.cpp sound.hpp): Removed unused function sound::play_no_music. 20090815 16:20:56< CIA-62> silene * r37783 /trunk/src/serialization/ (string_utils.cpp string_utils.hpp): Removed unused function utils::capitalize. 20090815 16:21:00< CIA-62> silene * r37784 /trunk/src/ (config.cpp config.hpp): Removed unused function config::merge_and_keep. 20090815 16:21:04< CIA-62> silene * r37785 /trunk/src/ (cursor.cpp cursor.hpp): Removed unused function cursor::temporary_use_bw. 20090815 16:21:09< CIA-62> silene * r37786 /trunk/src/ (lobby_data.cpp lobby_data.hpp): Removed unused function chat_log::assemble_text. 20090815 16:21:12< CIA-62> silene * r37787 /trunk/src/ (mouse_events.cpp mouse_events.hpp): Removed unused field mouse_handler::enemy_visible_. 20090815 16:21:16< CIA-62> silene * r37788 /trunk/src/ (unit.hpp unit_abilities.cpp): Removed unused function unit_ability_list::lowest. 20090815 16:21:21< CIA-62> silene * r37789 /trunk/src/serialization/ (string_utils.cpp string_utils.hpp): Removed unused function utils::strip_char. 20090815 16:21:24< CIA-62> silene * r37790 /trunk/src/serialization/ (string_utils.cpp string_utils.hpp): Removed unused function utils::uppercase. 20090815 16:21:28< CIA-62> silene * r37791 /trunk/src/menu_events.hpp: Fixed segfault. 20090815 16:27:06-!- Kenpachi [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has quit [Read error: 110 (Connection timed out)] 20090815 16:27:12< Crab_> silene: about "std::string turn_notification_msg = _("$name has taken control");" notification at src/playmp_controller.cpp:141 - it is wrong by one player. E.g. after Crab_ has ended his turn, it says "Crab_ has taken control" 20090815 16:28:03< Ivanovic> Crab_, deekay: who is probably responsible (and should thus be asked) for fixing the leader names in MP? 20090815 16:28:13< Ivanovic> as setting the names to the users and not to the races 20090815 16:28:18< Crab_> Ivanovic: I can try 20090815 16:28:24< Ivanovic> Crab_: would be great 20090815 16:28:46< Ivanovic> (would like to see the ai enemies named AI again next test game and renaming the leaders is boring... 20090815 16:29:28< Crab_> ok 20090815 16:30:17< Soliton> i suggest changing the multiplayers_side key to faction_name to avoid the clash with side's leader name. 20090815 16:32:16< Soliton> i think that would also help addon authors since they then can get the faction name easily. 20090815 16:33:21< silene> Crab_: indeed, seems like the change is notified after a player relinquished control; will fix 20090815 16:36:14< CIA-62> silene * r37792 /trunk/src/playmp_controller.cpp: Moved turn change notifications before the player starts. 20090815 16:37:40-!- crimson_p [n=irchon@64.201.60.211] has joined #wesnoth-dev 20090815 16:39:17-!- Kenpachi_ [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has joined #wesnoth-dev 20090815 16:44:20< boucman> Crab_: ok, reqd it 20090815 16:44:23< boucman> read it 20090815 16:44:56< boucman> basically, sirp's idea fit well in our design, so i'm fine 20090815 16:45:02< boucman> :) 20090815 16:45:11< Crab_> :) 20090815 16:45:45< Crab_> btw, is "network_ai" controller type not used on purpose ? 20090815 16:45:58< Crab_> network-based ai's are registered as simply "network" 20090815 16:46:31< boucman> my guess is that at the time controller types were defined we thought we would need to differentiate local ai and network ai, but we never actually needed that 20090815 16:47:15< Crab_> Actually - 'need to differentiate "network human" and "network ai" ' 20090815 16:48:13< Soliton> those were introduced later actually. 20090815 16:48:18< boucman> oh ? 20090815 16:48:31< Soliton> they're used on the server as well. 20090815 16:48:54< CIA-62> silene * r37793 /trunk/po/wesnoth/fr.po: Fixed a few fuzzy strings and typos. 20090815 16:49:17< Soliton> Crab_: they're used in src/playturn.cpp 20090815 16:49:50-!- crimson_p [n=irchon@64.201.60.211] has quit [Remote closed the connection] 20090815 16:50:38< Crab_> Soliton: P1 is host, P2 is client, P 3 an P4 are AIs based on host, on P2, P3 and P4 are "network", not "network_ai" 20090815 16:50:47< Crab_> s/P 3/P3 20090815 16:51:48< Crab_> so, it's not possible to use the side controller type to differentiate 'network human' \ 'network ai' 20090815 16:54:03< Elvish_Pillage2> WML macro expansion is fully recursive, right? i.e. I can define macros that define other macros? 20090815 16:54:50-!- Kenpachi__ [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has quit [Read error: 110 (Connection timed out)] 20090815 16:58:14< Crab_> Elvish_Pillage2: yes 20090815 16:58:27< Elvish_Pillage2> good 20090815 16:58:39 * Elvish_Pillage2 is the insane master of removing duplicate WML 20090815 16:59:53< Soliton> Crab_: i think it only matters when you change controllers. 20090815 17:00:23< Soliton> src/playturn.cpp has nothing to do with the setup phase. 20090815 17:05:05-!- Tigge [n=tigge@m90-137-68-183.cust.tele2.se] has quit [Success] 20090815 17:07:31< CIA-62> silene * r37794 /trunk/src/playcampaign.cpp: Removed useless assertion. 20090815 17:07:46-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090815 17:07:56< Elvish_Pillage2> here's a fun line of WML: description=_"{{AFFORDABILITY}_COLOR}{{SPELL}_NAME} (${SPELL}_cost| gold)" 20090815 17:08:16< Ivanovic> Elvish_Pillage2: WRONG 20090815 17:08:27< Elvish_Pillage2> Ivanovic, what? 20090815 17:08:27< Ivanovic> do not make macros translatebale, that does not work 20090815 17:08:52< Ivanovic> this description should *not* be marked translateable or you won't get it shown correctly ingame 20090815 17:08:54-!- Kenpachi_ [n=chatzill@CPE-58-170-86-32.sa.bigpond.net.au] has quit [Read error: 110 (Connection timed out)] 20090815 17:09:02< Ivanovic> (in translations that change something that is) 20090815 17:09:17< Elvish_Pillage2> hmm, okay 20090815 17:09:21< Ivanovic> the string will never appear translated, that is 20090815 17:09:24< AI0867> Elvish_Pillage2: to illustrate 20090815 17:09:31< AI0867> the translators will try to translate "{{AFFORDABILITY}_COLOR}{{SPELL}_NAME} (${SPELL}_cost| gold)" 20090815 17:10:05< Elvish_Pillage2> What, so the translations are applied BEFORE macros are expanded? 20090815 17:10:08< AI0867> but the game will request the translation of (for example) "green fireball (14_cost| gold)" 20090815 17:10:12< Elvish_Pillage2> oh 20090815 17:11:30< Elvish_Pillage2> that's basically a macroization of this line, though: _"<250,0,0>Fireball (10 gold)" 20090815 17:12:05< Ivanovic> like i said, translators will never see the <250,0,0>Fireball (10 gold) 20090815 17:12:35< Ivanovic> in general to make it nice for translators you should work with variables and have those translateable (as well as the string, too) 20090815 17:13:15-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has left #wesnoth-dev [] 20090815 17:13:33< Ivanovic> eg this: description=_"<250,0,0>$ATTACK_NAME ($COST_IN_GOLD gold)" 20090815 17:14:06< Elvish_Pillage2> ah 20090815 17:15:15-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090815 17:15:22< Ivanovic> in general macros are evil when it comes to strings displayed ingame 20090815 17:15:55< Elvish_Pillage2> seems like they'd be evil if it wasn't possible to explain to the translators how they worked 20090815 17:16:05< Elvish_Pillage2> but I don't see how they are given that that is possible 20090815 17:16:07< Ivanovic> the translators are not at fault 20090815 17:16:12< Ivanovic> it is the engine that does not cope 20090815 17:16:20< Elvish_Pillage2> err, how? 20090815 17:16:29< Ivanovic> at gamestart all macros are expanded 20090815 17:16:33< Elvish_Pillage2> yes... 20090815 17:16:33-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has joined #wesnoth-dev 20090815 17:16:38< AI0867> it would work if the engine requested translations *before* expanding macros 20090815 17:16:44< Elvish_Pillage2> so you end up with reasonable strings, like "green fireball" 20090815 17:16:45< Ivanovic> so the strings that *game* has differs from the strings that are in the cfg files 20090815 17:16:53< Elvish_Pillage2> and the translators can translate "green fireball" 20090815 17:16:54< Ivanovic> and the cfg files are used to generate the translateable text 20090815 17:17:16< Soliton> the gettext extaction script would need to know about macros. 20090815 17:17:18-!- Crab_ [n=Crab_@wesnoth/developer/crab] has quit [Read error: 110 (Connection timed out)] 20090815 17:17:34< Elvish_Pillage2> Ah, so you have some kind of automated system to make it easier for translators, and that system doesn't work with macros? 20090815 17:17:44< Ivanovic> with the variables on the other hand replacement works perfectly 20090815 17:17:56< Soliton> it's not to make it easier. it's to make translations at all. 20090815 17:18:08< Ivanovic> since those are just replaced with values when things are displayed 20090815 17:18:15< Soliton> you have to get the translatable strings somehow. 20090815 17:18:44< silene> AI0867: no, it wouldn't work; what would work would be to generate the .po files on the expanded wml 20090815 17:18:47< Ivanovic> Elvish_Pillage2: the first versions of wesnoth supported translations only in one way: completely "replace" the whole config files 20090815 17:19:03< silene> (but it would cause a massive increase of translatable strings) 20090815 17:19:11< Elvish_Pillage2> Soliton, _I_ could generate a list of strings to translate. Is there some way the engine wouldn't be able to use that? 20090815 17:19:12< Ivanovic> this is hell to keep up to date 20090815 17:19:27< Soliton> Elvish_Pillage2: i think that should work. 20090815 17:19:34< AI0867> silene: 'work' was a relative word there ;) 20090815 17:19:45< Elvish_Pillage2> Soliton: If that's true, I don't see how macros are a problem. 20090815 17:19:55< Elvish_Pillage2> (Aside from making it more inconvenient to get the list of strings.) 20090815 17:20:01< Ivanovic> Elvish_Pillage2: gettext does some *exact* string matching 20090815 17:20:18< Soliton> Elvish_Pillage2: well, listing all the strings makes the macros pointless, no? :-) 20090815 17:20:19< Ivanovic> what is available are the strings that are in the po files that have *macros* in them 20090815 17:20:34< Ivanovic> after game start the macro texts are replaced, so no way to find the correct strings 20090815 17:20:35< Elvish_Pillage2> Soliton: No. 20090815 17:21:18< Soliton> if you're willing to list all the strings the macros expand to i don't se what use the macros have. 20090815 17:21:29< Elvish_Pillage2> the macros don't expand to just strings. 20090815 17:21:46< Soliton> obviously i mean the macros tha expand to translatalbe strings. 20090815 17:22:03< Elvish_Pillage2> Is it possible to use "string"+"string" to concatenate here, though? I think that would make this much neater 20090815 17:22:35< Soliton> yes, that's the easy way if you don't care about translations. 20090815 17:22:37< Ivanovic> sure 20090815 17:22:42< Elvish_Pillage2> err 20090815 17:22:52< Ivanovic> *but* then translators can not change string order 20090815 17:22:56< Elvish_Pillage2> Does anyone translate <255,0,0> differently? 20090815 17:23:01< Ivanovic> the given order will have to be kept 20090815 17:23:12< Ivanovic> the <255,0,0> should IMO not be translateable 20090815 17:23:15< Soliton> i think you can think of more problematic examples if you try. 20090815 17:23:32< Ivanovic> that could just be added via concatenation 20090815 17:23:40< Elvish_Pillage2> yeah. 20090815 17:23:54< Elvish_Pillage2> now the only problem is the "(${SPELL}_cost| gold)" 20090815 17:23:58-!- boucman [i=43fa2d5d@wesnoth/developer/boucman] has quit ["Page closed"] 20090815 17:24:20< Ivanovic> what about spellname? 20090815 17:24:30< Ivanovic> the cost should easily be doable via variables 20090815 17:24:40< Elvish_Pillage2> {{SPELL}_NAME} expands to a single translateable string 20090815 17:24:46< Elvish_Pillage2> which is listed elsewhere in the file 20090815 17:24:51< Ivanovic> how it does expand does not matter! 20090815 17:24:55< Ivanovic> the string matters 20090815 17:24:58< Elvish_Pillage2> It's not within a string. 20090815 17:25:00< Ivanovic> and that differs once expanded 20090815 17:25:04< Soliton> you cut the string in pieces so translation have no way to put things in the proper order or anything. 20090815 17:25:05< Elvish_Pillage2> It's concatenated with the others. 20090815 17:25:24< Ivanovic> concatenations SUCKS for translations where orders matter a lot 20090815 17:25:27< Soliton> so sure it'd work for all languages that are similar to english. 20090815 17:25:30< Ivanovic> not every language works like english 20090815 17:26:08< Elvish_Pillage2> there are languages where it's important to put the cost of a spell before its name? 20090815 17:26:20< Ivanovic> it is not only the cost 20090815 17:26:28< Ivanovic> it is the usage of the gold part 20090815 17:26:36< Ivanovic> as well as spacing between the words 20090815 17:26:58< Soliton> i believe indeed no languages have specific rules for spell name and cost order. 20090815 17:27:06< Soliton> so you're safe! 20090815 17:27:16< Elvish_Pillage2> sweet 20090815 17:27:58< Smar> I love finnish, there is thousand ways to write a sentence... ;) 20090815 17:28:25< Elvish_Pillage2> trouble, though: this is literally going to be listed dozens of times, and each DOES have to rely on a different variable - such as ($fireball_cost gold), ($flight_cost gold), etc. 20090815 17:29:05< Soliton> is anyone actually going to translate this? :-> 20090815 17:29:09< Elvish_Pillage2> No. 20090815 17:29:10< Ivanovic> Elvish_Pillage2: variables in strings are *perfect* 20090815 17:29:29< Elvish_Pillage2> Ivanovic: but I can't write out each of the strings, since it'd cause intolerable duplicate code in my file. 20090815 17:29:38< Ivanovic> so in fact you could produce some nice macro that has the string in it and works with variables 20090815 17:30:10< Elvish_Pillage2> oh, I see how I could do that 20090815 17:30:25< Elvish_Pillage2> it still means duplicate code though :/ 20090815 17:30:28-!- Tigge [n=tigge@m83-178-8-239.cust.tele2.se] has joined #wesnoth-dev 20090815 17:30:34< Ivanovic> should not be too much 20090815 17:30:52< Elvish_Pillage2> yeah, just one extra line where it's easy to deal with 20090815 17:32:39< Elvish_Pillage2> now it's description="{{AFFORDABILITY}_COLOR}"+{{SPELL}_NAME}+{{SPELL}_COST_STRING} 20090815 17:32:40< Elvish_Pillage2> :p 20090815 17:34:25< Ivanovic> why not something like this: 20090815 17:35:18< Ivanovic> {META_MACRO {{AFFORDABILITY}_COLOR} {{SPELL}_NAME} {{SPELL}_COST}} 20090815 17:36:56< Ivanovic> which is expanded to: 1) a variable that does includes the (translateable) spell name, 2) a variable that includes the spell costs as number, 3) a description= line with this content: description={{AFFORDABILITY}_COLOR}+_"$spell_name ($spell_cost gold)" 20090815 17:37:51< Ivanovic> that is: somewhere the spell name has to be translateable (eg the name=_"mighty fireball") 20090815 17:38:07< Elvish_Pillage2> That is the case already. 20090815 17:38:24< Elvish_Pillage2> basically, earlier we have a #define FIREBALL_NAME _"Fire Ball" 20090815 17:38:43< Ivanovic> then the resulting string translators would work on are "many spell names" as well as the "$spell_name ($spell_cost gold)" string 20090815 17:38:44< Elvish_Pillage2> so when {SPELL} expands to FIREBALL, {{SPELL}_NAME} expands to _"Fire Ball" 20090815 17:39:23< Elvish_Pillage2> and we can't do _that_ because this is expanded many times, and it has to use variables of different names in each place. 20090815 17:39:37< Ivanovic> really? 20090815 17:39:41< Elvish_Pillage2> ooh, I do see a way to improve it somewhat 20090815 17:39:43< Elvish_Pillage2> yes, really 20090815 17:39:45< silene> dumb question, but does {{AFFORDABILITY}_COLOR} even works? i don't remembering coding the preprocessor so that it does 20090815 17:39:48< Ivanovic> after the description text you can probably unset the var 20090815 17:39:56-!- Crab_ [n=Crab_@wesnoth/developer/crab] has joined #wesnoth-dev 20090815 17:39:58< Elvish_Pillage2> silene: indeed it does 20090815 17:40:17< Elvish_Pillage2> Ivanovic: nope... they're menu item descriptions 20090815 17:40:28< Elvish_Pillage2> so a lot of them are displayed without any chance for me to execute code in between 20090815 17:41:14< silene> you could execute the code beforehand 20090815 17:41:30< Elvish_Pillage2> doesn't help 20090815 17:41:41< Elvish_Pillage2> I'd still have to store a lot of different variables, which is the problem 20090815 17:41:56< Ivanovic> Elvish_Pillage2: you know, instead of the macros for the fireball name and the likes, just make those all variables 20090815 17:42:10< Elvish_Pillage2> Ivanovic: check this out: I have _"Energy Bolt ($energy_bolt_cost| gold)" somewhere in the file. 20090815 17:42:19< Ivanovic> sorry, i don't understand your mass usage of the macros 20090815 17:42:20< Elvish_Pillage2> The only thing I concat with that is the color string. 20090815 17:42:23< Elvish_Pillage2> :) 20090815 17:42:31< Ivanovic> this looks like some strange and complicated way to me to achieve things 20090815 17:42:40< Elvish_Pillage2> I just figured out how to use all the macros I want AND isolate the string alone 20090815 17:43:46< Ivanovic> in general you could just generate variables for the attack names 20090815 17:43:48< silene> Elvish_Pillage2: that's only if you use variables; if you target wesnoth 1.7, you could instead use a lua loop that generates the menu items from a table; no need for macros nor variables in that case 20090815 17:44:00< Ivanovic> that *is* possible, since it is basically what you do with generating macros for them 20090815 17:44:26< Ivanovic> and you can just feed the "meta macro" i pasted with those vars 20090815 17:44:35< Elvish_Pillage2> silene: does that work with menu items that need to have different attributes at different times? 20090815 17:45:01< Elvish_Pillage2> Ivanovic: just as you don't understand what I'm doing with macros, I don't understand what you're suggesting with macros :) 20090815 17:45:11< silene> Elvish_Pillage2: not sure what you mean, but presumably yes 20090815 17:45:46< Ivanovic> Elvish_Pillage2: what i basically say is to rely on *less* macros, since macros are ugly 20090815 17:45:49< Elvish_Pillage2> silene: I mean that each individual menu item may have a different description on one turn than the next, because of changing values of the variables that are expanded in it. 20090815 17:46:10< Elvish_Pillage2> Ivanovic, is there any alternative to macros for reducing this massive duplicate code? 20090815 17:46:30< silene> Elvish_Pillage2: i still don't understand: if you were intending to use macros, how could the values change? 20090815 17:46:34< Elvish_Pillage2> Macros are kind of ugly, yes, but duplicate code is the Devil. 20090815 17:46:42< Elvish_Pillage2> Silene: the macros expand into strings that contain variables. 20090815 17:46:43< Ivanovic> Elvish_Pillage2: you are using those defines 20090815 17:47:12< Ivanovic> that is: i would like to see some more "complete" code snippet to have it easier to explain things 20090815 17:47:26< Ivanovic> just seeing single lines does not make it trival to say what i mean 20090815 17:47:49< Elvish_Pillage2> okay 20090815 17:48:04< Elvish_Pillage2> get a load of this: http://pastebin.ca/1530574 20090815 17:48:06-!- mordante [n=mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20090815 17:48:11< silene> Elvish_Pillage2: i don't see any particular issues 20090815 17:48:34< mordante> servus 20090815 17:49:05< Elvish_Pillage2> (some of the code is incomplete) 20090815 17:50:22 * Elvish_Pillage2 waits for Ivanovic's head to explode 20090815 17:51:00< Ivanovic> that does not happen this easily, my head is able to endure a lot 20090815 17:53:05< silene> Elvish_Pillage2: looking at your code, it is indeed feasible in lua (and it should be much shorter by the way) 20090815 17:53:38< Elvish_Pillage2> unfortunately I'm currently working in 1.6 :) 20090815 17:53:39< Ivanovic> looking at your code translations should work nicely this way 20090815 17:53:55< Elvish_Pillage2> :) 20090815 17:54:08< Ivanovic> that is: where would you have had the *translateable* string "Energy Bolt" in your old version? 20090815 17:54:30< Ivanovic> it would have generated a variable, just like $fire_ball_cost and that variable could have been reused 20090815 17:54:33< Elvish_Pillage2> I had it as one of the BASE_SPELL_STATS arguments 20090815 17:57:39< CIA-62> mordante * r37795 /branches/1.6/ (4 files in 3 dirs): 20090815 17:57:39< CIA-62> Fix gcc 4.4 compilation errors. 20090815 17:57:39< CIA-62> Fixes Debian bug #539546, after fixing the reported issue fixed more problems 20090815 17:57:39< CIA-62> discovered by gcc 4.4. 20090815 18:00:05-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has quit [Read error: 113 (No route to host)] 20090815 18:01:42< Ivanovic> though like i said, your current version should work 20090815 18:01:50< Ivanovic> though it looks ugly as hell 20090815 18:02:02 * Ivanovic does not like this strange "macro based coding" too much 20090815 18:02:28< Elvish_Pillage2> silene's probably right that I should be using lua 20090815 18:02:41< Ivanovic> jupp, some "real" coding would probably be the better way 20090815 18:03:02< Ivanovic> (hey, you could work on the dev versions and then have one of the first "real use" examples of lua scripting) 20090815 18:03:03< Elvish_Pillage2> but I have complicated things to do that pretty much can't be done in WML without (1) hours of copying and pasting and correcting mistakes or (2) macros 20090815 18:05:27< Ivanovic> switch to the dev version and use lua 20090815 18:05:43< Ivanovic> 1.8 will be out some time later this year (not *too* much away that is) 20090815 18:07:27< zookeeper> i'm not even trying to understand that hideous macro mess. 20090815 18:07:32< Elvish_Pillage2> :) 20090815 18:07:41< Elvish_Pillage2> luckily I understand it 20090815 18:07:44< zookeeper> so what is it that you actually try to do? 20090815 18:07:55< zookeeper> or want to do 20090815 18:07:59< Elvish_Pillage2> I'm too busy doing it to explain ;p 20090815 18:09:14-!- wesbot changed the topic of #wesnoth-dev to: 1.7.3 planned for Sunday | 73 bugs, 239 feature requests, 12 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090815 18:11:11< zookeeper> ok 20090815 18:11:37< Elvish_Pillage2> err, it's complaining about my nested macro. meh. 20090815 18:11:53< zookeeper> but i've found there's very little that [set_variables], [insert_tag] and a [while] combined can't do. 20090815 18:12:37< Elvish_Pillage2> Crab_, you seem to have been wrong about that, unless I'm missing something obvious :/ 20090815 18:13:11< Crab_> Elvish_Pillage2: sorry, then. I may had misunderstood what you've been trying to do 20090815 18:14:08< Elvish_Pillage2> I want "#define THIS #define THAT foo #enddef #enddef", and later {THIS} {THAT} to result in {THAT} expanding to foo 20090815 18:14:29< Elvish_Pillage2> (with newlines as appropriate) 20090815 18:15:10< Soliton> is that ever necessary? 20090815 18:15:27< Elvish_Pillage2> yeah... because THAT actually includes an expansion of a macro argument to THIS. 20090815 18:16:29< Elvish_Pillage2> It's going to be a bit of a bother doing this without nested macros 20090815 18:17:05< Soliton> so there is no newline between {THIS} {THAT}? 20090815 18:17:16< Elvish_Pillage2> there'd be a newline there 20090815 18:19:00< Soliton> so {THAT} actually includes a call to {THIS} and not just an argument. 20090815 18:21:02< Elvish_Pillage2> err, no 20090815 18:22:25< Elvish_Pillage2> basically I meant I was trying to use "#define FOO BAR [newline] #define {BAR}_BAZ [newline] boink#enddef [newline] #enddef [newline] {FOO PLAH}" and then expecting {PLAH_BAZ} to expand to boink. 20090815 18:24:17< Soliton> you'd have to run the preprocessor multiple times over that then and wouldn't know when to stop. 20090815 18:24:28< Elvish_Pillage2> it'd stop when there was nothing left to do 20090815 18:25:02< Soliton> yeah, you could keep track of that. still pretty ugly. 20090815 18:25:39< Elvish_Pillage2> hmm, most of this stuff can be done with variables, with a little flipping things around 20090815 18:25:49< Soliton> you would only know if there is nothing left to do after actually trying. 20090815 18:28:03< Elvish_Pillage2> hmm. If I store a variable with literal= when it has things that would expand, and then I use $that_variable later, does it expand the things that weren't expanded at first? 20090815 18:28:16< Elvish_Pillage2> If not, is there a way to make it expand them? 20090815 18:29:10-!- lizard_r [n=Miranda@wesnoth/umc-dev/developer/lizard] has quit ["Saurian Augur - I'll heal you by 4 hp if you leave next to me"] 20090815 18:32:09< zookeeper> Elvish_Pillage2, not sure. 20090815 18:32:16< zookeeper> (of either) 20090815 18:33:03-!- Tigge [n=tigge@m83-178-8-239.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 20090815 18:35:06-!- Tigge [n=tigge@m90-137-68-198.cust.tele2.se] has joined #wesnoth-dev 20090815 18:38:41< silene> Elvish_Pillage2: if you ever consider switching to 1.7, this is what the lua code would look like: http://wesnoth.pastebin.com/d3e0a68bc 20090815 18:40:33< Elvish_Pillage2> hmm 20090815 18:41:24< Elvish_Pillage2> a bunch shorter in lines, only a little shorter in ideas 20090815 18:43:08< silene> yes, the code is the same as yours 20090815 18:46:43< zookeeper> EP, is the thing that you're trying to achieve something that most people here would say would be pointless to try to optimize as much as you're trying to? 20090815 18:47:19< Elvish_Pillage2> I don't know what most people here would say, but anyone who would say that would be wrong 20090815 18:47:22-!- lizard_r [n=Miranda@wesnoth/umc-dev/developer/lizard] has joined #wesnoth-dev 20090815 18:47:49< zookeeper> sure you don't know but you can make a pretty good guess i'm sure :p 20090815 18:48:01< Elvish_Pillage2> alright, here's my guess: 20090815 18:48:11< Elvish_Pillage2> no one would say that, because they can't figure out my code well enough to comment :p 20090815 18:50:17< Elvish_Pillage2> beyond that, I guess it totally depends whether they're more of a macro-hater or a duplicate-code-hater 20090815 18:51:11 * zookeeper is definitely a macro-hater 20090815 18:51:30< Elvish_Pillage2> for my part, macros have caused me trouble once or twice in my WML-writing career, while duplicate code has caused me trouble dozens, if not hundreds, of times 20090815 18:52:01< zookeeper> well, i still doubt whether not doing all that macro abuse would require you to duplicate code. 20090815 18:52:28< Elvish_Pillage2> let me give you the most important example. 20090815 18:52:49< Elvish_Pillage2> I need all these menu items. 20090815 18:53:18< Elvish_Pillage2> Each menu item needs to have a lot of similar conditions, but completely different effects. 20090815 18:53:51< Elvish_Pillage2> If the effects are neither a macro nor a macro argument, then you're duplicating all the condition code once for every spell you want to implement. 20090815 18:54:35< Elvish_Pillage2> I chose "macro" rather than "macro argument" so that I could define all the specifics of the spell in the same place. 20090815 18:55:02< Elvish_Pillage2> It's quite annoying to have, for instance, the cost of a spell at the top of a file and the effects at the bottom of the file. 20090815 18:55:28< zookeeper> why isn't it enough to just have one simple macro for the conditions which are always the same? 20090815 18:55:36< zookeeper> and have the rest be spell-specific 20090815 18:55:46< Elvish_Pillage2> The conditions are dependent on the spell in question. 20090815 18:56:03< Elvish_Pillage2> For instance, one of the conditions is that you have enough gold to pay _that spell_'s cost. 20090815 18:56:08< zookeeper> oh 20090815 18:56:47< zookeeper> doesn't sound too hard. put all the spell-related WML in an big array of [spell]s and then just reference the right one 20090815 18:57:01< zookeeper> you know, [insert_tag] and all that 20090815 18:57:29< Elvish_Pillage2> actually I don't know how to use [insert_tag] 20090815 18:57:55< Elvish_Pillage2> and at first glance, that sounds even hackier than what I'm doing. 20090815 18:58:21< zookeeper> well at least it's readable :p 20090815 18:58:36< Elvish_Pillage2> readable to someone familiar with it 20090815 18:58:47< Elvish_Pillage2> just as my code is readable to someone familiar with this kind of macro use 20090815 18:58:54< Elvish_Pillage2> the only difference is in the familiarity of the audience 20090815 18:58:57< zookeeper> yeah, but understanding how it works takes like 10 seconds once you see a simple example 20090815 18:59:02< zookeeper> which the forum search refuses to find 20090815 18:59:07< Elvish_Pillage2> and I question how many people are familiar with [insert_tag] use 20090815 19:00:01< zookeeper> oh. i put zookeeper in the keyword field and insert_tag in the author field. no wonder it didn't find anything. 20090815 19:00:07< Elvish_Pillage2> lol 20090815 19:02:23< zookeeper> oh well, still can't find 20090815 19:03:47< zookeeper> it's this simple: http://wesnoth.pastebin.com/d108ffd81 20090815 19:04:15< Elvish_Pillage2> got it... 20090815 19:04:40< zookeeper> and it's very useful for preventing code duplication sometimes, since you can just put for example all information about all your spells into an array, and just use [insert_tag] to refer to them from elsewhere 20090815 19:05:05< Elvish_Pillage2> and you basically just set up huge blocks of effects code by storing the pertinent info in variables? 20090815 19:05:09< zookeeper> for example in BoL there's this pretty modular and fancy spell system which uses that 20090815 19:05:21< zookeeper> and more or less the same method for shops and inventory too 20090815 19:05:27< Elvish_Pillage2> BoL? 20090815 19:05:32< zookeeper> brotherhood of light 20090815 19:05:47< zookeeper> yeah, more or less, i guess 20090815 19:05:58< Elvish_Pillage2> Hmm. 20090815 19:06:55< Elvish_Pillage2> Doesn't sound any better than macro abuse. 20090815 19:07:29< zookeeper> doesn't sound like your macro abuse is working that well to me, but suit yourself ;) 20090815 19:07:43< Elvish_Pillage2> err, what? 20090815 19:08:08< Elvish_Pillage2> all the macro abuse I've done so far, except the nested macros that don't work at all, has worked excellently 20090815 19:09:08< zookeeper> i was referring to the problems you seem to be having now 20090815 19:09:16< Elvish_Pillage2> err, what problems? 20090815 19:10:27< zookeeper> no idea, really 20090815 19:11:11< Elvish_Pillage2> now that I've got the concepts worked out 20090815 19:11:17< Elvish_Pillage2> oh sweet it loaded 20090815 19:11:50< Elvish_Pillage2> I'm glad I used macros so extensively, so that it was simple to work out the initial errors ^_^ 20090815 19:19:44-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has joined #wesnoth-dev 20090815 19:20:57< shadowmaster> ilor: svn co http://wesnoth-umc-dev.svn.sourceforge.net/svnroot/wesnoth-umc-dev/trunk/After_the_Storm 20090815 19:21:33< shadowmaster> it's not playable but it reproduces the bug 20090815 19:21:41< CIA-62> mcshark * r37796 /trunk/projectfiles/ (CodeBlocks/wesnoth.cbp CodeBlocks-SCons/wesnoth.cbp): Update according to recent file changes: added src/gui/dialogs/unit_create.cpp+hpp 20090815 19:25:54< melinath> wesbot: seen Turuk 20090815 19:25:54< wesbot> melinath: Person, who 2h 12m ago used nick Turuk, last spoke 1d 19h ago. 2h 10m ago as Turuk_ was here and on the channels #wesnoth and #wesnoth-umc-dev with the message: Read error: 110 (Connection timed out) 20090815 19:32:04-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090815 19:44:21-!- Sirp [n=user@wesnoth/developer/dave] has quit ["leaving"] 20090815 19:48:06< CIA-62> silene * r37797 /trunk/data/core/units/drakes/Slasher.cfg: Added backward compatibility for drake changes. 20090815 19:56:30< Elvish_Pillage2> wesbot: seen krotop 20090815 19:56:30< wesbot> Elvish_Pillage2: The person with the nick krotop last spoke 5d 20h ago. 1d 16h ago they were seen quitting on the channel #wesnoth with the message: 20090815 19:59:20-!- Tigge [n=tigge@m90-137-68-198.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 20090815 20:13:31-!- MikeJB [n=Michael@wesnoth/umc-dev/developer/aethaeryn] has joined #Wesnoth-dev 20090815 20:13:52-!- MikeJB is now known as Aethaeryn 20090815 20:20:15-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has quit [Read error: 113 (No route to host)] 20090815 20:21:20< Elvish_Pillage2> hey, zookeeper, help me come up with a better name for this era-with-a-spell-system. 20090815 20:21:42< zookeeper> EP, uh, ok 20090815 20:21:43< Elvish_Pillage2> if you need motivation, the current tentative title is "Master of Wesmagic." 20090815 20:21:53< Elvish_Pillage2> 'cause it's somewhat based on Master of Magic. 20090815 20:22:18< zookeeper> what factions does it have? 20090815 20:22:32< Elvish_Pillage2> it doesn't have factions per se 20090815 20:22:46< Elvish_Pillage2> you buy options at the start of the game 20090815 20:22:58-!- lizard_r [n=Miranda@wesnoth/umc-dev/developer/lizard] has quit ["Saurian Augur - I'll heal you by 4 hp if you leave next to me"] 20090815 20:22:59< loonycyborg> Master of Magic is nice. Like civilization with spells :P 20090815 20:23:12< Elvish_Pillage2> which determine what you can recruit and what spells you can cast. It's possible to get most of any of the Default factions except Drakes. 20090815 20:23:34< Elvish_Pillage2> actually, I'll probably add Drakes too, but you can only get them with a lot of Evocation skill. 20090815 20:24:16< zookeeper> "Master of Magicnoth" 20090815 20:24:21< zookeeper> cool, huh? 20090815 20:24:27< Elvish_Pillage2> fricken awesome 20090815 20:24:32< zookeeper> i'm not good with names, i guess 20090815 20:24:36< Elvish_Pillage2> I can improve it though 20090815 20:24:39< loonycyborg> Maybe ask esr instead? :P 20090815 20:24:40< Elvish_Pillage2> Wesmaster of Magicnoth 20090815 20:24:47< zookeeper> perfect 20090815 20:24:50< Aethaeryn> Elvish_Pillage2: You could call it Magicnoth or Wesmagic. 20090815 20:24:53< Elvish_Pillage2> AUGH P:D 20090815 20:24:56< Aethaeryn> Without any unnecessary adjectives 20090815 20:25:12< shadowmaster> anything *noth is deemed to suck 20090815 20:25:17< shadowmaster> *doomed 20090815 20:25:23< Elvish_Pillage2> deemed works too :p 20090815 20:25:27< shadowmaster> use Wes* instead 20090815 20:25:44< Aethaeryn> shadowmaster: What about Thunderstonenoth? 20090815 20:25:54< shadowmaster> that doesn't exist 20090815 20:25:59< loonycyborg> Isn't Wes* already a cliche too? 20090815 20:26:09< shadowmaster> but Wesball doesn't stuck? 20090815 20:26:10< Elvish_Pillage2> Nothjaster of Mawesmastic 20090815 20:26:23< Elvish_Pillage2> Wes* is just as much of a cliche 20090815 20:26:49< shadowmaster> um, but Wescamp mildly sucks though 20090815 20:26:59< zookeeper> wait, i got it 20090815 20:27:02< Aethaeryn> Elvish_Pillage2: have someone like esr come up with a nice, entirely-non-pun name. 20090815 20:27:03< zookeeper> "Era of Spells"! 20090815 20:27:05< Aethaeryn> He's good with names. 20090815 20:27:20< shadowmaster> oh, "Era of Whatever"! 20090815 20:27:22< Elvish_Pillage2> good with names is one thing, but the concept is so generic 20090815 20:27:33< Aethaeryn> A good name could give you places to go with your concept 20090815 20:27:43< Aethaeryn> A generic name is doomed to fail. ;) 20090815 20:27:54< Smar> Era of Eras, maybe. 20090815 20:27:57< Aethaeryn> lol 20090815 20:28:01< loonycyborg> "Era of Spells" can cause confusion with 'era of magic' :P 20090815 20:28:05< Aethaeryn> How about Nothwes? 20090815 20:28:20 * shadowmaster thumbs up to zookeeper, those generic names are the most awesome 20090815 20:28:31< Aethaeryn> The msot generic name: Era 20090815 20:28:34< Elvish_Pillage2> "Sorceror's Domain" 20090815 20:28:39< zookeeper> "EP's Magic Era" 20090815 20:28:49< Aethaeryn> Call it after the continent of Nyreahtea ;) 20090815 20:29:14< Elvish_Pillage2> zookeeper: "EP's Magical Mystery Era" 20090815 20:29:26< Aethaeryn> Elvish_Pillage2: Pick Your Own Spells Era? 20090815 20:29:27< zookeeper> "Spellogeddon Era"! 20090815 20:29:39< Elvish_Pillage2> Aethaeryn: misleading 20090815 20:29:52< loonycyborg> zookeeper: punny 20090815 20:30:06< zookeeper> PwnYourEnemyWithSpells Era 20090815 20:30:10< shadowmaster> Pillage and Spell 20090815 20:30:18< Elvish_Pillage2> "EP's Era of Spellcasting Extravagance" 20090815 20:30:22< Aethaeryn> *Spell*ing Bee. 20090815 20:30:24< Smar> Spells of Pillager 20090815 20:30:36< zookeeper> you should make it fit into the add-on interface name box though 20090815 20:30:40< zookeeper> i don't remember what the limit is 20090815 20:30:52< Elvish_Pillage2> guess not EP's Extravagant Era of Excellent Ensorcellments then? ;p 20090815 20:30:59< zookeeper> 20 characters, i think 20090815 20:31:20< zookeeper> EP, pick any three of those words and i think you have it 20090815 20:31:30< Aethaeryn> Era of Excellent? 20090815 20:31:36< zookeeper> except that 20090815 20:31:45< Smar> that reminds me of... so I can't translate header texts of that dialog to exceed the fixed width? 20090815 20:31:52< shadowmaster> "Awesome Era" 20090815 20:31:58< shadowmaster> Smar: nope 20090815 20:32:01< zookeeper> Smar, you can't translate them anyway 20090815 20:32:02< Aethaeryn> "Download This Era!" 20090815 20:32:08< shadowmaster> zookeeper: he meant the list headers 20090815 20:32:09< Aethaeryn> Add a cool image too and you'll get downloads 20090815 20:32:12< Elvish_Pillage2> EP's Era of Ensorcellments seems rather nice... :o 20090815 20:32:14< zookeeper> shadowmaster, oh, right 20090815 20:32:18< Smar> erm... I meant those... 20090815 20:32:24< Smar> MP era, MP campaign 20090815 20:32:24 * zookeeper has no idea 20090815 20:32:26< Aethaeryn> Elvish_Pillage2: You could try using a thesaurus or a rhyming dictioanry 20090815 20:32:32< shadowmaster> Smar: those neither 20090815 20:32:37< Elvish_Pillage2> Aethaeryn: rhyming is horrible! 20090815 20:32:46< Aethaeryn> Elvish_Pillage2: only if done horribly. 20090815 20:32:51< Smar> yeh, guessed so 20090815 20:32:54< shadowmaster> Elvish_Pillage2: Spell Emporium Era? 20090815 20:32:55< Smar> so current ones will do 20090815 20:33:11< Aethaeryn> Lleps 20090815 20:33:12< shadowmaster> its acronm would be an english word 20090815 20:33:18< Elvish_Pillage2> :/ 20090815 20:33:35< Aethaeryn> Casters of the North 20090815 20:33:36< Elvish_Pillage2> hmm, there's an EE, so being EEE would probably be bad 20090815 20:33:40< Elvish_Pillage2> UGH 20090815 20:33:45< shadowmaster> Elvish_Pillage2: SEE, not EEE 20090815 20:33:58< Elvish_Pillage2> shadowmaster: I was abandoning my other idea, not yours 20090815 20:33:59< Smar> see. 20090815 20:34:06< Elvish_Pillage2> SEE is lame BECAUSE it is a word 20090815 20:34:07< Aethaeryn> Arnaerwertymewellynarianths 20090815 20:34:23< shadowmaster> one question! considering all of us are in #wesnoth-umc-dev, why don't we use that instead of pulluting -dev with UMC boot chatter? 20090815 20:34:32< Elvish_Pillage2> good idea 20090815 20:35:22< mordante> silene, just curious which tool did you use to find the unused functions? 20090815 20:35:38< mordante> ilor, any news on the dynamic cast problem? 20090815 20:39:53-!- Sirp [n=user@wesnoth/developer/dave] has joined #wesnoth-dev 20090815 20:44:05< corn> Crab_: regarding the checkbox, I would rather see a generic 'do not show enemy moves' option, perhaps as the right-most level of the turbo slider 20090815 20:45:22< Crab_> corn: what about 'enable scroll tracking of unit actions' ? it isn't good for you ? 20090815 20:45:37< corn> I have not tried that option 20090815 20:45:53< corn> will try it now 20090815 20:45:59< Crab_> try disabling it :) 20090815 20:46:24< corn> ok 20090815 20:46:30< CIA-62> mordante * r37798 /trunk/ (changelog src/gui/widgets/scrollbar.cpp): 20090815 20:46:30< CIA-62> Added a listbox assertion failure work-around. 20090815 20:46:30< CIA-62> In the MP lobby it can happen that a listbox has first zero ite then 20090815 20:46:30< CIA-62> gets filled and since there are no visible items the second asse after 20090815 20:46:30< CIA-62> this block will be triggered. Use this ugly hack to avoid that case. 20090815 20:46:37< mordante> ilor, ^ 20090815 20:47:30< shadowmaster> ugly hack?! 20090815 20:48:08< mordante> shadowmaster, yes ugly hack, hacks are per definition ugly ;-) 20090815 20:48:47< mordante> it will take too much time to do it cleanly and there are other more important issues left 20090815 20:48:49< corn> Crab_: this works, but I would prefer if the screen did track my units 20090815 20:49:00< Crab_> ok 20090815 20:49:05< corn> however I am not sure how useful these features are in general 20090815 20:49:22< corn> it is only useful to me because I wanted to quickly go through a few turns in a campaign to generate logs 20090815 20:49:51< Crab_> corn: what about minimizing wesnoth on ai turn :) ? 20090815 20:50:35< corn> ai turn only takes a few seconds for me with the turbo slider maxed out, so it wasn't worth it 20090815 21:05:09< silene> mordante: none in particular; i just dumped the defined and undefined symbols with nm and grep, then glanced at the ~3000 symbols found as "unused" 20090815 21:07:12< silene> (in case it wasn't clear, "unused" symbols are symbols that are "defined" but not "undefined"; unfortunately that's also true for all the virtual functions for instance) 20090815 21:11:54< mordante> silene, there's also utils/unused_functions.py in the tree 20090815 21:12:15-!- noy [n=Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20090815 21:13:15-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has joined #wesnoth-dev 20090815 21:16:30< silene> mordante: that's quite similar to what i obtained; not sure though why it outputs much more entries though 20090815 21:16:58< mordante> no idea 20090815 21:20:25< CIA-62> cornmander * r37799 /website/stats.wesnoth.org/ (5 files in 2 dirs): 20090815 21:20:25< CIA-62> Changed all instances of dateconstruct() with the more 20090815 21:20:25< CIA-62> general rangeconstruct(). Added unique game-id generation to rows added 20090815 21:20:25< CIA-62> to GAMES/GAMES_MP. 20090815 21:22:19< shadowmaster> has the idea of having persistent WML variables which can be generated in one campaign and used from another (probably saved onto preferences) been suggested before? 20090815 21:23:48< shadowmaster> well, not "persistent" as such that they may collide with "local" (regular) variables, but maybe the could be obtained through some method like [save_persistent_variable] name=persistent_container to_variable=local_container [/...] 20090815 21:24:17< mordante> shadowmaster, not afaik 20090815 21:24:54< corn> shadowmaster: you could make new [map] functionality by using the new --screenshot flag I coded into wesnoth 20090815 21:25:21< mordante> ilor, ping 20090815 21:25:27< shadowmaster> corn: and pull the builder engine, terrain parsing code, etc. into it? 20090815 21:25:31< shadowmaster> no :P 20090815 21:25:41< corn> shadowmaster: what do you mean? 20090815 21:25:46< silene> shadowmaster: i have seen the idea several times on the forums 20090815 21:26:26< shadowmaster> corn: I suppose that code uses the regular engine for generating the screenshot (as in, taking terrain transitions into account) 20090815 21:26:27< Crab_> shadowmaster: what will be the scope of these persistent variables ? 1-per-wesnoth-preferences-dir ? 20090815 21:26:34< shadowmaster> Crab_: yeah 20090815 21:27:01< Crab_> shadowmaster: I was thinking about something like this (to save AI world-domination plans, that is) 20090815 21:27:10< corn> shadowmaster: yes, hopefully there would be a way to run this once per tag, not once per page load 20090815 21:27:21< corn> so it wouldn't be such a big performance hog 20090815 21:27:41< Crab_> shadowmaster: but the integration with save-loads can be trickly... 20090815 21:27:46< shadowmaster> corn: unfortunately I'm not yet in that area of web development to try it myself. 20090815 21:27:53< corn> ok 20090815 21:28:05< shadowmaster> Crab_: how so? 20090815 21:28:42< shadowmaster> if you mean "the saved data may change while you are plying the other campaign", then authors can be instructed to expect that 20090815 21:28:59< shadowmaster> as in the example above, they copy the persistent variable once, they keep that copy until the end of their own campaign 20090815 21:29:45< Crab_> shadowmaster: well, there are no problems if it is used as something like 'achievements' 20090815 21:29:57< Crab_> shadowmaster: to check for 'been there, done that' 20090815 21:31:09< Crab_> shadowmaster: but, the saved data can change even, if, you, for example, load a save from the same campaign and play it a bit 20090815 21:33:09< shadowmaster> that's why I propose that users of this hypothetical feature are prepared for such events by making their own local/non-persistent copy of that information, which would last unmodified until the end of the new campaign 20090815 21:33:47< silene> mordante: ah, i found why the python script failed; it requires to completely recompile wesnoth with additional flags, which i didn't do 20090815 21:33:52< Crab_> shadowmaster: so, if users are 'ok' with this restrictions, then it's ok 20090815 21:33:54< shadowmaster> if it needs to be refreshed after the user plays the old campaign again, then the player would have to play the new campaign again too (or at least, from the point that it fethes the persistent data for copy) 20090815 21:34:24< mordante> silene, ah ok 20090815 21:34:37< shadowmaster> IMHO it is a fair deal, but that's just my opinion ;) 20090815 21:36:53< Crab_> shadowmaster: yes :) 20090815 21:37:40< shadowmaster> insert "I can try to do it" comment here 20090815 21:38:10< Crab_> shadowmaster: well, I'll get to implementing it, sooner or later (if no one gets to it first) 20090815 21:39:09< shadowmaster> well, it would be a nice thing to have for my campaign, and since I have implemented basically anything I have needed for it 20090815 21:39:25< shadowmaster> (without straying from the mainline design) 20090815 21:40:08< shadowmaster> (me afk for lunch) 20090815 21:41:29< Soliton> for addons i think there should be one area private to the addon and one general area where addons can exchange stuff. 20090815 21:44:28< ilor> mordante pong 20090815 21:45:01< Crab_> Soliton: to keep most of the things 'local' to the addon ? 20090815 21:45:25< mordante> ilor, you saw my other highlights? are there more things you want to do for gsoc? 20090815 21:46:59< Soliton> Crab_: yes, so other addons can only mess with your variables if you explicitely allow them. 20090815 21:47:10< ilor> mordante: well I guess resizing will have to wait for a better time, so unless I get the "soliton's" crash again I guess okay for now 20090815 21:47:44< ilor> will have the updated release notes and some minor polish done by tomorrow before the release 20090815 21:48:50< ilor> mordante: ah, yeah, I guess tooltips for widgets inside a toggle panel are related to buttons on a toggle panel and require more work? 20090815 21:48:57< Crab_> should that 'addon private area' remain after addon is uninstalled ? 20090815 21:48:58< Soliton> Crab_: could be similar for different AIs except they probably don't need an area to exchange stuff at all. 20090815 21:49:08< Soliton> i think so. 20090815 21:49:40< Crab_> what about the case were a faulty addon writes tons of stuff to that area ? 20090815 21:49:43< Soliton> you could be asked if it's done from inside wesnoth though. 20090815 21:49:49< Crab_> ok 20090815 21:50:20< mordante> ilor, well I started on the resizing again, but at least blockers 1&2 in your list are fixed 20090815 21:50:33< Soliton> maybe there should also be an addon variables reset button. 20090815 21:52:27< mordante> ilor, the tooltips need more engine changes, not sure when I have time for it 20090815 21:52:57< mordante> ilor, you want to maintain the list of issues at your wiki page or am I free to edit it? 20090815 21:54:32< ilor> mordante: it's a wiki page, of course I don't mind you editing it :) 20090815 21:55:22< mordante> I rather ask about semi-personal pages in a wiki ;-) 20090815 21:55:37< mordante> any news on the dynamic cast failure, fixed or still there? 20090815 21:58:00< mordante> the resize item is still a blocker, the lobby doesn't work on 800x600 at the moment 20090815 21:59:56< CIA-62> crab * r37800 /trunk/ (7 files in 2 dirs): Set leader names to player names in MP (can be overridden on per-faction/per-scenario basis) 20090815 22:00:00< CIA-62> crab * r37801 /trunk/src/ (6 files in 2 dirs): WIP on show_ai_moves 20090815 22:00:05< CIA-62> crab * r37802 /trunk/data/ai/dev/mapcontrol_ai.cfg: Added a new developer ai configuration 20090815 22:00:15< ilor> mordante: the bigger problem is that we don't really know the minimum resolution the lobby will work on because some stuff might grow quite a bit like userlist width 20090815 22:01:19< ilor> mordante: I keep getting the scrollbar assert, now updating and rebuilding with the fix for that 20090815 22:01:39< ilor> mordante: got carried away a bit with the desk-building thing :P 20090815 22:02:10< mordante> yes, but the automatic scrollbars for the window should make sure it will always fit on 800x600, might not look optimal but will work 20090815 22:02:53< Crab_> Ivanovic: r37800. It could be done in other ways, too. The method I've chosen might not be optimal. 20090815 22:02:55< mordante> I managed to test the scrollbar assert myself, I'm rather convinced that has been properly "hidden" 20090815 22:03:32< mordante> I only haven't been able to nicely reproduce the dynamic cast error 20090815 22:03:42< mordante> no problem to be carried away ;-) 20090815 22:05:14< ilor> mordante: in general would you mind me getting to know the "inside" part of gui2 in the near future (and likely asking many questions on the way)? I feel we might use another "gui2 person" that could handle the more subtle bugs like those 20090815 22:06:35< mordante> ilor, no absolutely not, I wouldn't mind if the project moves at a higher speed 20090815 22:06:50< Soliton> Crab_: seems silly. we never want leaders to be named like factions. 20090815 22:07:23< Soliton> Crab_: as i mentioned before IMO the best thing to do is rename the faction name key to faction_name so there is no collision to begin with. 20090815 22:07:47< Soliton> and it retains the faction name which you can't easily get otherwise. 20090815 22:08:08< mordante> I also want to work on the documentation for gui2 next week when driving to my work 20090815 22:08:25< mordante> seems the ideal place to make time for that project 20090815 22:12:31< Crab_> Soliton: but, in some MP scenario, scenario creator might want the leader to be named differently 20090815 22:12:55< silene> Crab_: the case of the faulty addon matters, but it is not that important, as one can already write an addon that completely fills a harddrive today 20090815 22:13:38< Soliton> Crab_: then he can do so. 20090815 22:14:48< Crab_> Soliton: so, something like '"if side["name"] is not set, use player_name or save_id as side["name"], else just use side["name"]' ? 20090815 22:19:56< Soliton> Crab_: there is no need for any logic where you put it, it already worked fine before. just unit names are now the name= key which collides with multiplayer_side or something like that. 20090815 22:22:11< Crab_> Soliton: if name= is removed from [multiplayer_side], then leader gets empty name 20090815 22:23:28< Soliton> ok, then something must have changed when sides get assigned their player. 20090815 22:24:02< Soliton> because that's where sides get modified and the leader should get the player name. 20090815 22:24:55< Crab_> Soliton: seems like change_controller is not called 20090815 22:26:30< Crab_> Soliton: ( playturn.cpp:167 ) 20090815 22:26:47< Soliton> seems like that part still works with description which was formerly the unit name, i think. 20090815 22:27:36< Soliton> Crab_: the host is doing the side changes which should be somewhere in multiplayer_connect.?pp i guess. 20090815 22:27:54< Soliton> playturn.cpp is while the game is running. 20090815 22:33:54-!- silene [n=plouf@wesnoth/developer/silene] has quit ["Leaving."] 20090815 22:36:30-!- allefant [n=allefant@allegro/developer/allefant] has joined #wesnoth-dev 20090815 22:36:54-!- Tigge [n=tigge@m90-137-91-220.cust.tele2.se] has joined #wesnoth-dev 20090815 22:37:14-!- allefant_ [n=allefant@allegro/developer/allefant] has quit [Read error: 110 (Connection timed out)] 20090815 22:38:28-!- fendrin [n=fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20090815 22:39:23< fendrin> hi 20090815 22:39:51< fendrin> ai mp test game today? 20090815 22:40:12< Crab_> deekay: ^ ? 20090815 22:44:15-!- Noyga [n=lame-z@wesnoth/developer/noyga] has joined #wesnoth-dev 20090815 22:44:17-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit ["WRYYYYYYYYYYYYYYYYYYYY!"] 20090815 22:45:08-!- xchat_sux [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090815 22:46:18-!- xchat_sux is now known as Elvish_Pillager 20090815 22:47:02-!- Elvish_Pillage2 [n=eli@71-10-231-36.dhcp.oxfr.ma.charter.com] has quit [Read error: 60 (Operation timed out)] 20090815 22:52:57-!- melinath [n=melinath@pool-72-72-200-231.altnpa.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 20090815 22:53:39< CIA-62> cornmander * r37803 /website/stats.wesnoth.org/wesstats/controllers/ (killview.py root.py): 20090815 22:53:39< CIA-62> Added an SQL JOIN to merge GAMES/GAMES_MP and KILLMAP tables when doing filtering. Still need to refactor things to get rid of temporary hacks. 20090815 22:53:39< CIA-62> Added some debugging to look at a rare change in [kill_event] format that my parser does not handle. 20090815 22:59:28-!- PK3 [n=pk@r74-192-44-206.vctrcmta01.vctatx.tl.dh.suddenlink.net] has joined #wesnoth-dev 20090815 23:03:26< Soliton> Crab_: changing the user_description stuff in multiplayer_connect.cpp to name solves the issue as well. 20090815 23:03:36< Crab_> Soliton: yes, I've done that already 20090815 23:03:42< Crab_> Soliton: will commit a fix soon 20090815 23:03:48< Soliton> ok, thanks. 20090815 23:04:03< Crab_> thanks for pointing out to a better way to fix that 20090815 23:04:13< Soliton> no problem. 20090815 23:07:09< Crab_> Soliton: should computer players have "computer player" or ai descriptions (e.g. "default AI") as a nickname ? 20090815 23:07:39< Soliton> ai description would probably be nicer. 20090815 23:07:56< Elvish_Pillager> hmm, you can't use #ifdef for your own #defines? 20090815 23:08:00< Crab_> 'AI description + side number' ? 20090815 23:08:18< Soliton> sounds good. 20090815 23:14:24< Soliton> Elvish_Pillager: #define is for macro definitions not preprocessor symbols like MULTIPLAYER. 20090815 23:14:56< Elvish_Pillager> and there's no way to set an arbitrary preprocessor symbol? 20090815 23:15:41< Soliton> that'd be a pretty bad idea i imagine. 20090815 23:16:04< Soliton> well, in campaigns you have define=. 20090815 23:16:36< Soliton> i wonder what happens if you put MULTIPLAYER in there. 20090815 23:16:42< Elvish_Pillager> Heh... 20090815 23:17:09< Soliton> IMO that define should be derived from the addon name. 20090815 23:17:39< Elvish_Pillager> ...with some suffix so it doesn't do stupid things if someone names their addon MULTIPLAYER. 20090815 23:18:20-!- Tigge [n=tigge@m90-137-91-220.cust.tele2.se] has quit [Remote closed the connection] 20090815 23:22:49-!- Noyga [n=lame-z@wesnoth/developer/noyga] has left #wesnoth-dev ["Quitte"] 20090815 23:26:12-!- Aethaeryn [n=Michael@wesnoth/umc-dev/developer/aethaeryn] has quit [Read error: 104 (Connection reset by peer)] 20090815 23:29:50-!- Aethaeryn [n=Michael@wesnoth/umc-dev/developer/aethaeryn] has joined #Wesnoth-dev 20090815 23:36:51< CIA-62> cornmander * r37804 /website/stats.wesnoth.org/wesstats/controllers/ (killview.py root.py): Date selection is now saved between page refreshes on the killmap page. Removed some code now unnecessary because of the SQL JOIN. 20090815 23:39:57< mordante> I'm off night 20090815 23:41:19-!- mordante [n=mordante@wesnoth/developer/mordante] has quit ["Leaving"] 20090815 23:41:55< noy> anybody here use basilisk II or Sheepshaver? 20090815 23:43:07< Elvish_Pillager> noy: I used it once 20090815 23:43:12< noy> hmmm 20090815 23:44:33< CIA-62> crab * r37805 /trunk/ (8 files in 2 dirs): rework of r37800 - set human leader names to player names, AI leader names to AI descriptions 20090815 23:49:03< noy> Elvish_Pillager: I guess not enough to trouble shoot a problem 20090815 23:49:16-!- corn [n=cornmand@wesnoth/developer/cornmander] has quit ["going down for reboot"] --- Log closed Sun Aug 16 00:00:42 2009