Back to Home / #openttd / 2013 / 07 / Prev Day | Next Day
#openttd IRC Logs for 2013-07-15

---Logopened Mon Jul 15 00:00:09 2013
00:56-!-Eddi|zuHause [] has quit []
00:56-!-Eddi|zuHause [] has joined #openttd
01:26-!-kais58|A1K [] has joined #openttd
01:26-!-Elukka [] has joined #openttd
01:28-!-kais58|AFK [] has quit [Ping timeout: 480 seconds]
01:29-!-Prof_Frink [~proffrink@] has quit [Remote host closed the connection]
01:37-!-secretname is now known as montalvo
01:40-!-DabuYu [DoubleYou@] has quit []
01:47-!-DabuYu [DoubleYou@] has joined #openttd
02:07-!-andythenorth [] has joined #openttd
02:08-!-andythenorth [] has quit []
02:14-!-Zuu [] has joined #openttd
02:17-!-andythenorth [] has joined #openttd
02:25-!-andythenorth [] has quit [Quit: andythenorth]
02:29-!-andythenorth [] has joined #openttd
03:07-!-ntoskrnl [] has joined #openttd
03:21-!-Pensacola [] has joined #openttd
03:27-!-Supercheese [~Password4@] has quit [Quit: ChatZilla 0.9.90 [Firefox 22.0/20130618035212]]
03:44-!-sla_ro|master [] has joined #openttd
03:46-!-SamanthaD [] has quit [Ping timeout: 480 seconds]
03:56-!-andythenorth [] has quit [Quit: andythenorth]
04:20-!-Ristovski [] has joined #openttd
04:26-!-DDR [] has joined #openttd
04:36-!-pugi [] has joined #openttd
04:38-!-perk11 [] has joined #openttd
04:40-!-Mielipuoli [] has joined #openttd
04:41-!-Mielipuoli is now known as MatrixCL
04:53-!-Ristovski [] has quit [Quit: Leaving]
04:57-!-Midnightmyth [] has joined #openttd
05:20-!-Alice3 [] has joined #openttd
05:25-!-oskari89 [] has joined #openttd
05:36-!-MINM [] has quit [Quit: *Throws a nuclear warhead in the room and flees*]
05:37-!-MNIM [] has joined #openttd
05:43-!-andythenorth [~Andy@] has joined #openttd
05:47-!-xT2 [] has quit [Read error: Connection reset by peer]
05:47-!-ST2 [] has joined #openttd
05:59-!-DDR [] has quit [Ping timeout: 480 seconds]
06:00-!-montalvo [] has quit [Quit: Textual IRC Client:]
06:08-!-Polleke [] has joined #openttd
06:21<KenjiE20>o.O official TT on mobile O.o
06:22<KenjiE20>that was my reaction
06:22<Xaroth|Work>I doubt there's anything 'official' about it
06:22<@planetmaker>read tt-f?
06:22<Xaroth|Work>unless it's posted on ;)
06:22<KenjiE20>Xaroth|Work: it's not OpenTTD, its TT
06:22<@planetmaker>(not openttd. ttd)
06:23<andythenorth>how interesting
06:23<andythenorth>wonder if he'll support newgrf? :P
06:24<andythenorth>"at last, after many years, TT on an iPad"
06:25<zeknurn>Hopefully they will release it for Windows as well
06:26<zeknurn>I'd buy a touch optimised version of TT.
06:27<@planetmaker>you have a quite improved version for windows ;-)
06:27<@planetmaker>if you think it's worth money, you should donate then
06:29<peter1139>problem is
06:29<peter1139>it sucks on small devices
06:29<@planetmaker>windows and small devices?
06:29<peter1139>Arriving 2013 on iOS and Android platforms
06:29<peter1139>of course there are tablets, but
06:29<andythenorth>stupid iPad is not small :P
06:29*andythenorth has the less stupid, smaller iPad
06:30<andythenorth>no point having a device that is both large *and* a crippled computer
06:30<peter1139>that's my idea of an ipad
06:30<andythenorth>if I'm going to have a crippled computer, I want a smallish one
06:30<@planetmaker>buy an iphone?
06:30<andythenorth>too small
06:30<andythenorth>got one
06:30<__ln__>but i thought ipad and android do not run x86 machine code.
06:31<andythenorth>nice weather app on iPhone though
06:31<andythenorth>and it makes phone calls sometimes
06:31<KenjiE20>you can talk to people on a phone? who knew?
06:31<__ln__>and x86 assembly is the language that Sawyer codes his games in.
06:32<andythenorth>KenjiE20: on my phone, only if you buy bumpers so it can get a signal...
06:35<zeknurn>planetmaker. I'd rather have a version that's built ground up for touch on a tablet. Also if it sells enough it could encourage Sawyer to return to making tycoon games.
06:35<andythenorth>that's bad for us :P
06:35<andythenorth>incentives lawyers :(
06:35<andythenorth>incentivises *
06:36<@planetmaker>obviously someone finally found the copyright holder for those games again
06:36<@planetmaker>when some people asked no-one seems to recall or find themselves in the position to say "I hold the copyright"
06:36<zeknurn>usually the case with left for dead ips
06:37<zeknurn>I guess Sawyer bought it
06:37<KenjiE20>well since atari went all weird, I guess sawyer claimed it back?
06:38<zeknurn>Yeah, Atari US has been selling of IPs since they went bankrupt.
06:38<@planetmaker>I specifically looked. I didn't see TT(D) up for sale. But possibly still, yes
06:39<KenjiE20>he could've gone direct
06:39-!-cyph3r [] has joined #openttd
06:40<__ln__>maybe he has just acquired the trademark, and the trademark owner was always known. the game itself must be a rewrite in any case.
06:40<@planetmaker>btw, andythenorth I attached to FISH an updated makefile patch for you to test
06:40<andythenorth>oh thanks :)
06:40<@planetmaker>I want to make a bit cleanup before comitting, but... test before :-)
06:41<V453000>fish will go purr
06:42<@planetmaker>it gave me the idea how to make it modular with plug-in capability without actually ripping the Makefile into many parts :-)
06:42<andythenorth>no longer runs nml twice :)
06:43<@planetmaker>yes :-9
06:43<andythenorth>I ran make clean
06:43<andythenorth>now it can't find fish.nml :)
06:43<andythenorth>so maybe another round? :)
06:43<Xaroth|Work>rm -rf /
06:48-!-Brumi [] has joined #openttd
06:50<@planetmaker>hm, shouldn't a call to generate fish.nml?
06:50<@planetmaker>why doesn't it?
06:51<Eddi|zuHause><V453000> fish will go purr <-- is that like "all pigs will fly up"?
06:52<Eddi|zuHause>(is that game even known anywhere else?)
06:53<@planetmaker>I see... I bugged it
06:54<@planetmaker>andythenorth, in scripts/ undo the path change I applied in line 26
06:55<andythenorth>oh :)
06:55<andythenorth>I see
06:57<V453000>Anything can happen Eddi
06:57<V453000>but I dont know flying pigs yet
06:57<andythenorth>planetmaker: seems to work
06:57<@planetmaker>sweet. Then I'll tidy Makefile.config and commit
06:58<Eddi|zuHause>(the game goes like this: a bunch of kids sit around the table, and everyone slaps their hands on the table. the leader of the game, usually a parent or teacher, will shout out the phrase "All <x> fly up" and puts his hands in the air. if <x> is actually able to fly, everyone must also put their hands in the air.)
06:58<V453000>omg :) how much alcohol is needed?
06:59<V453000>do the rules state that?
06:59<Eddi|zuHause>only if you're an adult which is not a parent :p
07:00-!-ntoskrnl11 [] has joined #openttd
07:01<Eddi|zuHause> <-- does not state anything about alcohol, though :p
07:01<Eddi|zuHause>"1 Table, many hands, quick responses"
07:01<V453000>I can only assume that alcohol is the default and does not need to be mentioned
07:02<V453000>thus isnt
07:02<andythenorth>planetmaker: poke me when I should pull :)
07:02<V453000>OR the page is strongly alternative and obsesses with uncommon game practice without alcohol
07:02<V453000>which would be weird but you never know
07:05<Eddi|zuHause>V453000: the point of the game is the humiliation if you put your hands up at the wrong time (or less commonly: if you don't put your hands up) .p
07:05<V453000>of course, so you would e.g. have to humiliately drink a beer as a punishment
07:05<@planetmaker>andythenorth, pull
07:06<andythenorth>7s faster now
07:06<andythenorth>and I don't have to run make clean every time
07:07-!-ntoskrnl [] has quit [Ping timeout: 480 seconds]
07:07<andythenorth>planetmaker: next thing... src/FISH.cfg is deprecated :) So I want to change to ignore it
07:08<andythenorth>ignore / use something more appropriate
07:10<Eddi|zuHause>didn't we already discuss that?
07:10<Eddi|zuHause>just remove it from the dependencies
07:11<Eddi|zuHause>and instead put all .py files into the GENERATE= line
07:11-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
07:11<andythenorth>why wasn't that necessary for FIRS?
07:11<andythenorth>FIRS uses a phony target
07:12<Eddi|zuHause>FIRS took the easy way out, to redo everything every time
07:12<Eddi|zuHause>but it's ... phony :p
07:13<Eddi|zuHause>anyway, i wanted to dig out my python stuff to see if one easily can make a "" out of it :)
07:13<andythenorth>scan files in recursive dirs?
07:13<andythenorth>store to a file?
07:14<andythenorth>or something better?
07:14-!-ntoskrnl [] has joined #openttd
07:14<Eddi|zuHause>parse file -> search all "Import" nodes, see if that matches a file/package, output a dep line, recurse
07:14<@planetmaker>Eddi|zuHause, FISH does that, too, now. basically
07:15<Eddi|zuHause>about 30LOC estimated
07:15<andythenorth>try it for FISH :)
07:15<andythenorth>it's a nice simple repo :)
07:15<V453000>loc loc locomotive :>
07:16<V453000>no code
07:16<@planetmaker>andythenorth, yes, just like eddi said: remove it from dependencies in
07:16<@planetmaker>and possibly replace it by a list of appropriate files
07:16-!-TheMask96 [] has joined #openttd
07:16<@planetmaker>alternatively, replace it by a phony, but empty target
07:16<@planetmaker>then it re-builds everytime
07:17<@planetmaker>for instance the target could be "pnml" without quotes
07:17<andythenorth>fish-nml: $(GENERATE) appears to work?
07:17<@planetmaker>as that already exists and does nothing
07:17<@planetmaker>I fear it won't re-generate, if you change source but not src/
07:18<andythenorth>probably not without a make clean
07:18<@planetmaker>thus: add an empty, phony target
07:18<andythenorth>does seem to work with just make
07:19<@planetmaker>or... simply remove $(GENERATE) from that line, too
07:19<@planetmaker>that's better even
07:19-!-ntoskrnl11 [] has quit [Ping timeout: 480 seconds]
07:19<@planetmaker>so that line 8 simply reads
07:20*andythenorth tests
07:20<@planetmaker>unconditional re-build
07:20<andythenorth>seems to work
07:20<@planetmaker>if build time is too long, the unconditional could be changed to re-build only what is needed. But... meh
07:20<andythenorth>it's not long
07:20<andythenorth>so not today's problem :)
07:21<@planetmaker>it needs anyway compiling the whole NewGRF. Thus I consider that pointless in most cases
07:21<@planetmaker>Which does not warrant complications today
07:21<@planetmaker>with eddi's partial compilation on CETS that's a different issue :-)
07:23*andythenorth just enabled chameleon templating cache
07:23<andythenorth>cuts 4s off the python step
07:24<@planetmaker>from how many in total?
07:24<andythenorth>10s or so
07:24<@planetmaker>nice gain
07:24<andythenorth>it's about 6-7s now to compile
07:24<@planetmaker>he... my total for FISH is user 0m5.112s
07:25<andythenorth>let me commit this
07:27<andythenorth>planetmaker: pull and try?
07:30<@planetmaker>trallala, I tested wrong repo before :D 0m7.604s without and 0m4.352s with caching. Nice
07:30<andythenorth>it's fast enough
07:31<andythenorth>python step is 0.2s with the caching
07:31<andythenorth>I could make it faster with multiprocessing
07:31<andythenorth>but meh, nml uses the rest of the time :)
07:32<@planetmaker>nml should use multi-processing
07:32<@planetmaker>wonder whether it does :-)
07:33<@planetmaker>(and can)
07:33<andythenorth>*if* the slow step is parsing the varaction 2 ids, then it won't help afaik
07:33<andythenorth>assuming that is what makes it slow
07:33<@planetmaker>that's what I assume, too, yes
07:33<andythenorth>I have no idea who profiled it to find that out though :)
07:34<@planetmaker>*if* anyone did
07:34<@planetmaker>though definitely yexo and hirundo did some profiling
07:44-!-HerzogDeXtEr [] has joined #openttd
07:46<andythenorth>wonder if I could hack my own nasty linker for FIRS
07:47<@planetmaker>what you want to link there?
07:47<andythenorth>partial compiles
07:48<andythenorth>compile per-industry
07:48<andythenorth>then concatenate
07:48<andythenorth>it's a crappy idea
07:48<@planetmaker>yes. and no. Depends ;-)
07:49<@planetmaker>preferentially that should go in NML, I think
07:49<andythenorth>I am thinking that too
07:50<@planetmaker>it's also python. Feel free to give it a stab
07:50<andythenorth>I wonder if it is too hard for nml?
07:50<andythenorth>how does nml know what can safely be isolated, except by scanning entire file?
07:51<andythenorth>whereas makefile or build script for a project can know that safely
07:52<@planetmaker>you could introduce syntax to indicate that. Would be a valid requirement
07:53<andythenorth>oh, that's a point
07:53<andythenorth>safe breaks
08:09-!-Tom_Soft [~id@] has joined #openttd
08:10-!-Tom_Soft [~id@] has quit []
08:18-!-andythenorth [~Andy@] has quit [Quit: andythenorth]
08:26-!-Midnightmyth [] has quit [Ping timeout: 480 seconds]
08:43-!-kais58|A1K is now known as kais58__4
09:00-!-andythenorth [~Andy@] has joined #openttd
09:03<andythenorth>carbon monoxide alarm is going off here
09:06<Eddi|zuHause>if you can't smell it, it can't be dangerous :p
09:09-!-cyph3r [] has quit [Quit: Miranda IM! Smaller, Faster, Easier.]
09:12-!-Ristovski [] has joined #openttd
09:14-!-zeknurn [] has quit [Remote host closed the connection]
09:15-!-zeknurn [] has joined #openttd
09:16<Zuu>Hmm... tt-forums seems to be down
09:16<Elukka>more tracks more better
09:16-!-lobster [] has quit [Remote host closed the connection]
09:17-!-lobster [] has joined #openttd
09:18<Eddi|zuHause>so why is this wirdly rescaled instead of a plain screenshot?
09:18<Eddi|zuHause>besides of wasting bandwidth because the file gets 4 times larger, this is also unreadable
09:18<Elukka>it's just a 2x zoom
09:19<Elukka>you have to click it or you get dropbox's additionally rescaled blurry version
09:19<Elukka>which sucks, but what can you do
09:19<Eddi|zuHause>i can't click on it
09:19<Elukka>nothing i can do about dropbox rescaling it unfortunately
09:19<Elukka>photobucket does the same except you can't get the real version
09:20<Xaroth|Work>then use imgur
09:20<Eddi|zuHause>i think you're not using it correctly...
09:21<Eddi|zuHause>obviously dropbox must have ways to provide unaltered binary files
09:34-!-andythenorth [~Andy@] has quit [Quit: andythenorth]
09:42<Elukka>well, it's clickable for others apparently
09:45<Elukka>can't really see an issue with 'wasting bandwidth'... if that was a concern it'd make sense not to click image links
09:46<Elukka>interestingly though i haven't found a very good image format for sharp pixel graphics like openttd's
09:46<Elukka>jpg is terribly artifacty, png is huge
09:46<Xaroth|Work>png works just fine for openttd screenshots
09:47<Xaroth|Work>but as i said, try uploading it to something like imgur
09:47<Xaroth|Work>that should give you a rather intact image
09:48<Elukka>my only beef with imgur is that you apparently can't have subalbums
09:48<Elukka>guess i should make an account anyway
09:48<Elukka>usually i use it for thoraway images
09:50<Elukka>png works but it doesn't feel ideal
09:50<Elukka>might not be a better way to complex pixel art now that i think about it
09:51<Elukka>for more complex graphics, or photos, jpg gets the file size for a largeish screenshot down to 200ish kb with no real loss in quality
09:51<Elukka>for something with sharp edges and limited complexity png is about the same size or even smaller and obviously has no artifacts
09:52<Elukka>a fullscreen openttd screenshot in png will be about 1-2 mb though
09:52<Eddi|zuHause>only if you use 32bpp
09:55<@planetmaker>@calc 1920*1200*8 / 1024/1024
09:55<@DorpsGek>planetmaker: 17.578125
09:55<@planetmaker>why *8?
09:55<@planetmaker>add the zlib compression intrinsic to png it will be smaller than 17.5/8
09:57-!-MatrixCL [] has quit [Ping timeout: 480 seconds]
09:57-!-Ristovski [] has quit [Quit: Leaving]
10:03-!-roboboy [] has quit [Quit: Leaving]
10:24-!-y2000rtc [] has joined #openttd
10:25<peter1139>8? using 64bpp?
10:27-!-andythenorth [] has joined #openttd
10:29-!-Polleke [] has quit [Remote host closed the connection]
10:38-!-y2000rtc [] has quit []
11:29-!-permagreen [~donovan@] has quit [Ping timeout: 480 seconds]
11:34-!-zooks [] has joined #openttd
11:38-!-permagreen [] has joined #openttd
11:41<@Rubidium> <- nice one Linus! ;)
11:41<Xaroth|Work>Linux for Workstation ?
11:42<Xaroth|Work>workgroups, even
11:42<@Rubidium>guess you're too young to appreciate that pun
11:42<Xaroth|Work>I guess you assume a wee bit too much here
11:47<peter1139>well, ignore that... just this
12:05-!-andythenorth [] has quit [Quit: andythenorth]
12:06-!-LordAro [] has joined #openttd
12:07<LordAro>evening gents
12:08<LordAro>i assume you've already seen this? (the current content ;) )
12:14<@planetmaker>yes. And hi LordAro
12:14<LordAro>hi planetmaker :)
12:26-!-Midnightmyth [] has joined #openttd
12:32-!-zooks [] has quit [Ping timeout: 480 seconds]
12:32-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
12:36-!-TheMask96 [] has joined #openttd
12:36-!-andythenorth [] has joined #openttd
12:47-!-SamanthaD [] has joined #openttd
12:47-!-frosch123 [] has joined #openttd
12:48-!-Progman [] has joined #openttd
13:13<andythenorth>python: any equivalent to get() for object props?
13:13<andythenorth>I could use hasattr, but that's ugly in this context
13:16-!-permagreen [] has quit [Remote host closed the connection]
13:17-!-permagreen [] has joined #openttd
13:21*andythenorth did search first :P
13:23-!-zooks [] has joined #openttd
13:32-!-gelignite [] has joined #openttd
13:45<@DorpsGek>Commit by translators :: r25613 trunk/src/lang/german.txt (2013-07-15 17:45:08 UTC)
13:45<andythenorth>refactored to deal with it
13:45<@DorpsGek>-Update from WebTranslator v3.0:
13:45<@DorpsGek>german - 5 changes by Jogio
13:53<frosch123>how to tell you are in the year 2013?
13:54<frosch123>online shops cannot handle umlauts in shipping addresses
13:54<@Rubidium>they're probably still using Windows for Workgroups
13:54<Kjetil>Linux for Workgroups you mean :P
13:54<frosch123>i am sure linux for workgroups can handle unicode quite well
13:55<@Rubidium>Kjetil: no, because that can generally handle those things quite effortlessly
13:55<Kjetil>*writes a patch to break the support for win 3.11 compatability*
13:56-!-andythenorth [] has quit [Quit: andythenorth]
14:02-!-flaa [~flaa@] has joined #openttd
14:03-!-DDR [] has joined #openttd
14:05-!-MatrixCL [] has joined #openttd
14:17-!-cyph3r [] has joined #openttd
14:19<@DorpsGek>Commit by rubidium :: r25614 /trunk/src/script/api (3 files in 3 dirs) (2013-07-15 18:19:26 UTC)
14:19<@DorpsGek>-Fix [FS#5651]: [Script] Give a slightly less generic error when removing inexisting rail
14:19<@DorpsGek>-Fix [FS#5650]: [Script] Be more specific that a non-NewGRF station can be built when asking for a NewGRF station
14:27-!-ntoskrnl [] has quit [Read error: Operation timed out]
14:37<LordAro>hullo, fellow redditor :)
14:41-!-andythenorth [] has joined #openttd
14:42<@planetmaker>hm... too repetitive? / ?
14:43<V453000>I give up on commenting landscape sprites because I know how much hell it is to make them look nice
14:43<V453000>but I think it looks quite good
14:43<V453000>the grid version should probably have the grid a lot less visible though
14:44-!-roadt_ [~roadt@] has quit [Ping timeout: 480 seconds]
14:44<@planetmaker>Please feel free to also comment more. This is just 30 minutes of copy & paste and 30 minutes of compiling the grf :D
14:45<@planetmaker>Just grabbed Wesnoth's desert sprite, rotated and skewed it. That's it
14:45<@Rubidium>the while one definitely is too repetitive ;)
14:46<@planetmaker>hehe, yeah :-)
14:46<V453000>I would try to remove the dark dot
14:46<@planetmaker>hm, I see. Yeah... that might be too much
14:47<andythenorth>planetmaker: sprucing up ogfx? o_O
14:47<@planetmaker>eventually, maybe
14:47<@planetmaker>maybe also zBase
14:47<@planetmaker>who knows
14:47<Eddi|zuHause>planetmaker: i think for the repetitiveness it has too much contrast
14:49<V453000>yeah perhaps reducing that a little bit could help too
14:49-!-kais58__5 [] has joined #openttd
14:50-!-flaa [~flaa@] has quit [Ping timeout: 480 seconds]
14:50<Eddi|zuHause>it's less obvious with the grid, but then what V453000 said applies, the grid is too wide
14:50<@planetmaker>I think the contrast is not larger than others. But the location frequency is (much) lower
14:51-!-kais58__4 [] has quit [Ping timeout: 480 seconds]
14:51-!-Jam35 [] has joined #openttd
14:51<@planetmaker>the grid is not too wide. It's exactly the grid lines as found also now on all sprites. But drawn by the grid line patch ;-)
14:51<V453000>grid is too obvious, both making it less wide, or less "opaque" would help
14:51<V453000>if less wide is not the option, then less contrasty :P
14:51<@planetmaker>the gridline patch is slightly darker than current grid lines, though
14:52<Eddi|zuHause>in the gridless version, you have too obvious vertical lines
14:52-!-Jam35 [] has left #openttd []
14:55<Xaroth|Work>planetmaker: looks like white spice from opendune
14:58<@planetmaker>hm, I should first design the terrain in 32bpp-file. Then copy the result to 8bpp file... easier
15:00<andythenorth>python: multiple inheritance = bad?
15:00<andythenorth>or unwise?
15:00<Xaroth|Work>not per se
15:00<Xaroth|Work>depends on what you're trying to do
15:01<@Rubidium>multiple inheritance is good for evolution
15:01-!-kais58__5 is now known as kais58|AFK
15:02<Xaroth|Work>andythenorth: got a public repo somewhere perchance?
15:03<andythenorth>has a few deps
15:08-!-flaa [~flaa@] has joined #openttd
15:11<Xaroth|Work>hrnf, hg
15:12<Xaroth|Work>right, time to check it out
15:17*andythenorth might be reinventing mixins :(
15:18<Xaroth|Work>chameleon as templating engine?
15:18<andythenorth>fun eh?
15:19<andythenorth>wrong tool, but I know how to use it
15:19<Xaroth|Work>it looks absolutely horrible :P
15:20*Xaroth|Work is used to django/jinja-style templating
15:20<andythenorth>templating is templating :)
15:21-!-Alberth [] has joined #openttd
15:21-!-mode/#openttd [+o Alberth] by ChanServ
15:21<@Alberth>hi hi
15:22<LordAro>hai Alberth
15:22<andythenorth>lo Alberth
15:26-!-Brumi [] has quit []
15:26<@Alberth>LordAro: next time, don't tell RCT2 runs under Wine, it's not good for other projects ;p
15:27-!-KritiK [] has joined #openttd
15:27<@Alberth>although one weekend is probably enough for some time, the game is pretty simple :)
15:29<andythenorth>Xaroth|Work: so does it build for you? o_O
15:30<Xaroth|Work>andythenorth: not tried building it
15:31<Xaroth|Work>rummaging through code
15:31<andythenorth>it's midway through a tidy up :P
15:32<andythenorth>removing lots of 'if foo == eggs: ham" stuff
15:32<andythenorth>and replacing it with straightforward handler in subclass
15:34<@Alberth>isn't it lovely? so many ways to write the same thing, yet they are all slightly different :)
15:34<Xaroth|Work>something with standards
15:34<Xaroth|Work>( )
15:35<andythenorth>one and only one way :P
15:35<Xaroth|Work>your render bit could use some OO love
15:37<andythenorth>¿ template = templates[(self.template)]
15:38-!-kais58|A1K [] has joined #openttd
15:39<Xaroth|Work>also, I personally don't prefer the notation you use for your ships.. another method could be to make it a class that inherits stuff like GeneralCargoVessel
15:39<Eddi|zuHause>this should be a "standard" link :p
15:39<andythenorth>which notation? o_O
15:40-!-kais58|AFK [] has quit [Ping timeout: 480 seconds]
15:41<andythenorth>so each ship is a class, instead of an instance of a class?
15:41<Xaroth|Work>like so
15:41<Xaroth|Work>that way you can have similar boats inherit from eachother
15:42<@Alberth>looks like nml :p
15:42<andythenorth>other than being easier to read, what is the gain?
15:42<andythenorth>also fewer commas :P
15:43<Xaroth|Work>and you can use properties, though I doubt you'll need those
15:43<@Alberth>class large_saint_marie_barge_tug(saint_marie_barge_tug): capacity_cargo_holds = 1000
15:43<Xaroth|Work>like that
15:43<andythenorth>yeah ok
15:43<andythenorth>that use case is probably overengineering tbh
15:43<andythenorth>but I can see why you don't like the notation
15:44<andythenorth>it looks odd now
15:44<Xaroth|Work>now it's a giant function call
15:44<Xaroth|Work>and passing 23 args to a single function
15:44<Xaroth|Work>is awkwards
15:44<@Alberth>23 args is smelly :)
15:45<andythenorth>but the function is __init__ :P
15:45<Xaroth|Work>you can apply mixins :)
15:45<Xaroth|Work>apply specific rules for specific items
15:46<Xaroth|Work>also, you can use tricks to register your ships in a central list/dict/whatever
15:46<Xaroth|Work>like I do with libottdadmin2:
15:47<andythenorth>which line?
15:47<Xaroth|Work>38, 42, 21
15:47<Xaroth|Work>@send.packet :)
15:47<Xaroth|Work>the magic is done here:
15:48<@Alberth>:o real magic :)
15:48<Xaroth|Work>every packet marked with @receive.packet or @send.packet
15:48<Xaroth|Work>is added to send/receive's _packets dict
15:48<Xaroth|Work>which is indexed by their packetID
15:48<Xaroth|Work>i can then use send[packetID]
15:48<Xaroth|Work>to retreive it
15:48<Xaroth|Work>(or, even, send[packetClass])
15:50<andythenorth>ok so how does the magic work? o_O
15:50<andythenorth>we have a decorator?
15:50<Xaroth|Work>everything can be a decorator
15:50<Xaroth|Work>it's nothing more than a function being caleld
15:51<Xaroth|Work>PacketRegistry's packet(packetID, [klass]) gets called
15:51<Xaroth|Work>there's 3 ways you can accomplish that
15:51<Xaroth|Work>the if magic there shows what to do in each case
15:51<Xaroth|Work>in fact, there's even a small bug in that :P
15:52<Xaroth|Work>i can call @send.packet(1) before it
15:52<Xaroth|Work>@send.packet before it
15:53<Xaroth|Work>or @send.packet() (which has the bug)
15:53<Xaroth|Work>or even send.packet(1, AdminJoin)
15:54-!-bertieb [] has joined #openttd
15:55<andythenorth>is this magic I should be using?
15:56<Xaroth|Work>it's python
15:56<Xaroth|Work>it's magic!
15:56<andythenorth>I mean, would it improve FISH code? o_O
15:56<andythenorth>and how do I do it?
15:58<Xaroth|Work>it can replace Ship.register
16:00<Xaroth|Work>also, get_X_speed can technically be replaced by properties
16:01<Xaroth|Work>like that
16:01<Xaroth|Work>same with a few more get_*
16:01-!-bertieb [] has left #openttd []
16:02-!-TomyLobo2 [] has joined #openttd
16:03-!-Extrems1 [borgs@] has joined #openttd
16:03-!-MatrixCL2 [] has joined #openttd
16:03-!-andythenorth_ [] has joined #openttd
16:04<Xaroth|Work>then again, you can use 0.8 if self.sea_capable else 1.0
16:04<Xaroth|Work>instead of using a tuple
16:04<andythenorth_>someone taught me that odd tuple method once
16:04-!-TrueBrain_ [] has joined #openttd
16:04<Xaroth|Work>it's odd indeed
16:04<andythenorth_>and it's stuck with me ever since
16:05<Xaroth|Work>that explains much more what's happening
16:05-!-lugo- [] has joined #openttd
16:05<andythenorth_>ach, I've just removed the function def entirely
16:05<andythenorth_>redundant :)
16:06<andythenorth_>don't know why I did it ;)
16:06<andythenorth_>premature handling of unknown future case probly
16:06-!-Netsplit <-> quits: MatrixCL, permagreen, TomyLobo, henrik, Extrems, wolfmitchell, ntx, TrueBrain, dfox, lugo, (+3 more, use /NETSPLIT to show all of them)
16:06-!-andythenorth_ is now known as andythenorth
16:06-!-TomyLobo2 is now known as TomyLobo
16:06-!-Netsplit over, joins: henrik, ntx
16:08<andythenorth>so if every ship gets its own class...
16:08<Xaroth|Work>you can do magics :)
16:08<andythenorth>where would I create an instance of that class?
16:08<Xaroth|Work>well, in my case, my decorator does that for me
16:08<Xaroth|Work>that way i introduce a tiny bit of extra magic in a decorator
16:09<andythenorth>ok, so that makes sense
16:09<Xaroth|Work>and don't have to add instantiation to every file
16:09<andythenorth>I don't like ship = ClassName(Ship) args
16:09-!-wolfmitchell [] has joined #openttd
16:09<andythenorth>or whatever it is I have
16:09<andythenorth>ship = ClassName(args)
16:09-!-planetmaker [] has joined #openttd
16:09-!-mode/#openttd [+o planetmaker] by ChanServ
16:10<Xaroth|Work>also, since we're nitpicking
16:10<Xaroth|Work>you have .ship and .ships.<stuff>
16:10<Xaroth|Work>the base classes from .ship should really be with .ships
16:11<Xaroth|Work>i tend to use .module.base for that
16:11<andythenorth>makes sense
16:11<andythenorth>dep for package should travel in package?
16:11<Xaroth|Work>then i can use from .base import <base class>
16:11<andythenorth>from .base import Belong
16:12-!-glx [] has joined #openttd
16:12-!-mode/#openttd [+v glx] by ChanServ
16:12<Xaroth|Work>well it's not logical, if you want to change the base ships property you should be looking in the ships module
16:12<Xaroth|Work>not somewhere between the rest of the stuff
16:13*andythenorth experiments
16:14<andythenorth>I suppose __base__ is all wrong?
16:14<andythenorth>puts it at the top of my file browser hierarchy :P
16:14<Xaroth|Work>underscore files are for pyhon builtin magic, usually
16:15<andythenorth>I could just declare all the base stuff in the init for the module?
16:15<andythenorth>I've done that before :P
16:15<Xaroth|Work>also, not really relevant if you move to classes for ships, but your Ship.__init__ code can technically be reduced to 5-6-ish lines :)
16:15-!-zooks [] has quit [Ping timeout: 480 seconds]
16:15<Xaroth|Work>er, no
16:15<Xaroth|Work>for a simple reason
16:16<Xaroth|Work>you want to import all your ships in __init__
16:16<Xaroth|Work>1) you can then do: from ships import *
16:16<Xaroth|Work>2) when you do that, -all- your ships get loaded, decorators get run,e tc
16:17<andythenorth>well maybe
16:17<Xaroth|Work>and when you add your base class in __ini__
16:17<Xaroth|Work>er, init*
16:17<Xaroth|Work>you can't do from ships import baseclass
16:17<Xaroth|Work>because that would lead to circular imports
16:17-!-dfox [~dfox@] has joined #openttd
16:17<Xaroth|Work>(init wanting to load the ship, ship wanting to load init)
16:17-!-permagreen [~donovan@] has joined #openttd
16:18<Xaroth|Work>(also, it looks nicer: from ships import altamira_freighter vs from ships.altamira_freighter import altamira_freighter )
16:18-!-Progman [] has joined #openttd
16:18<andythenorth>you prefer the second method?
16:19-!-zeknurn [] has quit [Remote host closed the connection]
16:19<Xaroth|Work>I prefer from ships import altamira_freighter
16:19<Xaroth|Work>in ships.__init__ i'd then have: from .altamira_freighter import altamira_freighter
16:19<Xaroth|Work>ugly once, but still
16:19-!-zeknurn [] has joined #openttd
16:19<andythenorth>I am unconvinced about making each ship its own class
16:20<andythenorth>seems like a class too far
16:20<andythenorth>I think they're instances
16:20<Xaroth|Work>what if you want to have a ship that doesn't stick to inland/sea speeds ?
16:20<Xaroth|Work>now your only 2 options are yes/no
16:20<Xaroth|Work>if you have a class
16:20<Xaroth|Work>you can overload the property
16:20<Xaroth|Work>do your own magic just for that ship
16:21<@Alberth>make a new class for that type of ship
16:21<andythenorth>cherry-picking use cases is hard :)
16:21<andythenorth>that particular one is not a valid case
16:21<andythenorth>as spec doesn't allow it
16:22<Xaroth|Work>also, a -lot- of your ships have the same values for a fair few properties
16:31-!-SamanthaD [] has quit [Ping timeout: 480 seconds]
16:31<andythenorth>wtf were those extra () chars doing in render() function? :P
16:31*andythenorth removes those
16:32<andythenorth> template = templates[(self.template)]
16:32<Xaroth|Work>no clue
16:32<andythenorth>it used to be a more complicated statement
16:32<andythenorth>I missed them when refactoring
16:34<andythenorth>ok so I see how making each ship its own class reduces the __init__ in Ship
16:34<andythenorth>and avoids passing around 1 bazillion args in **kwargs
16:35<andythenorth>I'm not sure about magic for registration
16:35<andythenorth>magic is *usually* bad
16:35<@Alberth>make a few base classes with sane defaults, and instantiate + modify them for a specific ship?
16:36<andythenorth>maybe *
16:36<@Alberth>you can also have some code that computes some values at the end
16:37<andythenorth>I'd have class -> subclass -> subclass -> instance
16:37-!-Prof_Frink [~proffrink@] has joined #openttd
16:37<andythenorth>which seems overkill for 30 ships in a newgrf?
16:37<andythenorth>duck tape (sic) seems appropriate for templating newgrfs?
16:38<@Alberth>extreme solutions are rarely the optimum
16:38<andythenorth>this would be more sensible if I'd subclassed from day 0
16:39<andythenorth>right now, I'm grafting subclasses in to sanitise a lot of messy if / else crap
16:39<@Alberth>that seems like a good reason
16:40<Xaroth|Work>I'd come out as a base class like such:
16:40<Xaroth|Work>er, missed removing a line
16:40<@Alberth>and quite likely you'll end up at a different point due to the history, but that's fine, many solutions are good
16:40<andythenorth>Xaroth|Work: I'd probably just remove all "foo = None" declarations
16:41<andythenorth>I can see it's a kind of documentation this way :P
16:42<Xaroth|Work>well, it's your base class now
16:42<Xaroth|Work>so it should have it
16:42<Xaroth|Work>unless it's ship-specific
16:42<andythenorth>nah these are all generic props
16:43<andythenorth>so the @property decorator just makes a method callable without ()?
16:43<andythenorth>fake property
16:43<Xaroth|Work>property decorator :)
16:44<Xaroth|Work>you can also do x = property(fget, fset, fdel, fdoc)
16:44<Xaroth|Work>where fget/set/del/doc are the getter, setter, deleter and the func-doc
16:44<Xaroth|Work>or you can do @property <func>
16:44<Xaroth|Work>then @funcname.setter
16:44-!-Elukka [] has quit []
16:44<andythenorth>I can cut all the get_ crap as well
16:45<Xaroth|Work>:) :)
16:45<Xaroth|Work>hence why i said
16:45<andythenorth>just reminds me to call it when writing the templates
16:45<Xaroth|Work>get_* with no params can usually be done in a property
16:46<Xaroth|Work>if you set a class property to something
16:46<Xaroth|Work>all class instances will have that by default
16:46<Xaroth|Work>keep in mind with mutable objects, like list/tuple/dict
16:46<andythenorth>yeah that much is obvious :)
16:46<andythenorth>been there done that
16:46<Xaroth|Work>it's like putting a list/tuple as a default arg for a function
16:46<andythenorth>deep vs. shallow copy was a suprising lesson last year :P
16:53<andythenorth>that was useful
16:53<andythenorth>didn't answer my original question though ;)
16:53<Xaroth|Work>which, exactly?
16:54<Xaroth|Work>too much spam in here :P
16:54<andythenorth>should I add an additional subclass for 'ShipWithRefittableCapacity' ?
16:54<andythenorth>which subclasses ship
16:54<andythenorth>instead of having 'if foo' conditional crap
16:54<Xaroth|Work>or a Refittable mixin?
16:54<andythenorth>mixin is preferable
16:54<andythenorth>I didn't know about mixins in python
16:54<Xaroth|Work>Refittable applies to more than just ships
16:54<andythenorth>only seen them in Less css etc
16:54<Xaroth|Work>class A(B, C):
16:55*andythenorth -> SO
16:55<Xaroth|Work>a mixin is, in essence, a class
16:56<andythenorth>seems useful
16:56<Xaroth|Work>inheritance goes right to left
16:56<andythenorth>makes sense
16:56<Xaroth|Work>bit odd, then again.. using spaces for code blocks is as well :P
16:56<andythenorth>wouldn't have guessed right to left
16:56<andythenorth>but it's correct imo
16:57<andythenorth>once you understand scopes :P
16:57-!-frosch123 [] has quit [Quit: quak]
16:57<andythenorth>look in nearest scope first
17:01<andythenorth>toddler has been playing in 'bubble land'
17:02<andythenorth>mixins are neat
17:02<andythenorth>that's exactly what I wanted
17:03<andythenorth>not a horrible spaghetti nest of subclasses
17:04<@Alberth>I find them hard to understand what you have, at the end, but in your case I can imagine they are useful
17:04<andythenorth>I do not want to think about calling super() with mixins :(
17:04<andythenorth>too much baggage
17:05<andythenorth>it just looks in the hierarchy for the method
17:05<@Alberth>the other option is to split your bag of variables in a number of smaller bags, make separate class/instances of them, then treat those objects as variables
17:06<andythenorth>as per BANDIT graphics generator
17:06<andythenorth>I like that method too
17:06<andythenorth>overkill here I think :)
17:06<@Alberth>doing the same thing more than one time is boring :)
17:07*Alberth is inventing a good way to write a state machine in C++ :)
17:08<@Alberth>except I have a lot of methods in each state :)
17:18-!-Ristovski [] has joined #openttd
17:20<LordAro>Alberth: roller coasters?
17:20<@Alberth>or rather, the user interaction while building one
17:21<@Alberth>ie what happens when you click a button etc, just like the path build interaction
17:21<@Alberth>except I am not happy with that code, it's very hard to read
17:23-!-Progman [] has quit [Remote host closed the connection]
17:24-!-DarkAce-Z is now known as DarkAceZ
17:25<Xaroth|Work>using super() too much can be avoided though
17:30<Eddi|zuHause>at one time i had existing classes bac, baf, bar and baz, and made a "def foo()" followed by, etc.
17:35<@Alberth>looks like the C code I converted to classes :)
17:35<@Alberth>good night
17:38-!-andythenorth [] has left #openttd []
17:38-!-Alberth [] has left #openttd []
17:54-!-LordAro [] has quit [Quit: Leaving]
18:04-!-tokai|noir [] has joined #openttd
18:04-!-mode/#openttd [+v tokai|noir] by ChanServ
18:07-!-gelignite [] has quit [Quit:]
18:09-!-tokai|mdlx [] has quit [Ping timeout: 480 seconds]
18:13-!-Midnightmyth [] has quit [Remote host closed the connection]
18:19-!-Mucht [] has quit [Remote host closed the connection]
18:25-!-flaa [~flaa@] has quit [Quit: leaving]
18:26-!-Alice3 [] has quit []
18:28-!-sla_ro|master [] has quit []
18:33-!-Zuu [] has quit [Ping timeout: 480 seconds]
18:36-!-TrueBrain_ is now known as TrueBrain
19:02-!-Ristovski [] has quit [Quit: Leaving]
19:04-!-Devroush [] has quit []
19:13-!-oskari89 [] has quit []
19:16-!-Superuser [] has joined #openttd
19:30-!-Midnightmyth [] has joined #openttd
19:45-!-Midnightmyth [] has quit [Ping timeout: 480 seconds]
19:49-!-MatrixCL2 [] has quit [Quit: Nettalk6 -]
19:50-!-DarkAceZ [~BillyMays@] has quit [Ping timeout: 480 seconds]
19:51-!-DarkAceZ [~BillyMays@] has joined #openttd
20:01-!-Midnightmyth [] has joined #openttd
20:03-!-cyph3r [] has quit [Read error: Connection reset by peer]
20:11-!-HerzogDeXtEr [] has quit [Read error: Connection reset by peer]
20:26-!-kais58|A1K [] has quit [Ping timeout: 480 seconds]
20:30-!-kais58|AFK [] has joined #openttd
20:48-!-KritiK [] has quit [Quit: Leaving]
20:50-!-Superuser [] has quit [Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC.]
20:50-!-glx [] has quit [Quit: Bye]
21:20-!-pjpe [~oftc-webi@] has joined #openttd
21:34-!-kais58|A1K [] has joined #openttd
21:36-!-kais58|AFK [] has quit [Ping timeout: 480 seconds]
22:06-!-SamanthaD [] has joined #openttd
22:12-!-pugi_ [] has joined #openttd
22:14-!-pugi_ [] has quit []
22:17-!-Eddi|zuHause2 [] has joined #openttd
22:18-!-pugi [] has quit [Ping timeout: 480 seconds]
22:19<SamanthaD>I'm trying to compile OpenTTD with the Cargodist and Slim Timetable Separation. The documentation on the wiki says I need to svn update to the appropriate revision then patch -p0 the patch
22:19<SamanthaD>but... the two patches are built against different revisions!
22:24-!-Eddi|zuHause [] has quit [Ping timeout: 480 seconds]
22:38<SamanthaD>Hmm... dinner. I'll be back later.
23:02-!-montalvo [] has joined #openttd
23:11-!-xT2 [] has joined #openttd
23:14-!-ST2 [] has quit [Ping timeout: 480 seconds]
23:23-!-roadt_ [~roadt@] has joined #openttd
23:31<SamanthaD>Can anyone help me patch my game?
23:31-!-kais58|AFK [] has joined #openttd
23:32<SamanthaD>I'm trying to apply both cargodist and slim timetable separation
23:32<SamanthaD>the wiki only details how to install one patch
23:33-!-kais58|A1K [] has quit [Ping timeout: 480 seconds]
23:38<pjpe>how different are the two revision numbers
23:39-!-kais58|A1K [] has joined #openttd
23:41-!-kais58|AFK [] has quit [Ping timeout: 480 seconds]
23:41<SamanthaD>let's see... the first patch is for r24032 and the second patch is for r25565
23:41<SamanthaD>but the first patch seems to be pretty minor. It just messes with the timetables code
23:41<pjpe>well shit i don't know
23:42<SamanthaD>should I just set the revision to r25565 and then patch?
23:43<SamanthaD>the other thing I can think of would probably mess things up
23:43<SamanthaD>when you subversion to a new revision you wipe out any patches you made, right?
23:43<pjpe>hey try it, why not
23:43<SamanthaD>will do!
23:43<pjpe>worse comes to worse you're where you started
23:43<pjpe>or dead
23:44-!-DabuYu [DoubleYou@] has quit []
23:44<SamanthaD>*computer explodes*
23:49-!-DabuYu [DoubleYou@] has joined #openttd
---Logclosed Tue Jul 16 00:00:10 2013