Back to Home / #openttd / 2012 / 02 / Prev Day | Next Day
#openttd IRC Logs for 2012-02-27

---Logopened Mon Feb 27 00:00:04 2012
---Daychanged Mon Feb 27 2012
00:00*Nat_aS only plays scenarios because random maps are balls
00:02<Eddi|zuHause>so you tried all scenarios from the content download yet?
00:02-!-tokai|noir [] has joined #openttd
00:02-!-mode/#openttd [+v tokai|noir] by ChanServ
00:08-!-tokai|mdlx [] has quit [Ping timeout: 480 seconds]
00:08-!-tokai [] has joined #openttd
00:08-!-mode/#openttd [+v tokai] by ChanServ
00:11-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
00:18<Nat_aS>i sould
00:20-!-Doorslammer [] has quit [Quit: ajax IRC Client]
00:50-!-tokai|mdlx [] has joined #openttd
00:56-!-Eddi|zuHause [] has quit []
00:56-!-Eddi|zuHause [] has joined #openttd
00:56-!-tokai [] has quit [Ping timeout: 480 seconds]
00:57-!-DOUK [] has quit [Ping timeout: 480 seconds]
00:59-!-roboboy [] has joined #openttd
01:02-!-kkb110 [] has quit [Read error: Connection reset by peer]
01:02-!-kkb110 [] has joined #openttd
01:05-!-Snail_ [] has quit [Quit: Snail_]
01:08-!-Lachie [] has joined #openttd
01:12-!-kkb110_ [] has joined #openttd
01:12-!-kkb110 [] has quit [Read error: Connection reset by peer]
01:16-!-JVassie [~James@] has joined #openttd
01:21-!-roboboy [] has quit [Ping timeout: 480 seconds]
01:41-!-kkb110_ [] has quit [Read error: Connection reset by peer]
01:42-!-kkb110 [] has joined #openttd
01:53-!-sla_ro|master [slaco@] has joined #openttd
02:01<Lachie>Is there any reason why, despite being refitted correctly and having cargo of the correct variety at a station, a train will not load? Just sitting with the "Loading/Unloading" thing in the window
02:03<Nat_aS>not sure
02:03<Nat_aS>If I wanted to be a dick I'd say check aggain.
02:03<Nat_aS>oh, check the trains orders
02:03<Nat_aS>sometimes it might be set to not load, but then it would not be waiting at the station so Idono.
02:04<Lachie>Yeah, it's nothing stupid like that. Potentially may have stuffed something up in the NML that isn't letting it load.
02:04<Rhamphoryncus>does it give a percentage of progress? Is there a timetable setup?
02:05<Lachie>0%, no timetabling.
02:05<Rhamphoryncus>Does the station supply that cargo type? If you were to rebuild that station does the catchment say it'd be supplied?
02:05<Nat_aS>yeah that caused a problem for me
02:05<Lachie>yes and yes.
02:06<Nat_aS>because I thought I had outrigger stations connected, but they were seperate because I forgot to Ctrl click
02:06<Lachie>after the train's been sent to the station, the cargo has started to build up in it. It's weird.
02:06<Pikka>Lachie: I don't know if it's possible to set the "load amount" property to 0. :D
02:06<Rhamphoryncus>That is weird. Can you screenshot the station with the train's orders showing?
02:07<Nat_aS>you can set diffrent load/unload amounts other than full?
02:07<Rhamphoryncus>Nat_aS: no
02:07<Rhamphoryncus>If it's a 1 tile station with a 10 tile train it'd take forever to load
02:08<Nat_aS>I mean is it possible for a train to be ordered to only unload part of it's cargo
02:08<Pikka>no, it isn't
02:08<Nat_aS>it should be
02:08<Pikka>well you know where the codebase is
02:09*Rhamphoryncus is already knee deep in code related to that ;)
02:09<Pikka>Lachie: can you bung your NML up somewhere? I can see if I can spot anything obvious. :)
02:09<Lachie>just uploading a picture now
02:09<Lachie>Pikka: sure. Just give me a sec.
02:11-!-APTX [] has quit [Ping timeout: 480 seconds]
02:16-!-Twofish [] has joined #openttd
02:16-!-Guest4180 [] has joined #openttd
02:16-!-Guest4180 is now known as macee
02:17<Nat_aS>who was it who suggested depoting before a station?
02:18-!-Progman [] has joined #openttd
02:18<Lachie>noone. it's set up to take a teaser picture for a set development thread.
02:20<Lachie>It's not meant to be a functional network, just needs to be able to load cargo and move to another location. I don't see what that should have caused a problem though.
02:20-!-JVassie [~James@] has quit [Ping timeout: 480 seconds]
02:20<Rhamphoryncus>Yup, that is weird. Nothing comes to mind.
02:22<Lachie>Pikka: how much of the NML should you need?
02:22<Pikka>just the stuff relating to the wagon
02:26<Pikka>I still suspect it's the load amount property :P
02:26<Lachie>potentially. I haven't explicitly set one.
02:27<@peter1138>static dlls that aren't static. crazy.
02:27<Lachie>assuming you're not talking about cargo_capacity
02:27<DDR>Lachie: This is probably a stupid question, but are the train cars refitable?
02:28<Lachie>DDR: yes, they surely are.
02:28<DDR>And are they actually refitted to take sand?
02:28<Pikka>loading_speed: 5;
02:28<DDR>er, stone.
02:28<Pikka>looks like you have to me :)
02:29<Lachie>Pikka: I set that to attempt to rectify the issue. that is the default, is it not?
02:30<Pikka>I'm pretty sure all properties default to 0 for a new ID
02:30<Lachie>DDR: yes. The stone only began to appear in the station window after the train had stopped.
02:30<DDR>Ok, that's all good then.
02:31<DDR>Just had to check. ;) I've been guilty of such a mistake more often than I'll admit; that is to say, not once.
02:33<Lachie>ah. Must have been the not setting the load speed.
02:33<Lachie>seems to work fine on restart.
02:42-!-macee [] has left #openttd []
02:42-!-andythenorth [] has joined #openttd
02:42-!-Pulec [] has quit []
03:01-!-Pikka [] has quit [Quit: ChatZilla 0.9.88 [Firefox 10.0.2/20120215223356]]
03:02-!-Pikka [] has joined #openttd
03:18-!-Twofish [] has quit [Quit: Leaving]
03:25-!-Twofish [] has joined #openttd
03:29-!-Firartix [] has joined #openttd
03:39<andythenorth>o/ Pikka
03:39<Pikka>'lo bob
03:40<andythenorth>is it done yet?
03:40<Pikka>what's that then?
03:41<andythenorth>the work, all the work, the work
03:43<Pikka>all that
03:43<xiong>Nat_aS, might have been me. I like depoting before a station. I like depoting after a station, too. I like depoting a lot, period.
03:43<Pikka>,_with_SR_electric_locomotive_geograph-2384023-by-Ben-Brooksbank.jpg andy
03:43<Pikka>one gusta.
03:44<Pikka>but right now I must dans le shoppe por dinnerables.
03:44-!-kkb110 [] has quit [Read error: Operation timed out]
03:45<xiong>Nat_aS, If you've got a train full loading and you think it might have to wait for some time, it's very good to depot after. Even better is to make a recirculation route so you don't full load at all; you just load and conditional order the recirculation, with depoting, if not full.
03:50<appe>Pikka: how cute.
03:58-!-DDR [] has quit [Quit: ChatZilla 0.9.88 [Firefox 10.0.2/20120216100510]]
04:00<andythenorth>baby maintenance - bbl
04:00-!-andythenorth [] has quit [Quit: andythenorth]
04:03-!-tokai|noir [] has joined #openttd
04:03-!-mode/#openttd [+v tokai|noir] by ChanServ
04:05-!-KouDy [~KouDy@] has quit [Read error: Connection reset by peer]
04:06-!-KouDy [~KouDy@] has joined #openttd
04:09-!-tokai [] has joined #openttd
04:09-!-mode/#openttd [+v tokai] by ChanServ
04:09-!-tokai|mdlx [] has quit [Ping timeout: 480 seconds]
04:13-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
04:14<@peter1138>12147 petern 20 0 2358m 1.6g 5376 S 1 30.2 179:02.55 monodevelop
04:14<@peter1138>mm, bloat :p
04:16<Rhamphoryncus>Anybody know why km-ish/h exists? Why that unit?
04:17-!-hbccbh [~hbc@] has joined #openttd
04:18<@peter1138>because that's what ttd used
04:18<Rhamphoryncus>seriously? o.O
04:18<Rhamphoryncus>Given the choice between two units, km/h and mph, they decided to make up a third?
04:19<@peter1138>no, they decided to use an approximation
04:20<@peter1138>so many MB :(
04:20<Rhamphoryncus>The sane thing to do would be store km/h (or mph) and multiply by 1.6 when displaying as mph. Done.
04:20<@planetmaker>opengfx and the 32bpp graphics?
04:21<@peter1138>no, the software running on my pc :(
04:21<@planetmaker>Rhamphoryncus, and then the speed - possessed people come and give you all the extra digits
04:21<@planetmaker>and who says that the specs are sane?
04:21<Rhamphoryncus>the same people that have the wiki claim a tile is 668 km across?
04:21<@planetmaker>I doubt any of us developer ever said the specs are sane :-)
04:22<@planetmaker>and the scale with 668km accross is correct
04:22<@planetmaker>as are many other interpretations of scale
04:23<@planetmaker>and... there's little point in questioning them. The reason mostly is 'historical raisins'
04:23<Rhamphoryncus>numerically correct, but completely ludicrous and adds nothing to the game. It's an amusing factoid resulting from the game mechanics, not actually part of the game mechanics
04:24<Rhamphoryncus>The earth would only be 60 tiles. Jupiter would only be 670.
04:24<@planetmaker>but essential when writing newgrfs
04:25<@planetmaker>not the scale in particular. But knowledge of these conversions etc
04:25<Rhamphoryncus>The sun is 2095 tiles, so there's our large map size
04:25<Rhamphoryncus>sure, knowing how they interrelate is important
04:26<@peter1138>they're not important at all, that's whole point
04:26<@planetmaker>scale indeed is totally unimportant
04:26<Rhamphoryncus>and the reason I'm asking is I've decided to fix a rounding bug in converting between them
04:26<@peter1138>knowledge of that fact that you *can't* put a consistent scale on everything is important
04:26<@planetmaker>you mean "fix", Rhamphoryncus
04:26<Rhamphoryncus>It'd be nice if the wiki actually said any of that
04:27<@planetmaker>you should grep the project's history for when that speed calculation was changed
04:27<Rhamphoryncus>No, as it's a display unit I really do mean hix
04:27<@peter1138>problem is many graphics artists don't seem to understand :p
04:27<Rhamphoryncus>I'm talking about the max speed in timetables
04:27<@planetmaker>it should be the exact same as the vehicle speed shown when travelling there
04:27<@planetmaker>don't ever get started on distance scale. It's ... pointless
04:28<Rhamphoryncus>It is. But it's not the speed that's entered.
04:28<@planetmaker>a tile is 5m as it's 668km
04:28<Rhamphoryncus>You enter 112 and it says 111
04:28<@planetmaker>and as the scale is arbitrary, the speed wrt tiles is
04:28<@planetmaker>a train not necessarily can travel 112 km/h
04:28<@planetmaker>due to granularity of the speed property
04:28<Rhamphoryncus>.. that's irrelevant is it not?
04:29<@planetmaker>But I don't know.
04:29<@planetmaker>It's not
04:29<@planetmaker>Thus entering 112 km/h is pointless :-)
04:29<@planetmaker>but ok, the user should not care about that
04:29<@planetmaker>the trains then just should go 111 km/h
04:30<Rhamphoryncus>Actually that's all we've done in the current openttdcoop game. We chose 111 because that's the displayed speed limit on curves, but if you enter 111 you get 110, if you enter 110 you get 109, etc. So we enter 112 and all is good.
04:30<Lachie>has anyone ever thought of implementing signal rules ala ttdp?
04:30<@planetmaker>Lachie, yes
04:30<@planetmaker>but the UI sucks
04:30<@peter1138>i have a partial patch for it
04:30<@peter1138>which doesn't work
04:30<@peter1138>i never got that far :p
04:31<@planetmaker>well. The issue I'd have is that I'd need to click on each signal to understand the network
04:31<@planetmaker>which is... not ideal
04:32<@planetmaker>but that's my understanding of being the "major" reason. I may be totally off :-)
04:33<Rhamphoryncus>Anyway, fixing the rounding is in of itself trivial, but the code is going through a couple steps of rounding so I have to decipher them and figure out where to fix
04:35<@planetmaker>there's an extra pair of routines SpeedToDisplaySpeed and vice versa
04:35<@planetmaker>Spelling may be a bit different
04:35<Rhamphoryncus>yes, looking at them
04:39*Pikka returns
04:40<@peter1138>the only way to fix the rounding issues is to introduce non-integer speeds
04:40<Pikka>it's not "km/h ish", it's mph/1.6, and it's that way because chris sawyer was lazy and wanted to be able to type "80" for 80mph :)
04:40<@peter1138>(or multiply them)
04:40<@peter1138>someone decided to change the wording to "km/h ish" :(
04:41<@peter1138>i think "mph/1.6" as a unit confused some people
04:41<Rhamphoryncus>No, all I have to do is make sure it rounds to a value that matches what the user entered. Which probably just means rounding up.
04:41<Pikka>pedro, any thoughts on
04:42<Pikka>it's a little annoying that my variable runningcosts get broken by setting a low speedlimit. :)
04:43*planetmaker welcomes pikka
04:43<Pikka>hello planetmaker
04:44<__ln__>never let an englishman/scotsman/americanman design a system of units.
04:44<Pikka>we never have, __ln__
04:44<Pikka>we've always left it to the french
04:45<Lachie>damn french
04:45<Rhamphoryncus>UTC was left to the politicians x_x
04:49<Lachie>holy crap, two extra zoom levels.
04:50<Lachie>was unprepared.
04:50<Pikka>it's pretty good, you can actually see the graphics on a high-resolution monitor again
04:50<Pikka>instead of just tiny little moving dots
04:55-!-tokai|mdlx [] has joined #openttd
05:01<@planetmaker>:-) yeah
05:01-!-tokai [] has quit [Ping timeout: 480 seconds]
05:01<@planetmaker>I find the 2x zoom easy on the eye
05:02-!-TinoDidriksen [] has quit [Ping timeout: 480 seconds]
05:03-!-TinoDidriksen [] has joined #openttd
05:07-!-andythenorth [] has joined #openttd
05:33<andythenorth>way too much scaffolding here:
05:33<andythenorth>signal to noise ratio is low in that code
05:33<Rhamphoryncus>yes, I'd say so.
05:34<andythenorth>I could abstract it away to methods, but then you have to read a chain of methods....
05:34<andythenorth>the only significant things are the numbers
05:34<andythenorth>I could learn how to pass **kwargs etc
05:35<Rhamphoryncus>You almost want ctx.PixaMixerSequence([(0, 0, 19)]) to be each line
05:35<Rhamphoryncus>and even that can be simplified to f = ctx.PixaMixerSequence; f([(0, 0, 19)])
05:36<Rhamphoryncus>Don't be afraid to make a disposable local function if it helps
05:36<Rhamphoryncus>def f(seq): return PixaMixer(sequence=PixaSequence(sequence=seq), transform=transform, transform_options=transform_options)
05:37<andythenorth>I was going to do that
05:37<andythenorth>I worry about too much abstraction
05:37<andythenorth>you hit a point where abstraction ~= magic
05:37<andythenorth>for the casual reader
05:39<Rhamphoryncus>yeah, but in this case it's a win. Just make sure that function is nested in the current function so it's literally a line above, rather than being buried in the global scope somewhere
05:42<Eddi|zuHause>maybe you can build something with partial()
05:43<Rhamphoryncus>eh, I really dislike partial. It's awkward and confusing.
05:43<Rhamphoryncus>andythenorth: another point: you might be overdoing the keyword arguments
05:43<Eddi|zuHause>well, it may be shorter than a lamda :)
05:43<Rhamphoryncus>I prefer lambda :/
05:44<andythenorth>I know, but explicit args help me understand what I'm passing
05:45<andythenorth>the biggest problem I have is that constructing a PixaMixer involves rather redundantly constructing and passing a PixaSequence too
05:45<andythenorth>but I figure alberth or someone else will help clean that up later
05:46*andythenorth has been sitting on this for too long and needed to write some code instead of pondering
05:56-!-Firartix [] has quit [Ping timeout: 480 seconds]
06:01-!-Bolli [~Bolli@] has joined #openttd
06:03-!-sla_ro|master [slaco@] has quit []
06:04<Bolli>i'm having a few issues with multiplayer in 1.2.0-RC1, can anybody help?
06:04<@planetmaker>depends. We do not know your questions or problems
06:04<@planetmaker>@topic get -3
06:04<@DorpsGek>planetmaker: Don't ask to ask, just ask
06:04<Bolli>its just being very very very slow, and keeps disconnecting
06:05<Bolli>several others playing the game have had the same issue
06:05<@planetmaker>sounds like a bad connection of the server then
06:05<Bolli>but some people have been fine
06:05<@planetmaker>or a bad connection of the clients. Or clients with insufficient CPU
06:05<Bolli>we've played games ok on older versions in the past...
06:06<@planetmaker>CPU load highly depends on map size, vehicle number, NewGRFs,...
06:06<@planetmaker>so working with one map is no indicator for working with another
06:06<@planetmaker>A 2k * 2k map with 2k vehicles brings most computers to loose connection to a server
06:07<@planetmaker>even 1k or maybe 500 vehicles might suffice for that map size
06:07<Bolli>theres probably max ~600 vehicls
06:07<@planetmaker>well. Check your CPU usage. Mind that openttd only uses one core
06:07<Bolli>and its 2048x2048
06:07<@planetmaker>if thus one core is used at 100%, then your machine is too slow
06:07<Bolli>but i can't connect, it instantly jams... :/
06:08<@planetmaker>My computer would have problems to connect there
06:08<@planetmaker>thus on the coop servers we usually use maps in the range 500x500 tiles
06:08<@planetmaker>thus 0.25 Mega-Tiles
06:09<Bolli>ok, yes it instantly jumps to 50% CPU
06:09<Bolli>so one processor
06:09<@planetmaker>on a dual core, I assume?
06:09<@planetmaker>This low amount of max vehicles is the main reason to not use that big maps on MP servers
06:10<@planetmaker>Or most clients won't enjoy the game past the initial stages or the mid-game stage
06:10<Bolli>456 vehicles in total
06:10<Bolli>mostly trains
06:11<@planetmaker>You could enable "pause on join" on the server. Maybe that helps to delay the limit a bit
06:11<@planetmaker>if that isn't enabled already
06:11<Bolli>no i don't think it is...
06:12<@planetmaker>mind that it's a server-side setting. Thus you need to have at least rcon to the server.
06:12<Bolli>yeah, i'm going to get somebody with rcon access to do it
06:22<Bolli>the next question i have, is how can i query a server to see if its running? (for a web site uptime indicator)
06:24<@planetmaker>search for OpenTTDlib
06:24-!-tokai|noir [~tokai@] has joined #openttd
06:24-!-mode/#openttd [+v tokai|noir] by ChanServ
06:25<Eddi|zuHause>hm... is there any dd-like tool that i can give a rate limit?
06:25<Bolli>thank you planetmaker
06:26<SpComb>Eddi|zuHause: local disk I/O?
06:26<Eddi|zuHause>SpComb: yes
06:26<SpComb>ionice or somesuch
06:27<SpComb>assuming you want to rate-limit to not slow down everything else
06:27<SpComb>implying you really just want to tweak your kernel's I/O scheduler :)
06:29<Eddi|zuHause>well the actual problem is this: since my last system update, my computer locks up when copying large files (~>200MB-ish) to a slow drive (where "slow" is slower than the source drive) and "lock up" means "doesn't react to keyboard or mouse events"
06:29<Eddi|zuHause>and nobody i asked has even a clue how to diagnose this
06:30-!-tokai|mdlx [] has quit [Ping timeout: 480 seconds]
06:30<SpComb>copying files (cp) or block devices (dd)?
06:30<@planetmaker>Have you tried `rsync --bwlimit` or `pv -L` ? as quote from
06:31<@planetmaker>of course you could also try to nice it more
06:32<Eddi|zuHause>SpComb: both
06:33<Eddi|zuHause>SpComb: and also heavy IO operations like "make -j12"
06:33<SpComb>is the target/write disk some USB disk?
06:33<Eddi|zuHause>(it's fine with -j5 or -j6, but it definitely was better before)
06:33<Eddi|zuHause>SpComb: yes, but doesn't matter
06:34-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
06:35-!-Elukka [] has joined #openttd
06:36<@peter1138>i've noticed IO is blocking a lot these days
06:37<Eddi|zuHause>the update was from 2.6.37 to 3.1, but further updating to 3.2 didn't help
06:38-!-TheMask96 [] has joined #openttd
06:39<Eddi|zuHause>well, it's annoying as hell when you want to copy a file that takes half an hour, and you can't use your 6-core computer anymore...
06:41<SpComb>sounds buggy
06:41<SpComb>some regression in the IO scheduler when write queues/buffers fill up
06:41<SpComb>maybe try switching to a different IO scheduler?
06:41<SpComb>not sure how easy that really is
06:42<SpComb>might be some boot-time kernel argument
06:42<Eddi|zuHause>tried that
06:42<Eddi|zuHause>echo noop > /sys/block/sdf/queue/scheduler
06:43<SpComb>a bug in the USB driver?
06:43<Eddi|zuHause>happens with SATA disks as well
06:43<SpComb>and even with `dd if=/dev/sdXY of=/dev/sdZX`?
06:44<SpComb>i.e. direct block device read/write?
06:44<Eddi|zuHause>i have no spare disk to try that
06:45<SpComb>does it recover from the lockup?
06:45<Eddi|zuHause>yes, when the write is done
06:45<SpComb>you'd have to ask the kernel team how to diagnose it
06:45<SpComb>but by that point you'd probably find the existing bug report or somesuch :)
06:46<SpComb>I just upgraded some systems to 3.0, 3.2, haven't noticed any issues myself yet
06:48<SpComb>(Ubuntu 11.10, Debian wheezy/testing)
06:48-!-Biolunar [] has joined #openttd
06:49<andythenorth>extensible systems with defined interfaces demand a lot more scaffolding :P
06:49<andythenorth>'my code varies for every case and is entirely custom' has less scaffolding :P
07:04*andythenorth wonders wtf lambda is for anyway
07:04<Eddi|zuHause>lambda is an "inline-def"
07:05<Eddi|zuHause>"def f(x): return a*x" is the same as "f = lambda x: a*x"
07:05<andythenorth>so lambda is just more compact in that case?
07:06*andythenorth is trying to pass functions with args to another function
07:06<Eddi|zuHause>and you can put lambdas into expressions, function calls, etc.
07:06<andythenorth>lambda was suggested as one solution, partial() as another
07:06<Eddi|zuHause>andythenorth: seen my for_all_vehicles() function?
07:07<andythenorth>which file?
07:07<andythenorth>foreach_vehicle ?
07:10*andythenorth reads
07:11<andythenorth>partial() might do what I need
07:11<Eddi|zuHause>partial works like this: you have a function f(a,b) and turn it into partal(f,a)(b)
07:11-!-Bolli [~Bolli@] has quit [Quit: Leaving]
07:11<andythenorth>(f,a)(b) ?
07:11-!-smoovi [] has joined #openttd
07:11<Rhamphoryncus>lambda and partial have the disadvantage of not being named in tracebacks
07:12<Eddi|zuHause>partial(f,a) returns a function that consumes one further argument (b)
07:13<andythenorth>so my code can pass an optional transform function to the renderer
07:13<Eddi|zuHause>"partial(f,a)" is short for "lambda b: f(a,b)"
07:13<andythenorth>the transform can be specified when making the call to the renderer
07:13<andythenorth>as can the options for the specific transform
07:13<andythenorth>partial might do that
07:14-!-cmircea [~cmircea@] has joined #openttd
07:14<Eddi|zuHause>might have to read up whether partial can work with keyword-args, but i assume it should...
07:14<andythenorth>docs imply yes
07:14<andythenorth>so I have 'colour_shift(shift_amount)'
07:14<andythenorth>transform = partial(colourshift, 1)
07:15<andythenorth>rather than
07:15<andythenorth>transform = colour_shift, transform_options = {'shift_amount' : 1}
07:22<Pikka>the Class 71 is too good
07:22<Pikka>none of its drawbacks apply to TTD. D:
07:22<andythenorth>just give it a short life
07:22<andythenorth>or awful reliability :P
07:22<andythenorth>or make it expensive to run (maintenance cost)
07:22<Pikka>well, they had very good reliability :P
07:22<Pikka>and it will have a short model life (although not as short as the real thing)
07:23<andythenorth>why were they withdrawn?
07:23<andythenorth>also...ach. It's a game, not Trainz :)
07:23<Pikka>well, I like the set to be balanced and moderately realistic :P
07:24<Pikka>it's such a useful loco that it seems almost a shame to withdraw it around 2000, especially with nothing comparable to replace it
07:24<Pikka>they were surplus IRL because they were no better than EMUs for passenger work
07:24<andythenorth>I am finding with trucks that I need some way to slightly cripple them
07:24<andythenorth>and I haven't found a way :P
07:25<Pikka>and it turned out that 3rd rail overnight freight wasn't such a good idea because they always did trackwork (which meant switching off the power) at night
07:25<Ammler>is it possible to have balanced and realistic set?
07:25<Pikka>more or less, ammler
07:25<andythenorth>it's kind of hard to get operational details into TTD
07:25<Ammler>don't those exclude themself?
07:25<Pikka>anyway, I'll just leave it as is
07:25<andythenorth>'this truck has a double-strength frame and will survive hauling rocks'
07:25<andythenorth>doesn't really translate
07:25<Pikka>and withdraw in 2000 :) rather later than the real thing.
07:26<Pikka>but then HEQS was always a bit out there
07:26<andythenorth>this is more BANDIT ;)
07:27<andythenorth>'this truck is short and easy to get into shop loading bays'
07:27<andythenorth>also doesn't really translate
07:27<Pikka>well, it does insofar as "short" = "non-articulated"
07:28<andythenorth>fair point
07:28<andythenorth>the ruling heuristics seem to be 'fastest' or 'largest' though
07:28<andythenorth>it's your deltic problem :P
07:28<andythenorth>repeated ad ininiftum
07:28<andythenorth>Pikka Pikka, the PAX capacity of your Deltic is too low!!!
07:28<andythenorth>it should have at least 9,000 PAX
07:29<andythenorth>(with a parameter)
07:29<Eddi|zuHause>hm... i now remounted the drive with -o sync (disable write cache), and the lockup is (temporarily) gone
07:30<Eddi|zuHause>but writing is like 1/10th of the speed
07:31*andythenorth suspects a pixel generator at work here:
07:38<Rhamphoryncus>andythenorth: that's actually pretty nifty
07:40-!-APTX [] has joined #openttd
07:42-!-theholyduck [~holyduck@] has joined #openttd
07:44<andythenorth>partial works, but I need to add extra args when I actually call the target function
07:44<andythenorth>confusing :P
07:45-!-hbccbh [~hbc@] has quit [Quit: Leaving.]
07:49-!-hbccbh [~hbc@] has joined #openttd
07:55-!-andythenorth [] has quit [Quit: andythenorth]
07:55-!-hbccbh [~hbc@] has quit [Quit: Leaving.]
07:57-!-hbccbh [~hbc@] has joined #openttd
08:02-!-hbccbh [~hbc@] has quit [Quit: Leaving.]
08:03-!-hbccbh [~hbc@] has joined #openttd
08:05-!-Firartix [] has joined #openttd
08:06-!-tokai|mdlx [] has joined #openttd
08:08-!-glx [glx@2a01:e35:2f59:c7c0:38ac:7e24:6dec:901e] has joined #openttd
08:08-!-mode/#openttd [+v glx] by ChanServ
08:12-!-tokai [] has joined #openttd
08:12-!-mode/#openttd [+v tokai] by ChanServ
08:12-!-tokai|noir [~tokai@] has quit [Ping timeout: 480 seconds]
08:14-!-tokai|mdlx [] has quit [Read error: Operation timed out]
08:14-!-Devroush [] has joined #openttd
08:15<Eddi|zuHause>bah this is totally stupid... wait half an hour with no access to the computer, or wait half a day until copying finished...
08:15<Eddi|zuHause>i now put the usb device on another computer and transfer the fucking thing via network...
08:15<SpComb>heh :)
08:16-!-tokai|mdlx [] has joined #openttd
08:19<Eddi|zuHause>hm... how can i persuade dd to output the stats in 1024 instead of 1000?
08:20<Eddi|zuHause>533807104 Bytes (534 MB) kopiert, 314,336 s, 1,7 MB/s <-- this is silly
08:21-!-tokai [] has quit [Read error: Operation timed out]
08:23<CIA-1>OpenTTD: michi_cc * r23995 /trunk/src/strings.cpp: -Fix [FS#5079]: Improve rounding when converting display speeds to internal speeds.
08:27-!-tokai|noir [] has joined #openttd
08:27-!-mode/#openttd [+v tokai|noir] by ChanServ
08:28<Rhamphoryncus>woot, patch accepted :D
08:30-!-tokai|mdlx [] has quit [Read error: Operation timed out]
08:34<@planetmaker>I'd say it's not your patch ;-)
08:34-!-Snail_ [] has joined #openttd
08:42*Rhamphoryncus must go look now :/
08:44<Rhamphoryncus>Wow, a hack, classy :P
08:50<Rhamphoryncus>Now I get to spend even more time re-deciphering the code and checking if it actually works
08:58<@planetmaker>you show a remarkable respect for other people's work ;-)
08:58<Rhamphoryncus>Well I basically got insulted about my work
08:58<@planetmaker>you did?
08:59<Rhamphoryncus>I spent an hour or two fixing something that wasn't supposed to be possible. I submitted a patch. As a result the patch was ignored and another done in its place
08:59<Rhamphoryncus>No thanks, no response at all.
09:01<__ln__>Rhamphoryncus: did you expect something else then?
09:01<Rhamphoryncus>__ln__: some sort of social skill?
09:01-!-Snail_ [] has quit [Quit: Snail_]
09:02<__ln__>Rhamphoryncus: that's not part of OTTD's patch acceptance process.
09:02<Rhamphoryncus>It's pretty sparse all over :(
09:03<@planetmaker>social skill is not an immediate requirement. Obviously also not for writing patches, though ;-)
09:04<Eddi|zuHause>"how to go from excitement to 'i'll never do anything for you guys again' in 30 minutes"
09:04<Rhamphoryncus>Okay, I really do have to ask. How many people around here have aspergers?
09:04<@planetmaker>how should we know?
09:05<@planetmaker>and how does it matter at all?
09:05<Rhamphoryncus>Because I've seen people joke that you do, and it would explain a lot
09:05<Rhamphoryncus>Also, I've been enduring this for over a month, not 30 minutes.
09:05<@planetmaker>I start to pity you
09:06<@planetmaker>But from what I saw all people seem quite normal with the usual expected nerd tendency :-P
09:07<Rhamphoryncus>Yeah, they're normal in that they fit the stereotype perfectly
09:07<@planetmaker>If that suits your need for stereotypes. Then please, use that
09:07<Rhamphoryncus>I should point out that I have aspergers :P
09:08<Rhamphoryncus>I'm not trying to stereotype. I'm just trying to understand what's going on around here.
09:08<@planetmaker>Honestly: I don't care
09:08<Rhamphoryncus>Yeah, there is that.
09:08<+michi_cc>Rhamphoryncus: Would you have been happier if I had told you "Thanks for the patch, but it's not acceptable" first?
09:08<Rhamphoryncus>Yes, actually
09:08<Rhamphoryncus>You could have followed that with an explanation of why
09:09<@planetmaker>But one requirement generally needed is: accepting other solutions and the fact that often many are a valid solution and even also often those might be better in hindsight
09:09<@planetmaker>Rhamphoryncus, and you didn't even ask. But immediately started to bitch
09:09<@planetmaker>And that's... something which is unlikely to give you usually a useful explanation at all
09:10<Rhamphoryncus>I'm perfectly capable of accepting other valid solutions. I'll accept that one once I've verified it's correct.
09:10<@planetmaker>you also gotta live with the fact that patches are submitted without your verification done
09:10<Rhamphoryncus>Of course
09:11-!-cypher [] has joined #openttd
09:12<+michi_cc>After-the-fact explanation: The whole point of To/FromDisplay is to have a single place where unit conversion is performed, so duplicating that code (again) instead of just fixing the functions is not acceptable.
09:12<Rhamphoryncus>Single place, yes. However, your caller is doing a *16/10 conversion too
09:14<Rhamphoryncus>planetmaker: I didn't bitch until after I realized I'd been suckered.
09:14<@planetmaker>no, you haven't. you take something personal which absolutely has nothing to do with you
09:15<@planetmaker>the aim is always good quality code. And the better is the enemy of the good
09:15<@planetmaker>Personal animosity has little place there
09:17<Rhamphoryncus>Yeah, I made the mistake of bitching where you all could see.
09:18-!-theholyduck [~holyduck@] has quit [Ping timeout: 480 seconds]
09:20-!-theholyduck [~holyduck@] has joined #openttd
09:23-!-lofejndif [] has joined #openttd
09:24-!-lofejndif [] has quit [Max SendQ exceeded]
09:25-!-lofejndif [] has joined #openttd
09:30-!-kkb110_ [] has joined #openttd
09:32-!-TGYoshi [~TGYoshi@] has joined #openttd
09:38-!-a2A209_ [] has joined #openttd
09:38-!-lofejndif [] has quit [Quit: Leaving]
09:49<Pikka>goodnight wallyweb
09:49-!-Pikka [] has quit [Quit: ChatZilla 0.9.88 [Firefox 10.0.2/20120215223356]]
09:59-!-kkb110__ [] has joined #openttd
09:59-!-kkb110_ [] has quit [Read error: Connection reset by peer]
10:01-!-smoovi [] has quit [Remote host closed the connection]
10:03-!-smoovi [] has joined #openttd
10:04-!-a2A209_ [] has quit [Quit: ajax IRC Client]
10:16-!-kkb110__ [] has quit [Ping timeout: 480 seconds]
10:18-!-Doorslammer [] has joined #openttd
10:19-!-enr1x [] has joined #openttd
10:19<Rhamphoryncus>michi_cc: I misread your code. It's not a hack. Sorry.
10:27-!-andythenorth [] has joined #openttd
10:30-!-Belugas [~belugas@] has quit [Ping timeout: 480 seconds]
10:30-!-Belugas [~belugas@] has joined #openttd
10:30-!-mode/#openttd [+o Belugas] by ChanServ
10:46-!-cypher [] has quit [Ping timeout: 480 seconds]
10:48-!-kkb110__ [] has joined #openttd
10:51-!-TWerkhoven[l] [] has joined #openttd
10:52-!-frosch123 [] has joined #openttd
10:52-!-cypher [] has joined #openttd
11:00<@peter1138>don't be silly
11:00<@peter1138>who's ever heard of such a thing
11:09-!-TWerkhoven[l] [] has quit [Quit: He who can look into the future, has a brighter future to look into]
11:13-!-andythenorth [] has quit [Quit: andythenorth]
11:13-!-tokai|mdlx [] has joined #openttd
11:18-!-Doorslammer [] has quit [Quit: ajax IRC Client]
11:19<Nat_aS>xiong you still there?
11:19-!-tokai [] has joined #openttd
11:19-!-mode/#openttd [+v tokai] by ChanServ
11:19-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
11:21-!-Avenger [~rafinha21@] has joined #openttd
11:22-!-Avenger [~rafinha21@] has left #openttd []
11:23-!-Avenger [~rafinha21@] has joined #openttd
11:23-!-tokai|mdlx [] has quit [Ping timeout: 480 seconds]
11:23-!-andythenorth [] has joined #openttd
11:25-!-tokai|mdlx [] has joined #openttd
11:29<xiong>Nat_aS, hi.
11:31-!-tokai [] has quit [Ping timeout: 480 seconds]
11:31-!-Avenger [~rafinha21@] has quit [Ping timeout: 480 seconds]
11:40<Nat_aS>oh hi
11:40<Nat_aS>I was gonna say I tried pre-depoting
11:40<Nat_aS>it's strange
11:40<xiong>What can I do for you, Sir?
11:41<xiong>What happened?
11:41<Nat_aS>it allows me to overclock my networks, but I don't see much benifit because trains waiting are trains useless
11:41<Rhamphoryncus>Yeah, overflows are like that
11:41<xiong>The point of depoting before stations is not to cram more trains through the network. It's to avoid breakdowns.
11:41<Nat_aS>the only time I'd think it would be usefull is if I had a small network with no room, but had to carry more types of cargo than could be normaly allowed.
11:41-!-macee [] has joined #openttd
11:42<Nat_aS>there will always be one extra train in the depot
11:42<xiong>You can also avoid breakdowns with depots after stations and mainline depots. There's a specific advantage to depoting *before* a station, though.
11:42<Nat_aS>won't maintain as normal do that though?
11:42<Nat_aS>I thought it was just to prevent overflows because it won't leave the depot untill a platform was clear
11:43-!-macee [] has left #openttd []
11:43-!-macee [] has joined #openttd
11:43<Rhamphoryncus>Nat_aS: in theory. In practice they usually have the opposite effect.
11:44<xiong>If a train is not ordered to depot then it will seek a depot when its maint interval comes up. If the nearest depot is *after* the next station, the train will blow through the statinon without stopping and depot... then look to make the station, which is already past. Unless it can recirculate, this can be messy. Worst case, it goes all the way back to the origin before returning.
11:44<Rhamphoryncus>Depots limit train speed, which limits throughput, and their position at the side means their path can cut across the entire station, preventing anything else from entering/exiting
11:44<Nat_aS>that's why I use maintain if needer orders instead of the interval
11:44<Nat_aS>and place the order between every station
11:44<Nat_aS>so the depot after the station on the way to the next one.
11:44<Rhamphoryncus>Nat_aS: maintain if needed still uses the interval. It just regulates when the interval is checked.
11:45<xiong>Rhamphoryncus is correct. I find this much less of an issue, playing with 1850-era trains; since they're slow anyway. The depot speed limit isn't much less than the train's top speed.
11:45<andythenorth>so this is a bit better than the clunky paste from earlier today:
11:45<andythenorth>but still clunky
11:45<xiong>Nat_aS, if you explicitly order your trains to depot then you will not see the blow-by issue come up.
11:45<Rhamphoryncus>andythenorth: I'm too tired to read it now :/
11:46<Nat_aS>well the way I have it, i have never seen that happen
11:46<xiong>In fact, if you order depoting, anywhere in schedule, then the vehicle will never depot by itself.
11:46<Rhamphoryncus>My refinement on depots before the station is to have a waypoint immediately before the depot. That way they decide if they need to service just before the station, rather than when leaving the previous station.
11:47<xiong>If you order your trains around from station to station only then you will see blow-by.
11:47<Nat_aS>no, I put depots on both sides of the station
11:47<Nat_aS>so the start to exit the station, then check to see if they need to depot
11:47<Nat_aS>and if they do, it's right there
11:47<Nat_aS>and on the other side too if they are going the other way
11:47<Nat_aS>usualy 4 depots per station so they can go left or right if the way is blocked
11:48<xiong>Right. If you put depots on either side then you are covered.
11:48<Nat_aS>sometimes Even 6 depots in my omega type stations
11:48<Nat_aS>I'm not totaly sure omega stations are a good idea though.
11:49<xiong>I've done something like that with even more depots.
11:50<xiong>Shall I post my most successful station?
11:50<Nat_aS>oh this is just an example, my actual omega type stations are bigger
11:50<xiong>It's a dead-ender, not a through.
11:50<Nat_aS>but this shows how it scales up
11:50<Nat_aS>I have never had to build a bidirectonal omega
11:51<Nat_aS>but if I did I supose I'd call it a Psi maybe?
11:51<xiong>Shall I post? I really should, I suppose, do a real wiki post on it but... not today. I'll show you, though.
11:51<Rhamphoryncus>Nat_aS: "ultimate" is a tad presumptuous ;)
11:51<Nat_aS>I might revise my naming scheme.
11:51<Nat_aS>it's the ultimate using my technique.
11:51<Rhamphoryncus>ahh. Literal ultimate. Odd to see it used. ;)
11:53<Nat_aS>if I became comfotable with a new station type I would probably pick a new naming scheme
11:53<Nat_aS>but I think i'd have to learn to use more complex signals for that
11:53<Nat_aS>sure post yours
11:53-!-Twofish [] has quit [Quit: Leaving]
11:55-!-kkb110 [] has joined #openttd
11:55<V453000>what are the depots good for? refit?
11:55<Nat_aS>keep your trains from breaking down
11:55-!-kkb110__ [] has quit [Read error: Connection reset by peer]
11:55<Nat_aS>also turning around
11:56<V453000>turn breakdowns off :) they just make the game too stupidly easy anyway
11:56<Nat_aS>well they are still good for turning road viechiles around.
11:56<V453000>trains ca
11:56<V453000>trains can turn around in the station?
11:56<Nat_aS>only if you set it
11:56<Rhamphoryncus>Nat_aS: you can just make a T with no road attached. Road vehicles will turn around
11:57<Nat_aS>my station designs alow them to reverse naturally though.
11:57<Nat_aS>Rhamphoryncus if you want to reduce your footprint and are working on city roads, depots are the best way to turn them around without them going halfway across town looking for a loop or dead end.
11:58<V453000>road vehicles perhasp
11:58<Rhamphoryncus>... make a T. In a single tile. It's a dead end with 0 size.
11:58<V453000>yes but they have to see it as the only path
11:58<V453000>and well, takes ages for trains to "reverse" through a depot
11:58<Rhamphoryncus>I'm talking about road vehicles, yes
11:59<Nat_aS>yeah, why my stations allow natural reversing.
12:00<Nat_aS>i didn't even plan for that, but I got so happy when I saw them making full 180 turns normaly without having to do the 90 angle thing.
12:00-!-tokai|noir [] has joined #openttd
12:00-!-mode/#openttd [+v tokai|noir] by ChanServ
12:01<V453000>also they should prefer to turn around in the station instead of going to the depot first
12:02<V453000>like going back through any empty platform there is
12:02<V453000>and perhaps even wait for it if the penalty for a depot is higher
12:02<V453000>I mean a lot higher :)
12:03<Nat_aS>oh they do turn throguh emptey platforms
12:03<Nat_aS>in fact I like to leave emptey track in the center of the station for through traffic and turnarounds
12:04<V453000>I think a normal terminus station would have been much smaller and much less messy
12:07-!-tokai|mdlx [] has quit [Ping timeout: 480 seconds]
12:07<Nat_aS>insufficient platforms :P
12:07<Nat_aS>You use the depots as holding bays?
12:07<Nat_aS>anyways I gotta go
12:08<xiong>Well, 4 platforms is usually enough for me, given long trains. The design can be extended to any length, of course.
12:09<xiong>The depots are there, as I said, to force depoting before entering station; and also to make the reverse. I'm unconcerned with the time it takes to depot; I say that needs to happen anyway.
12:10<V453000>not necessarily
12:10<V453000>you can force trains to depot only when really needed
12:10<V453000>like: if there is enough platforms empty, trains do not have to depot
12:10<xiong>I do worry that one train may be delayed, waiting for another to enter/exit depot. You'll find that Athens pretty much avoids this due to choice of depots. I've often seen 3 trains at once going in and out of depot.
12:11<xiong>V453000, we're all different. I like lots of depoting; breakdowns annoy me.
12:11<xiong>For me, high speed is just not an issue. Backups and jams are.
12:12<V453000>breakdowns should be imo turned off :)
12:12<xiong>No station design will satisfy all needs. This has worked well enough for me for a long time; but I'm still experimenting.
12:12<V453000>you cant ever prevent them from breaking down anyway
12:12<xiong>Ha ha, no breakdowns. That would make it too easy.
12:13<V453000>vice versa actually
12:13<xiong>No, you can't. I'm frequently annoyed by the sight of a train breaking down on its way out of depot.
12:13<V453000>which is shown on your station
12:13<V453000>you do not need a better design because you have breakdowns. if you didnt have breakdowns, you would need a better station
12:13<V453000>which part makes the game harder?
12:14<xiong>Ha ha!
12:14<xiong>See, it's all a matter of viewpoint. I think it's a great station... for my needs.
12:14<V453000>or more generally. Breakdowns make sure that no line can have 100% throughput. Therefore everything that is absolutely anywhere on the network does not have to be "ideal"
12:15<V453000>viewpoint, sure, but breakdowns really do not make the game harder :)
12:15<xiong>If you have no breakdowns then I don't see there's any design worries at all. Just put down plenty of platforms with some interlocking; done.
12:15<Rhamphoryncus>Slower, not harder?
12:15<Rhamphoryncus>xiong: you have not build a network with a thousand trains, have you?
12:15<xiong>I mean, without breakdowns, how can you fail?
12:15<Eddi|zuHause>breakdowns make the game more annoying
12:15<Eddi|zuHause>not harder
12:16<xiong>Ho ho. A thousand would be unmanageable, at least on the size maps I play.
12:16<Rhamphoryncus>Breakdowns just slow you down. They don't make you fail.
12:16<V453000>xiong: the station can simply jam :)
12:16<Eddi|zuHause>it would make it "harder" only if there were game mechanics to prevent them
12:16<V453000>Eddi|zuHause: exactly
12:16<Rhamphoryncus>Eddi: exactly
12:16<Eddi|zuHause>or deal with them like passing tracks, etc.
12:16<xiong>How can a station jam if no breakdowns? Just add more platforms.
12:16<Eddi|zuHause>but those don't exist
12:16<Rhamphoryncus>xiong: what's your map size?
12:17<xiong>Very quickly, you won't be able to feed trains in any faster than the station can accept them.
12:17<xiong>256 square.
12:17<Rhamphoryncus>xiong: we build better stations and handle the load.
12:17<V453000>yes sure, you usually can expand any station somehow. But then you start thinking if there isnt any better way to do it
12:17<Eddi|zuHause>assuming you take only the "best" engine, all your vehicles break down on average the same amount in a year. no variation possible whatsoever
12:17<Rhamphoryncus>A thousand is doable I suspect. V, voice of experience?
12:17<xiong>"Better" is one of those hinge words. Not everyone will agree.
12:17<Rhamphoryncus>doable on 256x256
12:18<V453000>256*256? we had 1800 TL2 trains
12:18<xiong>Doable perhaps, dunno. Manageable is another thing.
12:18<Rhamphoryncus>They manage.
12:18<V453000>1000 on that map size is a lot though
12:18<xiong>I spend a lot of time between 1850-80.
12:19<andythenorth>is passing **args or **keywords wise?
12:19<xiong>I think that long before you hit a thousand trains, you will have all industries linked.
12:19<andythenorth>it always seems like mystery meat to me
12:19<Eddi|zuHause>andythenorth: depends on the situation, really
12:19<Rhamphoryncus>I fully intend to try a game with grasshoppers, but that may be nostalgia.. and insanity.
12:19<xiong>When I have all industries and towns linked, I consider it a win, done.
12:19<Rhamphoryncus>xiong: industries do increase in volume..
12:20<Rhamphoryncus>andythenorth: what Eddi said ;)
12:20<andythenorth>the current situation I am likely to end up creating a stubby class before the call, then passing the class
12:20<xiong>Well, I wouldn't require that all cargo be transported. I don't think that's ever feasible.
12:20<andythenorth>which seems like **keywords might apply
12:20<Eddi|zuHause>andythenorth: on the calling side, i only use it in the foreach_vehicle function because it's very generic. on the callee-side i use it to say "i don't care about the other args"
12:20<Rhamphoryncus>andythenorth: sounds like
12:20<xiong>... not within my constraints.
12:21<V453000>xiong: connecting everything without transporting any cargo isnt quite a win for me :D
12:21<Rhamphoryncus>certainly not with breakdowns getting in the way :D
12:21<Rhamphoryncus>V453000: gotta crank it up to 9000 ;)
12:21<xiong>V453000, that's hardly fair. There's a big gap between none and all.
12:21-!-tokai|mdlx [] has joined #openttd
12:23<V453000>9000 of? :d
12:23<andythenorth>so I have a transform function that's called near the end of my call chain; it can be a custom function specified further up the chain.
12:23<V453000>xiong: but the logic is similar :) When your network is transporiting 50% of all mines, it technically connects only 50% of them
12:23<andythenorth>the author might have valid reasons for the transform to access vars from anywhere in the call chain
12:24<Rhamphoryncus>V453000: production?
12:24<andythenorth>including passed from first call
12:24<V453000>Rhamphoryncus: perhaps secondaries, not mines :)
12:24<andythenorth>which makes me think of **args or **keywords
12:24<xiong>You're just not going to let me enjoy playing, eh?
12:24<Rhamphoryncus>V453000: well not a single mine, no.
12:24<Rhamphoryncus>That'd take at least 3 ;)
12:24*Rhamphoryncus looks to see if V twitches
12:25<Eddi|zuHause>andythenorth: **kwargs is an easy way of passing arbitrary parameters through some intermediate glue code
12:25<Eddi|zuHause>anyway, gtg
12:26<andythenorth>k thanks
12:26<andythenorth>or I construct my own obj and pass it along
12:26<andythenorth>which is kind of elegant, but same effect as **kwargs I suspect
12:27<Rhamphoryncus>yeah. Sometimes an explicit dict is better though.
12:27-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
12:28<Rhamphoryncus>If you're using **kwargs for the caller and **kwargs for the callee and there isn't an external API to follow.. it's a hint that you want a dictionary, not arguments
12:33<andythenorth>I canned my dict earlier :(
12:33<andythenorth>ho hum
12:33<andythenorth>I thought passing a dict wasn't leet enough :P
12:33-!-HerzogDeXtEr1 [~Flex@] has joined #openttd
12:33<andythenorth>seems like an andythenorth type solution :)
12:35<andythenorth>nearly all my code is dicts
12:36<andythenorth>whenever I see real code, it seems to rely a lot on knowing the position of entries in lists
12:36<andythenorth>which I can never remember :P
12:37-!-Enoria [] has joined #openttd
12:40-!-HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
12:42-!-sla_ro|master [slaco@] has joined #openttd
12:43-!-valhallasw [~valhallas@] has joined #openttd
12:48-!-_maddy [] has joined #openttd
12:48<_maddy>hi folks
12:49*andythenorth might be doing this all wrong
12:49<_maddy>I have one question regarding industry production changes
12:49<andythenorth>... :)
12:50<_maddy>my experience is that industries always increase production more if I have cargo lying around at station, but less if I transport everything and always have a train waiting/loading
12:51<andythenorth>the code would know the answer
12:51<andythenorth>let's see
12:51<_maddy>I have read the paragraph at
12:53-!-Alberth [] has joined #openttd
12:53-!-mode/#openttd [+o Alberth] by ChanServ
12:54<_maddy>hi alberth, do you know how industry production changes are affected by how well the station is served? leaving goods in station vs always having a train loading
12:55<andythenorth>l2543 in industry_cmd.cpp
12:55<andythenorth> /* If more than 60% transported, 66% chance of increase, else 33% chance of increase */
12:55<andythenorth>applies to non-smooth economy
12:56<andythenorth>this code is multi-faceted
12:56*andythenorth can't be bothered to read all the logic - sorry
12:57<_maddy>I'm looking at the code too
12:58<andythenorth>_maddy: industry_cmd.cpp has been proven to contain bugs in the past
12:58<andythenorth>logical fallacy kind of things rather than code errors
12:58<@Alberth> is what I usually recommend
12:58<@planetmaker>that can be said of every file, andythenorth
12:58<_maddy>I've read the wiki, and it doesn't clearly state it but has this sentence:
12:58<andythenorth>industry_cmd is just a bit prone to it, because of multiple economy settings, industry types etc
12:59<_maddy>For more responsiveness from industries, adapt the number of wagons to industry production (for the lowest production, you should use two wagons).
12:59<andythenorth>that takes no account of industry newgrfs or vehicle newgrfs :P
12:59<_maddy>I don't even understand what that means, "more responsiveness"
12:59-!-FLHerne [] has joined #openttd
13:00<@Alberth>_maddy: the game mechanics page seems to have item lists with percentages
13:00<xiong>_maddy, Um, I consider that sentence to be a bit of a weasel.
13:01<@Alberth>_maddy: near "Smooth Economy Rules"
13:01<_maddy>Alberth: yes, I am reading it
13:01<xiong>If you have a (standard) industry producing a small amount of cargo then the way to increase production is with frequent service. If you use "full load" then you want to fill your trains quickly and get out; so you want very short trains.
13:02<andythenorth>I'm not even sure it's true
13:02<xiong>If you just load what you can and go then it doesn't matter how long your trains are. But of course, long trains will leave mostly empty.
13:03<xiong>andythenorth, Well, I always play FIRS so I can't say certainly.
13:03<_maddy>xiong: so it's better to have more short trains than few long trains (assuming both have full load order)
13:03<xiong>_maddy, as I say, I'm not 100% certain. I don't play standard industry.
13:03-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
13:04<xiong>I can say certainly that for other reasons it's very bad to have many short trains.
13:04<xiong>My rule of thumb -- very rough -- is that no route should be covered by more than 4 trains. If you need to haul more cargo, make the trains longer.
13:05<andythenorth>my guess is that more trains = shorter cycle time to have a train loading
13:05<andythenorth>nothing more than that
13:05<xiong>But that has a lot to do with my playing style, my starting date, and a zillion other factors.
13:05<Rhamphoryncus>_maddy: the station rating section is pretty explicit. There might be further rules beyond the rating though, if that sentence about two wagon trains means anything.
13:05<xiong>I don't think it's a great statement.
13:05<andythenorth>I cba to read all the code though
13:06<xiong>You might as well say a one-car train would be even better.
13:06<andythenorth>Alberth: I pulled my finger out and wrote some Pixa classes
13:06<@Alberth>andy: there is too much of it anyway :)
13:06<andythenorth>what I've done is clunky, almost deliberately so
13:06<andythenorth>works though
13:06<@Alberth>that must have hurt badly, didn't it?
13:06<andythenorth>more than you can know :P
13:06<xiong>If you set your trains to full load, this is more stimulating than any amount of frequent stops.
13:06<andythenorth>code is committed in the BANDIT repo currently
13:07<andythenorth>it would bear quite some code review
13:07<andythenorth>at least there is something to review now :P
13:07<@Alberth>oke :)
13:07<andythenorth>but I have to bath childrens right now ;)
13:07-!-kkb110__ [] has joined #openttd
13:07<@Alberth>I was not finsihed reading forum as well :)
13:08<xiong>_maddy, for that matter, even if you set your trains to full load and they are far too long for the amount of cargo available, then you'll still get a high cargo rating, so long as you have enough trains so that at least one is waiting at all times.
13:08<_maddy>I would guess, now that I think about it, read the code as well as look at savegame, that I am just imagining things, and it does not affect the production increase if you have trains waiting or not
13:08<xiong>In fact, I disagree pretty much all around with the two-car-stimulating statement.
13:08<Rhamphoryncus>_maddy: oh, I bet the two wagons things refers to NOT having full load.. which is a very old school approach ;)
13:08-!-TheMask96 [] has joined #openttd
13:09<_maddy>Rhamphoryncus: yeah, that would make more sense
13:09<andythenorth>it's voodoo
13:09<andythenorth>the code has nothing about n-wagons :P
13:09<Rhamphoryncus>Your rating is affected by how recently your train was there, which for a full load is 0 time
13:09<xiong>The trouble with all game play documentation is that it's so highly dependent on playing style and specific combinations of NewGRFs, not to mention versions of the game itself.
13:10-!-kkb110 [] has quit [Read error: Connection reset by peer]
13:10-!-lmergen [] has joined #openttd
13:10<xiong>_maddy, I think you should Be Bold and delete that statement from wiki.
13:10<andythenorth>Alberth: I'll leave you with a couple of comments....
13:10<andythenorth>1) I'm passing transforms around as though they are some kind of plugin
13:10<_maddy>xiong: I'm a pretty bold person but not quite that bold :)
13:11<andythenorth>2) PixaMixer and PixaSequence are conflated. This leads to madness like "sequence = PixaSequence(sequence = my_sequence)"
13:11<andythenorth>and self.sequence.sequence
13:12<_maddy>I need to look at what this FIRS is btw, I have tried ECS but I don't like few things about it
13:12<Rhamphoryncus>FIRS is good ;)
13:13*Rhamphoryncus tries to think of something rude but funny to say about the dev.. but fails.
13:13<andythenorth>FIRS is annoying
13:15*andythenorth considers extra angles for BANDIT, in the style of CETS
13:17-!-Chris_Booth [] has joined #openttd
13:20*andythenorth hmms
13:20<andythenorth>there is a very logical change I should make in my code
13:20<_maddy>FIRS looks pretty interesting
13:20<andythenorth>it would be much more elegant, but also much harder to use :(
13:20-!-Cybertinus [] has quit [Remote host closed the connection]
13:20-!-Cybertinus [] has joined #openttd
13:26<_maddy>andythenorth: noticed you're the developer of FIRS, what's annoying about it?
13:26<andythenorth>lots of work left to do
13:28*andythenorth biab
13:28-!-andythenorth [] has quit [Quit: andythenorth]
13:30-!-theholyduck [~holyduck@] has quit [Ping timeout: 480 seconds]
13:46<CIA-1>OpenTTD: translators * r23996 /trunk/src/lang/ (14 files in 2 dirs): (log message trimmed)
13:46<CIA-1>OpenTTD: -Update from WebTranslator v3.0:
13:46<CIA-1>OpenTTD: afrikaans - 82 changes by Maccie123
13:46<CIA-1>OpenTTD: basque - 12 changes by HerrBasque
13:46<CIA-1>OpenTTD: belarusian - 2 changes by KorneySan
13:46<CIA-1>OpenTTD: simplified_chinese - 47 changes by Gavin
13:46<CIA-1>OpenTTD: dutch - 4 changes by habell
13:49<CIA-1>OpenTTD: rubidium * r23997 /trunk/src/lang/korean.txt: -Fix: WT3 validation errors
13:49-!-Firartix [] has quit [Ping timeout: 480 seconds]
13:51-!-Lakie [] has joined #openttd
13:59-!-kkb110__ [] has quit [Read error: Connection reset by peer]
14:00-!-Firartix [] has joined #openttd
14:13-!-andythenorth [] has joined #openttd
14:13<_maddy>any newgrf that gives road vehicles before the default year of 1935?
14:14<Rhamphoryncus>yup. Don't remember what though :D
14:14<Rhamphoryncus>Might be egrvts
14:15<_maddy>I'll try that
14:15<andythenorth>so if you were writing OO code, would you make bath() a method on Baby object
14:15<andythenorth>or would you create a Bath object, and make do() a method on it, passing Baby
14:16<Rhamphoryncus>Hard to say. It could go either way
14:16<andythenorth>it's the kind of question I ask when hiring
14:16<Rhamphoryncus>I would call it bathe() though
14:16<andythenorth>there is no correct answer when hiring, but several that are better or worse
14:16<_maddy>well, from those options, the second one
14:16<@Alberth>the former only if the baby knows how to bath him/her self
14:17<andythenorth>people who go for Baby.bath() tend to be bad at collaborating
14:17<andythenorth>and bad in large systems
14:17<andythenorth>people who create Bath.bathe() are prone to over-engineering
14:17<Rhamphoryncus>It depends on where the functionality fits
14:17<andythenorth>the best answer is a question
14:17<andythenorth>something like 'do we know if we need to bath other objects?'
14:18<@Alberth>let's make an Andy class, and add a bathe_baby() method :)
14:18<Rhamphoryncus>The python language itself has chosen in some cases to have a bathe() builtin that calls baby.__bathe__(). A little bit of generic functionality in the former, and more specialized functionality in the latter.
14:18<andythenorth>alberth would you make it inheritable from Person though?
14:18<andythenorth>and could I delegate the method to Wife
14:18<Rhamphoryncus>I wouldn't. I'd make a Person interface that you support.
14:19<andythenorth>some people support that better than others :P
14:19<Rhamphoryncus>But if the language doesn't support explicit interfaces then I might use a Person abc as a stopgap
14:19<andythenorth>in some cases a duck supports it better :P
14:19<andythenorth>anyway, you're all hired :P
14:19<@Alberth>phew :)
14:20<Rhamphoryncus>Or in python's case a bit of documentation and just conform to the interface
14:20<andythenorth>some people just freak out tbh
14:20<_maddy>that's nice, what is your company?
14:20<Rhamphoryncus>Yay! My first successful interview!
14:20<andythenorth>how would you represent a flock of sheep in semantically valid html or xhtml?
14:20<Rhamphoryncus>.. wtf?
14:21<Rhamphoryncus>Need to refine that question. Is this a chart of sheep? A table of sheep?
14:21*Alberth does not see a connection either
14:21<andythenorth>Rhamphoryncus: that was the correct answer
14:21<Rhamphoryncus>both parts? :D
14:21<andythenorth>the correct answer is a question
14:22<Rhamphoryncus>"That makes no sense, what the hell are you on? Okay, what are some plausible interpretations.."
14:22<andythenorth>people who don't ask questions are terrifying to employ
14:23<andythenorth>if sheep have no further attributes: <ul>
14:23<andythenorth>if they have attributes, <ol> or <table>
14:23<andythenorth>maybe <dl> but you'd have to try really hard to convince me on that
14:23<Rhamphoryncus>yeah, that's almost HTML 101.. which means 95% of webdevelopers won't get it.
14:24<andythenorth>lots don't
14:24<@Alberth>I get it, and I am not even a webdeveloper :)
14:24<andythenorth>if you tell me that I can extend arbitrary tags validly, I'll be impressed, but probably wouldn't hire you (smug)
14:24<@Alberth>perhaps I read too many RFCs :)
14:24<andythenorth>now you're hired, would you review my code? :D
14:24<Rhamphoryncus>Under XML I suppose
14:25<Rhamphoryncus>I don't recall the specific requirements for validation though. I've blocked out the part of my brain that deals with XML/XHTML.
14:25<andythenorth>I think it's probably valid to extend the namespace
14:25<andythenorth>no idea what browsers do with it though
14:26<andythenorth>microformats and such don't seem to trip them up
14:26<Rhamphoryncus>With HTML (not XHTML) almost nothing you do is valid, and if you do make it valid you're doing it wrong in some significant usability aspect
14:26<@Alberth>andythenorth: sure, I found misc/pixel_generator/ and misc/pixel_generator/gestalts/ (or some other file there), is that the ones you mean?
14:26<andythenorth>Alberth: the only valid gestalt right now is
14:26<andythenorth>otherwise yes
14:26<@Alberth>browsers eat just about anything
14:27<andythenorth>validators don't though
14:27<andythenorth>but anyway...
14:29*andythenorth ponders generating sailing ships
14:30<_maddy>wow this egrvts has horse carriages, that's pretty cool
14:31-!-Wolf01 [] has joined #openttd
14:31<@Alberth>you seem to have switched ideas a few times :)
14:31<@Alberth>hi Wolf01
14:32<andythenorth>Alberth: I am having real trouble finding 'one and only way'
14:32-!-JVassie [~James@] has joined #openttd
14:32<andythenorth>I know enough to have a sane discussion about it now though
14:32<andythenorth>I don't care how complex the classes are, but the interface for set developers needs to be easy
14:33-!-lmergen [] has quit [Ping timeout: 480 seconds]
14:35-!-KritiK [] has joined #openttd
14:35<@Alberth>I am not sure where to begin
14:35<andythenorth>I can tell you my questions if that helps
14:36<andythenorth>I think there is one key change I want to make, and some minor ones
14:36<andythenorth>currently I rely on passing a transform down the call chain (with args) to the renderer
14:36<andythenorth>this is potentially powerful, but smells wrong
14:37<andythenorth>why don't I just call the transform on the sequence, then pass that to the renderer?
14:37<@Alberth>yeah, it looks a bit ad-hoc
14:37<andythenorth>it is
14:37<andythenorth>so a line like 49 : PixaMixer(sequence = PixaSequence(sequence = [(0, 0, 19)]), transform = transform),
14:37<andythenorth>should be
14:38<andythenorth> 49 : PixaMixer(sequence = some_transform(PixaSequence(sequence = [(0, 0, 19)]), args)),
14:38<andythenorth>that one is the odd case where I only have a single point btw
14:38<andythenorth>but it kind of works
14:39<@Alberth>my main problem with it is that you just have level of transform, it seems
14:39<andythenorth>you could stack them
14:39<andythenorth>in a list
14:40<andythenorth>or chain them together via their return methods
14:41<andythenorth>no :)
14:42<andythenorth>an alternative I haven't tried is subclassing
14:42<@Alberth>ie is the PixaMixer.sequence the same thing as a PixaSequence.sequence ?
14:43<andythenorth>which is horrible :(
14:43<andythenorth>I seem to need both entities
14:43<andythenorth>but the result is fugly
14:43<@Alberth>for point in self.sequence.sequence: <-- so that breaks then, I think
14:44<andythenorth>the key problem I have is that, by moving more stuff to objects, not functions, I can't easily vary values
14:44<andythenorth>for different variations of graphics (colours etc)
14:44<andythenorth>hence passing stuff down the call chain
14:45<@Alberth>partial() is just creation of a callable object
14:45<andythenorth>I would rather compose the correct values nearer to the first call, then just pass the result down to the renderer
14:45<andythenorth>I prefer things that are relatively more stupid
14:45<@Alberth>if you don't want influence from the actual pixels, that's a good option imho
14:46*andythenorth got a bit excited that transforms are like plugins
14:46<andythenorth>I haven't found a case yet where I need influence from the pixels
14:47<andythenorth>if someone does, they should subclass PixaMixer or such and extend it themselves
14:47<@Alberth>that won't work if you compute pixel values before pushing them to the renderer
14:48<andythenorth>well....ok....let's live with the restriction
14:48<andythenorth>if I've understood you correctly :)
14:48<@Alberth>sounds like a good plan :)
14:48*andythenorth wonders if a class can be made callable
14:48<@Alberth>it can
14:49<@Alberth>not sure how useful it is though, you can equally well call obj.convert() or so
14:50-!-Firartix [] has quit [Ping timeout: 480 seconds]
14:51<andythenorth>Alberth: would it help to have some cases for transforms?
14:52<@Alberth>I would make every case a separate class or function
14:52<_maddy>andythenorth: why is there so many different cargo types in FIRS?
14:52<andythenorth>_maddy: what do you think the answer is? ;)
14:52<@Alberth>_maddy: to keep you busy :)
14:52<andythenorth>Alberth: example cases....
14:52<andythenorth>(1) shift colours for an entire sequence by some value
14:53<andythenorth>(2) mask out pixels with blue
14:53<@Alberth>sounds good :)
14:53<andythenorth>(3) add a value to dy (for loading / loaded sprites)
14:53<@Alberth>_maddy: FIRS has no economies yet, where you can reduce the #cargoes iirc
14:54<@Alberth>equally many cargoes in the economies?
14:54<_maddy>just a bit strange when there's so many industry types that a lot of them don't get generated in a 256x256 map :)
14:54<andythenorth>some economies will feature fewer cargos
14:54<andythenorth>and yes, 256x256 maps are problematic, especially if hilly
14:55<andythenorth>although industries are also date-specific
14:55<andythenorth>so some won't appear until certain dates
14:55<@Alberth>_maddy: then you have 'difficult' terrain; the game is trying to generate them all iirc
14:56<_maddy>right, I'm trying to get a mountainous map, and also starting at 1870
14:58<_maddy>yeah, the date seems to be the key here indeed
14:58-!-theholyduck [~holyduck@] has joined #openttd
14:59-!-Firartix [] has joined #openttd
15:02<andythenorth>Alberth: another question I had was whether to mush 'colourset' into a type of transform
15:03<andythenorth>I wasn't convinced it helps
15:03<andythenorth>sometimes more entities helps the interface (sometimes not)
15:03<@Alberth>that's named colours?
15:04<andythenorth>'company_colour' or 'cargo_colour' or such
15:04<andythenorth>the values are substituted during the render pass, they're not global constants
15:05<andythenorth>they need substituting before transform usually
15:05<@Alberth>I was wondering about that too; it seems useful, except 'try: colour +1' does not feel the right way to test :p
15:06<@Alberth>you'd have a dict of colour-name to colour-value would be my idea
15:06<@Alberth>but that still has the detection problem
15:08<@Alberth>you could have two kinds of colours, but that feels a bit overkill-ish
15:08<andythenorth>they are currently dicts
15:08<andythenorth>object for colouring? :P
15:08<@Alberth>I don't understand enough how you use it atm
15:09<andythenorth>the output tells the story
15:09<andythenorth>have a look in 'results'
15:09<andythenorth>you get trailers in green or blue ;)
15:10-!-_maddy [] has quit [Quit: leaving]
15:11<@Alberth>hmm, what if you add dict((x,x) for x in range(256)) to the named colours, and then transform the original sequence as first step?
15:13*andythenorth ponders
15:14<@Alberth>making your sequence numbers only, then pushing them through the transformation, and giving them to the renderer
15:16<andythenorth>try it?
15:16<@Alberth>i was busy making a mixer example, but got a chat in another window :)
15:16-!-Nat_aS [] has quit [Quit: Konversation terminated!]
15:23-!-DDR [] has joined #openttd
15:33-!-FLHerne [] has quit [Remote host closed the connection]
15:59-!-BelugasTheSecond [~belugas@] has joined #openttd
16:00-!-Belugas is now known as Guest4267
16:00-!-BelugasTheSecond is now known as Belugas
16:04-!-Guest4267 [~belugas@] has quit [Ping timeout: 480 seconds]
16:06-!-macee [] has left #openttd []
16:08-!-cypher [] has quit [Quit: Miranda IM! Smaller, Faster, Easier.]
16:13<andythenorth>Alberth: if the PixaSequenceCollections were just replaced by functions, some of the complexity would go away
16:13<andythenorth>then the sequences they contain could be transformed when called
16:17-!-Chris_Booth is now known as Guest4268
16:17-!-Chris_Booth [] has joined #openttd
16:18-!-Guest4268 [] has quit [Ping timeout: 480 seconds]
16:18<@Alberth>functions are first-class citizens too in Python
16:20<andythenorth>I know :)
16:20-!-FLHerne [] has joined #openttd
16:22*andythenorth has just been reading a python tutorial wrt 'everything is an object'
16:23<andythenorth>which I knew previously, but not why
16:23<Rubidium>I object ;)
16:23<valhallasw>I, object.
16:27<@Alberth>I have some trouble understanding how a sequence collection can be converted to a function
16:27<Rubidium>just extend the function ;)
16:28-!-null0010 [] has joined #openttd
16:28<null0010>how do i get a town to accept deliveries of goods?
16:28-!-lofejndif [] has joined #openttd
16:28<Rubidium>after all, an object is an object, so why wouldn't you be able to extend it?
16:28*Alberth wraps a lamdba around Rubidium
16:28<Rubidium>null0010: grow the town large enough and have enough coverage
16:29<null0010>how do i grow a town, then?
16:29-!-lofejndif [] has quit [Max SendQ exceeded]
16:30-!-lofejndif [] has joined #openttd
16:31<null0010>is it possible to cause a town to grow by unloading good at a truck station in the town even though they don't accept it?
16:31<andythenorth>Alberth: it would have to be (as it was previously) that each collection is defined in the gestalt
16:31<andythenorth>no class :(
16:31<@Alberth>null0010: doesn't help
16:31<andythenorth>it worked, but seemed a bit fragile
16:31<null0010>so i have to start delivering passengers and/or mail in order to grow a town that won't accept anything else?
16:32<@Alberth>null0010: you may want to read the wiki page with 'game mechanics'
16:32<@Alberth>as it explains exactly how the game works
16:32<null0010>i'm reading the page on towns
16:33<null0010>it says "Town growth can be accelerated by loading and unloading at least one item of cargo at up to five stations within town influence within a two month period. It does not matter which cargos are loaded/unloaded."
16:33<andythenorth>alberth so previously instead of "key_colour_mapping_pass_1 = PixaSequenceCollection([sequence])" I had "def key_colour_mapping_pass_1(args): return [sequence]"
16:33<andythenorth>which meant I could pass args to transform sequence when calling the collection
16:33<andythenorth>but it smells odd
16:36<@Alberth>null0010: ok, I could be wrong. Try it :)
16:37<null0010>no, i mean, that's why i came in and asked
16:37<null0010>because the wiki said "it does not matter what is loaded/unloaded"
16:39<@Alberth>some people may know the code well enough to give an answer to that question, but I am not one of them.
16:39<null0010>hm, okay
16:39<null0010>well all i can say is that this town seems to be growing, but i am not sure if it's growing any faster than it would if i were'nt dropping off goods to rot
16:40<@Alberth>so, either read the code, or try it seem to be your two options
16:40<andythenorth>null0010: are you playing with default industries, town etc (no newgrfs)?
16:40<null0010>andythenorth: yes.
16:40<andythenorth>delivering cargo Goods to towns doesn't affect growth at all
16:41<andythenorth>it's a common myth
16:43<null0010>ah, okay
16:43<null0010>when they don't accept it, you mean?
16:44-!-FLHerne [] has left #openttd []
16:44<andythenorth>at all
16:45<null0010>that seems odd
16:45<@Yexo><null0010> because the wiki said "it does not matter what is loaded/unloaded" <_ the cargo has to be accepted by a station
16:45-!-mahmoud [] has joined #openttd
16:45<@Yexo>andythenorth: there is no difference between delivering coal, goods or passengers to a town
16:45<@Yexo>the "goods" cargo is not in any way special wrt town growth
16:46*andythenorth is reading town_cmd
16:46<andythenorth>I don't believe that unloading cargo affects growth at all either
16:46<andythenorth>only loading
16:46<andythenorth>but the code will know
16:46<null0010>so essentially the only way to grow a town is passenger services?
16:46<@Alberth>andythenorth: I still fail to understand what you are saying with the pixa sequence collections :(
16:46<@Yexo>no, any kind of transport
16:47<andythenorth>the code knows better than me
16:47-!-FHerne [] has joined #openttd
16:47<null0010>i am confused
16:47<andythenorth> if (st->time_since_load <= 20 || st->time_since_unload <= 20) {
16:47<@Alberth>andythenorth: annoying that the code is always right, isn't it? :)
16:47<@Yexo>null0010: by far the easiest way to achieve maximum town growth is to build 5 bus stops in the center of a town and make one bus drive between those stations
16:48<null0010>that is just plain silly
16:48<@Yexo>it is, but it's also how the game works
16:48<andythenorth>null0010: you can also pick up cargo from primaries, drop it off at secondaries, pick up cargo at secondaries etc
16:48<@Alberth>null0010: OpenTTD is not simulating reality in any way
16:49<Rubidium>"OpenTTD rejects reality and substitutes its own"?
16:49<andythenorth>Alberth: wrt sequence collections....I need to modify the contents of the sequence
16:49<null0010>oh i know it's not simulating reality but driving people from Grangeford across the street to another bus stop in Grageford in order to cause new people to spontaneously appear doesn't even make sense
16:49<null0010>unless we assume that busses are actually mobile love hotels
16:49<@Alberth>andythenorth: the colour-names
16:49<andythenorth>and the transforms...
16:49<andythenorth>if sequence collections are classes, the only way I've found to modify the sequences they contain is is pass things down the call chain
16:50<andythenorth>once the collection is instanced, all the sequences are 'baked in'
16:50*Alberth nods
16:50<@Alberth>the sequence is at the bottom, so you have to 'dig' :)
16:50<andythenorth>hence why I was considering making collections callable, and passing args to their callable method
16:51*Alberth was making flat lists of transformations as an experiment
16:52<andythenorth>I think the solution I've got works technically, but it adds a lot of 'partial(stuff)' noise for authors to deal with
16:52<andythenorth>and it requires understanding that custom transforms must plugin to the render stage
16:52<null0010>ok thanks for the help
16:52<andythenorth>instead of just writing a local transform on the sequence
16:52-!-null0010 [] has left #openttd []
16:56<@Alberth>hmm, I now have 2 mixers, while you mentioned 3 :)
16:56<andythenorth>is 2 ~= n? :)
16:56<andythenorth>anything > 1 is usually n in my head
16:56<@Alberth>fair enough :)
16:57<Rubidium>hi andnnhennnn ;)
16:59<Rubidium>got to love how much the lower case i looks like a 1 when there's a : on the line above it ;)
16:59<Rubidium>(with my monospace font)
17:00<@Alberth>and a small inter-line spacing :)
17:01<@Alberth> <-- not as far as I wanted it, but it'll have to do for now
17:02-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
17:03<@Alberth>and I would do that sequence mapping of colour names just before the for loop, [Point(p.dx, p.dy, col_map[p.colour]) for p in sequence]
17:04*andythenorth looks
17:04<@Alberth>which will break if you have used names that don't exist in the mapping
17:05<@Alberth>converting pixels to blue is left as an exercise for the looker :)
17:05<andythenorth>breaking is intended for that case - I considered writing a warning or raise
17:05<andythenorth>but didn't get to it :P
17:05<andythenorth>ok I see how these mixers work
17:05<@Alberth>you could output the name that you miss, which would be useful information
17:06<@Alberth>this is more or less the same as partial
17:07<andythenorth>it's just cleaner this way though
17:07<andythenorth>Alberth: sleep time for you?
17:07<@Alberth>somewhat easier to understand than a chain I think
17:08<@Alberth>yes, about 30 minutes ago already :)
17:08<andythenorth>sequence collections can wait :)
17:08<andythenorth>I am stuck on them
17:08<andythenorth>but I can re-implement what I have with these transforms tomorrow
17:08*andythenorth prefers 'design by coding'
17:09<@Alberth>collections are fixed, or are they parameterized on the col_map?
17:10<@Alberth>or on something else?
17:11<andythenorth>they're fixed
17:11<andythenorth>(If I understand the question correctly)
17:12<andythenorth>I don't have the col_map in scope when I instantiate each collection
17:13-!-cmircea [~cmircea@] has quit [Read error: Connection reset by peer]
17:13<@Alberth>hmm, too difficult at this hour :p
17:13<andythenorth>PixaShiftColour - the upper and lower are to prevent overspill?
17:14<@Alberth>you said 'range' which I interpreted as some but not all colours
17:14-!-sla_ro|master [slaco@] has quit [Read error: Connection reset by peer]
17:14-!-sla_ro|master [slaco@] has joined #openttd
17:14<andythenorth>upper should be at most 255 :)
17:15<@Alberth>but if you want to change all colours, the boundaries are not needed of course
17:15<andythenorth>there are two edge cases ;)
17:15<@Alberth>min(255, max(0, col+shift)) :p
17:16<@Alberth>good night :)
17:16<andythenorth>me too
17:16<andythenorth>bye ;)
17:16-!-andythenorth [] has left #openttd []
17:17-!-Lakie [] has quit [Quit: .]
17:19-!-TGYoshi [~TGYoshi@] has quit [Quit: Popidopidopido]
17:25<xiong>! This dim bulb finally lit !
17:26<xiong>If trackwork causes short trains to get hung up (because they don't have the long backend pushing down when climbing); pad out the short trains so they're long.
17:26-!-sla_ro|master [slaco@] has quit []
17:26<xiong>Can do that with lightweight dummies between the engine and a heavy tail. At least, I think that should work.
17:30-!-Rhamphoryncus [] has quit [Quit: Rhamphoryncus]
17:30*Alberth usually builds some parallel tracks on a hill climb
17:31-!-Alberth [] has left #openttd []
17:32-!-kkb110__ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-02.NATPOOL.NYU.EDU] has joined #openttd
17:36-!-Mazur is now known as Tyne
17:38-!-Tyne is now known as Mazur
17:47-!-lofejndif [] has quit [Ping timeout: 480 seconds]
17:52-!-Progman [] has quit [Remote host closed the connection]
17:56-!-Chris_Booth [] has quit [Quit: ChatZilla 0.9.88 [Firefox 11.0/20120222074758]]
17:56-!-Cybertinus [] has quit [Remote host closed the connection]
17:56-!-lofejndif [] has joined #openttd
17:57-!-Cybertinus [] has joined #openttd
17:59-!-frosch123 [] has quit [Remote host closed the connection]
18:10-!-Cybertinus [] has quit [Remote host closed the connection]
18:10-!-Cybertinus [] has joined #openttd
18:12-!-smoovi [] has quit [Quit: Verlassend]
18:13-!-JVassie [~James@] has quit [Ping timeout: 480 seconds]
18:16-!-Cybertinus [] has quit [Remote host closed the connection]
18:16-!-Cybertinus [] has joined #openttd
18:20-!-FHerne [] has left #openttd []
18:21-!-valhallasw [~valhallas@] has quit [Ping timeout: 480 seconds]
18:49-!-Devroush [] has quit []
18:49-!-kkb110__ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-02.NATPOOL.NYU.EDU] has quit [Read error: Operation timed out]
19:09-!-Biolunar [] has quit [Quit: All your IRC are belong to us]
19:13-!-TrueBrain [] has quit [Ping timeout: 480 seconds]
19:24-!-lofejndif [] has quit [Quit: Leaving]
19:27-!-cypher [] has joined #openttd
19:30-!-kkb110_ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-01.NATPOOL.NYU.EDU] has joined #openttd
19:52-!-cypher [] has quit [Quit: Miranda IM! Smaller, Faster, Easier.]
19:53-!-KritiK [] has quit [Quit: Leaving]
20:05-!-TrueBrain [] has joined #openttd
20:16-!-Firartix [] has quit [Ping timeout: 480 seconds]
20:29-!-DDR [] has quit [Quit: ChatZilla 0.9.88 [Firefox 10.0.2/20120216100510]]
20:33-!-DDR [] has joined #openttd
20:36-!-kkb110_ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-01.NATPOOL.NYU.EDU] has quit [Remote host closed the connection]
20:51-!-Snail_ [] has joined #openttd
21:05-!-kkb110_ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-02.NATPOOL.NYU.EDU] has joined #openttd
21:12-!-Pikka [] has joined #openttd
21:25-!-kkb110_ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-02.NATPOOL.NYU.EDU] has quit [Ping timeout: 480 seconds]
21:25<__ln__>too early to say
21:34<Pikka>you realise that this means the end of the horse-drawn zeppelin?
21:39-!-devilsadvocate [~quassel@] has quit [Remote host closed the connection]
21:45-!-devilsadvocate [~quassel@] has joined #openttd
22:06-!-glx [glx@2a01:e35:2f59:c7c0:38ac:7e24:6dec:901e] has quit [Quit: bye]
22:52<Pikka>why am I wasting my time coding things like a single livery parameter that no-one's ever going to use?
22:56<Pikka>because it's fun, that's why.
---Logclosed Tue Feb 28 00:00:23 2012