Log for #openttdcoop.devzone on 4th March 2012:
Times are UTC Toggle Colours
00:58:06  *** frosch123 has quit IRC
01:26:07  *** Zuu has quit IRC
05:02:28  <Brot6> FIRS Industry Replacement Set - Feature #2296: Supplying Mechanism (rhamph) @
05:05:57  <Brot6> FIRS Industry Replacement Set - Feature #2296: Supplying Mechanism (rhamph) @
05:27:32  *** orudge has quit IRC
05:27:34  *** orudge has joined #openttdcoop.devzone
05:28:20  *** welshdragon has quit IRC
05:28:37  *** welshdragon has joined #openttdcoop.devzone
06:55:48  *** andythenorth has joined #openttdcoop.devzone
08:20:53  *** ODM has joined #openttdcoop.devzone
08:22:05  <andythenorth> planetmaker: do you need test projects for the NML makefile?
08:23:47  <planetmaker> yes and no. Why or how?
08:24:21  <andythenorth> so BANDIT is a good case, for following reason:
08:24:39  <andythenorth> - I don't rely on makefile for build during dev, I have a shell script currently
08:24:44  <andythenorth> - so I don't mind if it breaks :)
08:24:59  <Brot6> BANDIT - Revision 342:1eff0870f029: Docs: update Todo with ideas on generating cargo sprites (andythenorth) @
08:25:33  <andythenorth> - but I no way want to replace makefile for building releases etc
08:30:59  <andythenorth> also....moin
08:32:04  <planetmaker> moin :-)
08:32:13  <planetmaker> hm, you use a shell script for daily work?
08:32:18  <Rubidium> ahoj
08:32:27  <planetmaker> Then ... it is a bad test case. As it doesn't get sufficient test :-P
08:35:29  <planetmaker> ahoj rubi
08:35:37  <andythenorth> CF uses the makefile though...
08:36:06  <andythenorth> I only circumvent it for two reasons:
08:36:10  <andythenorth> - shell script is faster
08:36:19  <andythenorth> - I need to curl the set config sometimes from my site
08:40:54  <andythenorth> at some point, I assume the shell script gets slower
08:40:59  <andythenorth> because it has zero dep checks
08:41:35  <andythenorth> I also have the exciting case of wtf to do about running the pixa generator from the makefile
08:41:36  <andythenorth> :)
08:44:51  <Brot6> BANDIT - Bug #3777 (New): trailer Pixa input file not aligned with NML templates (andythenorth) @
08:54:08  *** Zuu has joined #openttdcoop.devzone
09:02:12  *** andythenorth is now known as Guest4990
09:02:13  *** andythenorth has joined #openttdcoop.devzone
09:06:20  <planetmaker> well, a makefile can simply call the script...
09:11:40  <andythenorth> Pixa looks like it will be very slow if regenerating all sprites...
09:11:53  <andythenorth> I could write my own dep checks for it, dunno if that's wise
09:12:23  <andythenorth> same as ogfx, there's no need to generate sprites for every build
09:13:19  <andythenorth> it could also just be run by author when needed, and results committed, as per normal graphics
09:34:11  * andythenorth reads PIL docs
09:34:20  <andythenorth> turns out I invented from scratch some things PIL does :P
10:42:23  <Brot6> BANDIT - Revision 343:003a43484c6c: Codechange: use +ve y as down; origin top left everywhere (andythenorth) @
12:00:40  <Ammler> andythenorth: your shell script building is also faster, if you compare without clean?
12:00:49  <andythenorth> let's see
12:01:27  <Ammler> means, that you build your whole project in the time, the makefile does the dep check
12:06:53  <andythenorth> Ammler: I think my shell script is sometimes slower, depending on context
12:07:00  <andythenorth> but I'm feeding the toddler yoghurt right now :P
12:13:53  <andythenorth> so my test is: 'make clean', then 'touch src/', then 'time make'
12:14:05  <andythenorth> I get ~20s
12:14:18  <andythenorth> whereas my shell script is ~6s
12:14:33  <andythenorth> however the shell script also uses grfcodec to build the grf, not nml
12:14:45  <andythenorth> so it's not good science :P
12:31:54  <Brot6> BANDIT - Revision 344:9f3d3f96c035: Codechange: basic implementation of PixaImageLoader class and... (andythenorth) @
12:37:40  <Brot6> BANDIT - Revision 345:5e1ca14438ef: Codechange: refactor a method name (andythenorth) @
12:44:56  <Ammler> andythenorth: you need to test without clean
12:45:48  <andythenorth> that's that what 'time make' will do no?
12:45:59  <andythenorth> oh no
12:46:04  <andythenorth> I see your point :P
12:46:14  <andythenorth> dumb
12:48:36  <andythenorth> Ammler: ok so I clean, then make, then touch a png (not the main build file), then time make
12:48:37  <andythenorth> ~4s
12:49:03  <Ammler> so you see, your script is slower :-)
12:49:25  <andythenorth> how can that be?
12:49:45  <andythenorth> I guess it doesn't regenerate the nml
12:49:48  <Ammler> because you build everytime
12:49:51  <andythenorth> yup
12:50:02  <Ammler> the makefile does only whats needed
12:50:34  <Ammler> your script might be faster on devzone, but not for developing
12:51:24  <andythenorth> biab
12:51:33  *** frosch123 has joined #openttdcoop.devzone
12:58:06  *** andythenorth has quit IRC
13:24:28  *** andythenorth has joined #openttdcoop.devzone
13:25:15  <andythenorth> Ammler: I'm not certain that make is actually making the grf currently
13:25:37  <andythenorth> or more accurately - I think I need to educate the dep check about my project
13:47:09  <Yexo> <michi_cc> [23:12:13] Hmm, what's the reason that replace/base_graphics/template/spritegroup use "replace <NAME>(....)" while item/switch/produce/spriteset are some kind of "switch (...., <NAME>, ...)"? <- originally replace/base_graphics/etc. didn't have a name at all
13:47:38  <Yexo> the last argument was already optional, so adding a name before would break backwards compatibility
13:48:05  <Yexo> adding an optional name between the keywords and the opening parentheses was the easiest way to add a parameter while keeping backwards compatibility
13:48:33  <Yexo> the disadvantage is indeed that it's inconsistent with the switch/item-blocks
13:49:57  <Yexo> if I would redesign it from scratch right now, I'd make that consistent (not sure which way)
13:49:59  <michi_cc> So the real odd man out is template and spritegroup? I understand the idea for template, but why spritegroup?
13:50:42  <Yexo> because it was "spritegroup name {...}" without any other arguments
13:50:59  <Yexo> not everything was thought out that well, some things grew over time and became inconsistent
13:51:18  <michi_cc> The "name before opening paren" could probably be added to all elements without breaking old code.
13:57:13  <Yexo> how would you change "switch (feature, name, expression)" ?
13:57:25  <Yexo> hmm, could count the number of arguments
13:57:37  <Yexo> so I think that could work
14:00:36  <michi_cc> Basically "switch(...)" takes parameter set A while "switch name(...)" could take a completely different parameter set B.
14:02:04  <Brot6> BANDIT - Revision 346:fb05e5c3869a: Codechange: better abstract options for PixaImageLoader (andythenorth) @
14:02:29  <Brot6> Dutch Trains 2.0 - Revision 279:3def2a244f27: Change: cargo capacity for Mat'35 ELD2 (foobar) @
14:02:30  <Brot6> Dutch Trains 2.0 - Revision 280:0446b0e4541f: Feature: merge both Mat'35s into a single vehicle (... (foobar) @
14:03:47  <andythenorth> wrt switch naming - imo there's not much to choose between them on readability
14:04:55  <andythenorth> are there implementation reasons to prefer one?
14:05:51  <Brot6> Dutch Trains 2.0 - Revision 281:68145133903d: Cleanup: remove template test engine (compatibility... (foobar) @
14:06:30  <Brot6> BANDIT - Revision 347:0411d0758283: Codechange: space function / class definitions to be more com... (andythenorth) @
14:08:50  <michi_cc> andythenorth: I'd think it'd be nice to have the same name syntax for all block types, and the "name inside parameters" variant can't be added to some blocks without breaking existing syntax.
14:09:16  <michi_cc> That leaves only the other variant.
14:10:40  <andythenorth> 'one way and only one'
14:22:25  <Brot6> BANDIT - foo.png (andythenorth) @
14:25:26  <Brot6> BANDIT - foo2.png (andythenorth) @
14:30:20  <Yexo> Hirundo: I'm missing the option [x_left, y_upper] for the mask file
14:31:08  <Yexo> not sure if that will be used by anyone, but imo it's logical to support it
14:31:22  <andythenorth> hmm
14:31:26  * andythenorth has just been writing masks
14:31:27  <andythenorth> how odd
14:31:40  <andythenorth> co-incidences :P
14:31:42  <Brot6> BANDIT - Revision 348:486968ed35f7: Codechange: utility method to generate a zoomed spritesheet w... (andythenorth) @
14:31:58  <andythenorth> biab
15:05:22  *** JVassie has joined #openttdcoop.devzone
15:15:48  <Hirundo> Yexo: That might make sense, didn't think about it
15:28:15  <Hirundo> Adding the feature(tte) right now
15:36:09  <Brot6> NewGRF Meta Language - Revision 1872:a5ffdb216625: Feature(tte): Allow specifying offsets only fo... (Hirundo) @
15:37:41  <Brot6> BANDIT - Revision 349:18242a79b96e: Codechange: add cheatsheets directory to hgignore (andythenorth) @
15:37:44  <Hirundo> o_0 my latest commit is listed as being made '18 minutes from now'
15:37:52  <andythenorth> :o
15:37:53  <planetmaker> hehe
15:37:58  <planetmaker> you're quick
15:38:21  <planetmaker> you care about the future ;-)
15:38:25  * Hirundo ponders bad 'back to the future' jokes
15:38:31  <planetmaker> :-P
15:38:56  <Hirundo> probably my VM has some different concept of time
15:39:26  <Brot6> BANDIT - Revision 350:6c914e4d2a80: Codechange: cheatsheet maker for Pixa (andythenorth) @
15:39:28  <Hirundo> pm: perhaps you can explain the effect with general relativity?
15:39:43  <planetmaker> :-) Difficult
15:39:50  <planetmaker> But you might ask CERN :-P
15:40:19  <planetmaker> maybe a connector in your computer was loose or so and caused hyperspeed
15:41:23  * andythenorth is now offering special discount on cheatsheets for images
15:41:31  <andythenorth> dunno what use they are though
15:41:32  <andythenorth> :P
15:41:45  <planetmaker> cheatsheets? Sounds... illegal :-P
15:42:03  <andythenorth>
15:42:08  <Hirundo> I heard about that, but I can't understand how a loose connector could cause a faster measurement
15:42:40  <andythenorth> o/c, for 32bpp, my cheatsheet might need more room :P
15:42:53  <Hirundo> though obviously a speed of 1.0001c smells like a measurement error
15:43:32  <planetmaker> Hirundo: you make the measurement (normal with all ok) and then measure the speed of all components (wire loose = bad coupling = more delay)
15:43:39  <planetmaker> but length estimate remains the same
15:43:52  <planetmaker> or something like that iirc
15:44:56  <planetmaker> you basically add a piece of (bad) cable when you loosen a connection
15:45:10  <planetmaker> a length you don't account for
15:45:51  <planetmaker> or rather you account for but which is not there in the real measurment
15:46:25  <andythenorth> "In total desperation, I called over to the engineering building, and I said, "Please cut off a nanosecond and send it over to me."
15:46:26  <andythenorth> On demonstrating a billionth of a second of electricity travel with a piece of wire, in an interview on 60 Minutes (24 August 1986)"
15:46:32  <andythenorth>
15:46:33  <Webster> Title: Grace Hopper - Wikiquote (at
15:47:21  <planetmaker> you like to quote here ;-)
15:49:06  <andythenorth> seems so :)
15:49:16  <andythenorth> she's an amusing lady
15:51:51  <Rubidium> planetmaker: here or her?
15:52:03  <Rubidium> it is an ingenious way to describe time though
15:53:55  <Rubidium>
15:53:57  <Webster> Title: Admiral Grace Hopper Explains the Nanosecond - YouTube (at
16:06:50  * andythenorth wishes PIL palette handling wasn't so confusing
16:13:22  <andythenorth> I have to load an image once to use, and again to get it's palette
16:13:27  <andythenorth> seems redundant
16:14:49  <andythenorth> grr
16:15:36  <andythenorth> if anyone fancies a challenge, I'd welcome a fix for this
16:15:42  <andythenorth> I'm probably just using PIL wrong
16:16:14  <andythenorth> dunno if this is relevant
16:16:15  <Webster> Title: Creating Palette Images (at
16:23:00  <andythenorth> image.palette gets me an ImagePalette instance
16:23:30  <andythenorth> if I do *anything* else with the image, the palette is screwed
16:23:45  <andythenorth> so I have to load same image as image2 and get its palette
16:30:38  <andythenorth> hmm
16:30:42  <andythenorth> solved it in a hacky way
16:30:55  <andythenorth> palette = deepcopy(image.palette)
16:32:54  <Brot6> BANDIT - Revision 351:bc3c5d8fdd7f: Codechange: refactor cheatsheet maker (andythenorth) @
16:43:38  <Brot6> Dutch Trains 2.0 - Revision 282:cdf9f33e7143: Feature: Mat'36 EL2 (foobar) @
16:43:38  <Brot6> Dutch Trains 2.0 - Revision 283:f5324598bedf: Feature: Mat'36 EL3/ELD3 (graphics by Voyager One) ... (foobar) @
16:46:03  *** JVassie has quit IRC
16:51:57  <Brot6> BANDIT - Revision 352:9f0103fc486f: Codechange: refactor palette handling to be sane (andythenorth) @
16:57:37  *** JVassie has joined #openttdcoop.devzone
17:07:20  <planetmaker> I meant 'her'
17:10:35  <planetmaker> and yes, the video explaining the nanosecond... it's quite a very nice explanation
17:15:49  <Brot6> nml: update from r1871 to r1872 done -
17:24:11  <Brot6> bandit: update from r340 to r352 done (1 warnings) -
17:24:49  <Rubidium> is there anything left for grfcodec that should be done before a release?
17:26:19  <Brot6> dutchtrains: update from r278 to r283 done -
17:58:15  <andythenorth> hmm
17:58:21  <andythenorth> I should fix that BANDIT warning
17:58:30  <andythenorth> "ls: cannot access lang/*.lng: No such file or directory"
17:59:20  <frosch123> Rubidium, planetmaker: any news on the nforenum/osx issue?
17:59:46  <andythenorth> the one Snail reported?
18:00:09  <frosch123> pm was not able to compile openttd.grf or so
18:00:14  <planetmaker> frosch123: last thing I got from him that it suddenly worked iirc. He used the tar ball
18:00:34  <planetmaker> ah, my issue was solved. It was a broken part of libpng
18:00:36  <frosch123> i thought you had the problem with ottd trunk?
18:00:45  <frosch123> ah, ok :)
18:00:47  <planetmaker> libpng-config basically failed
18:01:04  <frosch123> Rubidium: then i cannot think of any issue with grfcodec :)
18:01:20  <planetmaker> and snail builds from tar. That now works. But the funks first like remains but w/o consiquence
18:01:37  <planetmaker> I fear... that's caused by me ... some makefile part only used in tar bundles
18:02:39  <andythenorth> "make choo choo" <- direct quote :P
18:03:14  <andythenorth> from a toddler....
18:03:28  <andythenorth> it's not a valid makefile target , wonder if he'll understand that :P
18:13:42  <Yexo> you didn't write "choo choo : lego" in a Makefile?
18:13:50  <andythenorth> maybe soon :P
18:13:56  <frosch123> the space will cause trouble :p
18:13:59  <andythenorth> 'make bang'
18:14:03  <andythenorth> we shouldd
18:14:15  <andythenorth> good job we have ignore signals :P
18:15:31  <andythenorth> pony proposals
18:15:36  <andythenorth> (1) more epic crashes
18:15:42  <andythenorth> ability to destroy houses etc
18:15:56  <andythenorth> (2) goto 1
18:33:11  <Brot6> BANDIT - Revision 353:90d9d8673c1a: Codechange: cheatsheet indicates origin if set (andythenorth) @
18:33:12  <Brot6> BANDIT - test_coil.png (andythenorth) @
18:33:18  <Rubidium> andythenorth: ;)
18:33:19  <Webster> Title: Shell Scripts For Preschoolers | The Changelog (at
18:33:28  <andythenorth> awesome
18:33:35  <andythenorth> just at my level too :
18:33:36  <andythenorth> :)
18:36:55  <Brot6> DACH Trains - Feature #3778 (New): earlier IC-coaches liveries (Yoshi) @
18:38:28  <Brot6> DACH Trains - Feature #3779 (New): earlier IC-cab-car liveries (Yoshi) @
18:47:50  <Brot6> make-nml: compile of r0 still failed (#3730) -
19:10:39  <Brot6> Following repos rebuilds successful without any difference to earlier nightlies builds: ogfx-trains (48 warnings) (Diffsize: 6), ogfx-industries (Diffsize: 127099), firs (6 warnings), opengfx, foobarstramtracks (Diffsize: 28769), cets (187 warnings), manindu (Diffsize: 2), newgrf_makefile (Diffsize: 1), rust (15 warnings) (Diffsize: 6813), dutchtramset (21 warnings) (Diffsize: 20613), swisstowns (Diffsize: 51), britrains (2 warnings),
19:10:39  <Brot6> dutchroadfurniture (Diffsize: 165910), spanishtowns (Diffsize: 8), frenchtowns (Diffsize: 21), ogfx-rv (42 warnings) (Diffsize: 20398), ogfx-landscape (2 warnings) (Diffsize: 31742), swedishrails (Diffsize: 9075), german-townnames (Diffsize: 5042), dach (104 warnings) (Diffsize: 25201), belarusiantowns (Diffsize: 72), indonesiantowns (1 warnings) (Diffsize: 350), airportsplus (Diffsize: 1161)
19:25:13  <Rubidium> hmm, grfcodec 5.2 or 6? Is grfv2/32bpp significant enough?
19:32:22  <Yexo> yes
19:32:51  <Yexo> I think it's as major a change as will happen to it in the foreseeable future
19:39:36  <Hirundo> Can you return a callback result from a normal (vehicle) action2?
19:40:01  <Hirundo> spec doesn't mention it, but ottd source seems to indicate it's possible
19:40:22  <Yexo> with "normal" action2 you mean one which is supposed to return actual graphics (ie spritegroup/spriteset)?
19:40:48  <Yexo> that's indeed possible but afaik against the (spirit of the) spec
19:42:16  <Hirundo> So for vehicles, there are 32k available action1 IDs, with extended action1
19:42:48  <Hirundo> And for tile layouts there are 'only' 16k IDs, because the 2 highest bits are reserved for transparency/remap
19:43:09  <Hirundo> right?
19:44:28  <Yexo> not sure, will have to look that up
19:45:43  <Yexo> yes, that seems correct
19:46:01  <Yexo> note that it's still possible to re-use action1 IDs
19:46:06  <Yexo> so this amount shouldn't be limiting at all
19:47:49  <Hirundo> I wonder if re-use is even needed at all
19:48:31  <Yexo> I don't think that'd currently be necesarry, we can always add that later if (when) it will be
19:51:14  <Hirundo> Let's see how many FIRS currently has, to get an order-of-magintude estimate
19:53:45  <Hirundo> 905
19:54:23  <Hirundo> 3.7k for dutch trains
19:54:49  * andythenorth wonders how many BANDIT will have
19:55:13  <andythenorth> I'm treating them as though they're free currently :P
19:55:32  <Hirundo> I assume, that "grep spriteset firs/* -r | wc -l" returns the correct answer in this case
19:56:00  <Hirundo> At a quick glance I couldn't find any templating magic that might obfuscate the answer
19:56:50  * andythenorth tallies BANDIT
19:58:09  <andythenorth> estimate 100 vehicles, maybe 4 liveries for each, average 1 extra trailer, maybe 20 cargo variations
19:58:24  <andythenorth> hmm
19:58:26  <andythenorth> 16k :P
19:59:29  <Hirundo> dutchset has only 586, all spritesets are prefixed with "spriteset_" ... that made for some false positives
19:59:50  <Brot6> GRFCodec - Revision 922:39d52aee5796: -Fix: shell error about expected unary operator (Rubidium) @
19:59:50  <Brot6> GRFCodec - Revision 923:0b2472ae8a04: -Fix: use .ottdrev if is exists for getting the revision of... (Rubidium) @
20:00:10  <Hirundo> firs.nml has 423
20:00:22  <Hirundo> so 16/32k should be plenty for now
20:00:54  <michi_cc> Hirundo: Check CETS if you need some high numbers for vehicles :)
20:02:14  <andythenorth> yarp
20:02:26  <andythenorth> that 7 minute compile must be doing something ;)
20:02:47  <michi_cc> Currently counting in at ~101000 real and pseudo sprites.
20:03:39  <Brot6> BANDIT - Revision 354:0ae958322b96: Codechange: make the origin check more explicit (Alberth) (andythenorth) @
20:04:25  <Yexo> michi_cc: 101000 sprites with 8 sprites / spriteset still makes for "only" 15k spritesets, still a little under half the "limit"
20:04:44  <Yexo> and given that CETS is pretty extreme in that regards, I don't think it'll become a problem soon
20:04:50  <Hirundo> How do you get that many sprites drawn? Or are many computer-generated?
20:05:06  <Brot6> GRFCodec - Bug #3740 (Closed): Can't compile grfcodec anymore (Rubidium) @
20:05:23  <michi_cc> It's actually only 7771 spritesets, the 100k is the total count of all (pseudo) sprites.
20:08:20  <michi_cc> Hirundo: a) A lot of vehicles, even if a lot of them currently have dummy graphics, and b) all vehicles are articulated as two or three parts with some clever magic to cut the source sprites into pieces for each artic part to avoid glitches under bridges.
20:10:29  <michi_cc> Oh, and of course more turning stages than the classic eight.
20:16:49  <Hirundo> cets.nml has 267k lines :o
20:36:52  <andythenorth> nml is very easy to generate or template :)
20:37:09  <andythenorth> that could be done with nfo - but oh, the pain :P
20:39:24  <Hirundo> I wonder, why my python seems to have cProfile (the profiler) but not pstats (the profile statistics printer)
20:41:48  <andythenorth> hmm pstats is very polite when you quit :o
20:44:11  <Yexo> <Hirundo> cets.nml has 267k lines :o <- out of those, 79k are empty
20:45:05  <Hirundo> still many
20:48:57  <michi_cc> The limit CETS is probably most likely to run into is the local param/variable limit, as e.g. the climate availability stuff generates quite a lot param assignments per vehicle.
20:49:30  <michi_cc> While these params are reused, it might still be tight if additional params are needed for some other new feature.
20:51:34  <andythenorth> hmm
20:51:39  <andythenorth> BANDIT only has 21k lines :(
20:51:43  * andythenorth must try harder
20:52:23  <andythenorth> "repeat range(300000): stuff" :P
20:55:27  <Yexo> michi_cc: when that becomes a real problem we can look at how to optimize it
21:02:19  *** ODM has quit IRC
21:15:00  <Brot6> BANDIT - Revision 355:f24f4abdde06: Codechange: right-align index numbers in cheatsheets (andythenorth) @
21:36:17  <Brot6> Dutch Trains 2.0 - Revision 284:13d99333e758: Fix: shortening of Mat'36 EL3/ELD3 (foobar) @
22:11:21  <Hirundo> hmmm for CETS, 497 out of 735 seconds are spent in parse_real_sprite
22:13:01  <Hirundo> most 'internal time' is in binop.reduce, about 2 mins
22:20:07  *** andythenorth has quit IRC
23:14:49  *** frosch123 has quit IRC
23:26:56  *** JVassie has quit IRC

Powered by YARRSTE version: svn-trunk