Back to Home / #openttd / 2017 / 03 / Prev Day | Next Day
#openttd IRC Logs for 2017-03-19

---Logopened Sun Mar 19 00:00:31 2017
00:48-!-Tharbakim [] has quit [Quit: Something has gone terribly wrong. Send help.]
00:53-!-Tharbakim [] has joined #openttd
00:53-!-Tharbakim is "Tharbakim" on #slackware #openttd #lxde #linux #irssi #fish #bitlbee #/r/openttd
01:55-!-HerzogDeXtEr1 [] has quit [Read error: Connection reset by peer]
02:40-!-sim-al2 [] has quit [Ping timeout: 480 seconds]
02:47-!-Progman [] has joined #openttd
02:47-!-Progman is "Peter Henschel" on #openttdcoop #openttd
02:57-!-Supercheese [] has quit [Quit: Valete omnes]
03:01-!-andythenorth [] has joined #openttd
03:01-!-andythenorth is "andythenorth" on #openttd
03:07-!-sla_ro|master [] has joined #openttd
03:07-!-sla_ro|master is "slamaster" on @#sla #openttd #love
04:14<Eddi|zuHause>supermop_home: the usual problem there is bounding boxes... you'd have to distinguish between vehicles passing in front or behind the pole
04:14<Eddi|zuHause>i'd love tram tracks with pylon in the middle, though
04:16-!-Alberth [] has joined #openttd
04:16-!-mode/#openttd [+o Alberth] by ChanServ
04:16-!-Alberth is "purple" on @#openttd
04:18<andythenorth>so…when is a python module too big for a single file? o_O
04:19<andythenorth>this one is about to cross the 1k line barrier
04:19<andythenorth>1k lines often seems ‘too many'
04:20<andythenorth>but it’s so convenient having an entire encapsulated in one file :P
04:20<Eddi|zuHause>andythenorth: any number you could say there will have too many exceptions to be a useful criterium
04:21<@Alberth>how strongly are those classes connected?
04:21<andythenorth>it could be separate industry / tile
04:21<andythenorth>but there would be a lot of cross-importing between both
04:23<Eddi|zuHause>you could split off each class that derives from (object) into its own module (including its subclasses)
04:23<andythenorth>the most obvious split is industry and tile
04:23<andythenorth>as that maps to the separation in newgrf spec and in templates
04:23<@Alberth>it seems to have tile, sprite, and industry as 'main' objects, at a global glance
04:24<Eddi|zuHause>also, deriving from (object) is not needed anymore in python3
04:24<andythenorth>I should fix that
04:24<@Alberth>how does an industry need Tile classes?
04:25<@Alberth>I would say it has such objects, but you don't need to import a class for that
04:25<Eddi|zuHause>also, you don't necessarily need to split the *module*, you can split the *file* and do "from subfile import A,B,C"
04:26<@Alberth>perhaps split the data structure creation code into a separate file instead?
04:27<andythenorth>neither of you are saying “leave it alone, that file is not too long” o_O
04:28<@Alberth>Sprite and Industry are very different things, imho
04:28<@Alberth>but splitting doesn't reduce total code size, it just distributes code to more files
04:29<Eddi|zuHause>andythenorth: no we're not saying that, but we're not saying the opposite either. because it's a very weak argument
04:29<@Alberth>in the end, it's best to do what you want, rather than trying to comply with some standard
04:29<andythenorth>I’ll add the new code, and see what that does
04:29<andythenorth>it’s potentially long declarative stuff
04:30<Eddi|zuHause>long declarative stuff usually warrants its own file
04:30<@Alberth>judging by the names of the classes, I would expect layering of the concepts on top of each other, rather than mutual inclusion, tbh
04:31<andythenorth>I should put the declarative stuff in a template :P
04:31<andythenorth>and template the python
04:31<andythenorth>code generating the code generator
04:31<andythenorth>so wrong
04:31<Eddi|zuHause>import compiler
04:31<@Alberth>nah :p
04:32<@Alberth>but it sounds like something is wrong, I agree :)
04:33<@Alberth>from your big code removal yesterday, I am starting to think something is wrong in nml
04:33<@Alberth>it can't be right that you have to write that much code for nml, imho
04:35<Eddi|zuHause>well, CETS is like 1000 lines python, which generates 100k lines of nml
04:36<andythenorth>FIRS is currently around 215k lines
04:36<@Alberth>wouldn't it be more logical to have 1000+ lines nml, which generates 100k lines NFO?
04:36<Eddi|zuHause>however, andy's python is a tiny bit less space-efficient :p
04:36<andythenorth>it was 480k lines yesterday
04:36<andythenorth>yesterday a FIRS compile from clean was about 1m 40s
04:36<andythenorth>today it’s 1m
04:36<@Alberth>given that nml is supposed to be a high level grf language?
04:36<andythenorth>spritelayouts are very very very ineffecient :)
04:37<andythenorth>or maybe they’re very efficient, but very time consuming
04:37<@Alberth>what is faster now? the nml generation, or nml itself, or...?
04:38<andythenorth>nml compilation
04:38<Eddi|zuHause>Alberth: well, if you think NFO as assembler, then NML is more like C than C++ or python
04:38<@Alberth>that sounds reasonable
04:38<andythenorth>notably I only refactored 5 out of 81 industries
04:39<Eddi|zuHause>the problem is that nobody ever thought of an "expression"-simplification that supercedes the switch-structure
04:39<andythenorth>most of the code removal was spritelayouts for desert and snow
04:39<andythenorth>the wonderful part is that these industries can’t build in desert or snow :)
04:39<@Alberth>Eddi|zuHause: imperative code?
04:39<andythenorth>so compile has been 33% slower than it needed to be for years :P
04:39<Eddi|zuHause>Alberth: yeah, something like that... minus loops
04:40<@Alberth>mostly "-Cleanup: delete unused code" thus, andy :)
04:40<andythenorth>the perils of automated migration from a sub-optimal macro templating system :P
04:41<@Alberth>who knows what other gems may be hidden in there :p
04:42<andythenorth>I know of a couple more
04:42<@Alberth>soon you can go back to your old computer :)
04:42<andythenorth>ok there’s a lot of dead newlines here, but 231 lines per spritelayout :)
04:43<andythenorth>@calc 81 * 2 * 231
04:43<@DorpsGek>andythenorth: 37422
04:43<andythenorth>@calc 81 * 2 * 209
04:43<@DorpsGek>andythenorth: 33858
04:43<andythenorth>@calc 4000 / 200000
04:43<@DorpsGek>andythenorth: 0.02
04:44<andythenorth>hmm 2% I can save probably
04:44<andythenorth>not so big :)
04:44<andythenorth>ah, no, my assumptions are all wrong
04:45<andythenorth>@calc 81 * 9 * 231
04:45<@DorpsGek>andythenorth: 168399
04:45<andythenorth>industries probably have about 9 spritelayouts on average, not 2
04:45<andythenorth>so most of FIRS is spritelayouts
04:46<andythenorth>@calc 81 * 9 * 209
04:46<@DorpsGek>andythenorth: 152361
04:46<andythenorth>cutting 22 lines for snow stuff will scale up :P
04:47-!-Hiddenfunstuff [] has joined #openttd
04:47-!-Hiddenfunstuff is "Geth" on #openttd #/r/openttd #openttdcoop
04:49<andythenorth>takes a few seconds off, not much
04:50<andythenorth>and the line length is more like 285k, the 215k figure above is because my editor hadn’t finished loading it :P
04:53<andythenorth>Alberth: I’m not sure how nml could be ‘less’, unless OpenTTD does more
04:55<andythenorth>notably there is a lot of repetitive handling of terrain awareness because we prefer open-ended use of cbs and vars
04:56<andythenorth>I can’t just declare a spriteset with a flag on it for the terrain
04:59<@Alberth>fair enough, I guess that also holds for nml, you can lift the primitive to something simpler, but then you loose flexibility
04:59<andythenorth>I wouldn’t rule it out
05:00<andythenorth>the flexibility still exists underneath
05:00<@Alberth>yep, keeping us stuck to CPU bound rendering :)
05:01<andythenorth>comparable is that nml has keywords and even built-in functions for some things, but sometimes it’s necessary to do ‘[STORE_TEMP(${offset}, 0x10F), var[0x61, 0, 0x000000FF, 0x47]]’
05:01<andythenorth>nobody made a function for ‘get cargo in vehicle with offset x in consist’ :P
05:02<@Alberth>number of primitives will explode, likely
05:02<andythenorth>so how would primitives free us from CPU-bound? o_O
05:03<@Alberth>basically, openttd has no clue what grf is doing, so it assumes you may want to check anything before you draw a sprite
05:03<andythenorth>oh you mean the rendering in ottd, not the nml compile? o_O
05:04<@Alberth>thus, you need pretty much entire openttd data to decide rendering a single sprite
05:04<@Alberth>yes, rendering in-game :)
05:04<andythenorth>means we can’t just dump sprites through the GPU?
05:04<@Alberth>you can, but unless you move entire openttd data and grf code there too, the cput must compute what graphics to draw
05:05<@Alberth>so the entire massive parallel GPU is basically blocked on cpu input for each triangle it draws
05:05*andythenorth has brain experiment
05:06<andythenorth>just taking vehicles, if we provided pre-configured vehicles directly in OpenTTD, with no newgrf cbs
05:06<andythenorth>1. the declarative format for mods would be simpler?
05:06<andythenorth>2. we could stop running cbs for vehicles?
05:07<andythenorth>vehicle gets pre-defined configuration points, which resolve to static properties
05:07<@Alberth>sure, you throw all the flexibility out the window, things get simpler
05:07<andythenorth>but as soon as I load a traditional newgrf, all benefit is lost?
05:08<@Alberth>"all" is a bit too much, but a lot
05:09*andythenorth was thinking about, e.g. BlueFISH
05:09-!-funnel_ [~funnel@] has joined #openttd
05:09-!-funnel_ is "funnel" on #vserver #virt #uml #suckless #smuxi #sd #qemu #pwmt #powerdns #perl #pentadactyl #ovirt #openttd #openbox #oftc #munin #moocows #monkeysphere #mm #mci #linuxfs #linode #kvm #kernelnewbies #igloo #gcc #gc-linux #freedombox #exvm #ext4 #dzen #debian #debian-mentors #debian-it #debian-ipv6 #debian-hurd #debian-glibc #debian-fr #debian-boot #debian-arm #davical #cursive #ck #ceph #bitlbee #awesome #apparmor #antlr #acal
05:09<andythenorth>he’s got all the sprites, and he is trying to code it now
05:09<andythenorth>but really, ships are so stupid in game that there’s very little use for magic
05:09<andythenorth>declarative format would be
05:09<andythenorth>- sprites (ship, effects)
05:09<andythenorth>- properties
05:10<andythenorth>that is all :P
05:10<@Alberth>partial support has the problem that you duplicate functionality in code
05:10<andythenorth>and there would be 2 mod formats, 2 mod compilers, 2 sets of docs
05:10<andythenorth>2 sets of confusion :P
05:10<andythenorth>and a harsh learning curve from ‘simple mod’ to ‘newgrf’
05:11<@Alberth>and 1.5 openttds or so
05:11<@Alberth>where you still haven't made the transition to gpu
05:11<andythenorth>‘mod simplicity’ could be solved with a web app, if it was a worthwhile thing to do
05:11<andythenorth>and that has been discarded before as an idea
05:12<@Alberth>split rendering between cpu and gpu creates all kinds of duplication maintenance problems, sprite rendered from cpu slightly different from gpu, etc
05:13<@Alberth>and the benefit is quite questionable
05:14<andythenorth>does it get me ‘full animation’ back? o_O :P
05:15<@Alberth>I don't know why it disappeared, tbh
05:15<andythenorth>the video bandwidth explanation is plausible
05:15<@Alberth>likely you need a second image telling what is animated
05:15<@Alberth>or a sequence of images, one for each frame
05:15<@Alberth>both are feasible in a gpu
05:16<andythenorth>replace palette cycle with frame animation? o_O
05:16<andythenorth>the game could pretty much pre-compute the sprites
05:16<@Alberth>yep, standard solution
05:16<andythenorth>it would be seamless from a sprite artist / newgrf point of view
05:17<@Alberth>I don't see how animation eats video bandwidth
05:17<@Alberth>you're still sending the same size pictures, just different ones
05:17<andythenorth>oh :). iirc it was your suggestion to me as the cause
05:17<andythenorth>maybe I confused who told me
05:18<@Alberth>obviously, it costs cpu time
05:18<andythenorth>palette cycle animation seems very 1989-Nintendo
05:18<@Alberth>you have to find the animated pixels, find the replacement colour, and send that
05:19<andythenorth>maybe I could buy a dedicated chip to do it :P
05:19<@Alberth>palette cycling only works if you have a palette, typically 8bpp images
05:19<@Alberth>old video cards do have palettes in hardware :)
05:19<@Alberth>saves memory :)
05:19<andythenorth>in theory, isn’t it just a really simple fast transform?
05:20*andythenorth wonders if we could kickstarter a dedicated chip
05:20<@Alberth>it is, but you have a LOT of pixels
05:20<@Alberth>nowadays, dedicated chip is not worth it, the gpu can do it
05:20<andythenorth>I think mine doesn’t :P
05:20<@Alberth>it can run a computation for each pixel
05:21<andythenorth>presumably we don’t use the right instructions to tell the GPU do it?
05:21<@Alberth>we don't render from the gpu
05:21<@Alberth>cpu computes the pixels, and sends the picture to the video
05:21<@Alberth>gpu is a single pass-through, at best
05:22<andythenorth>we don’t do the palette cycle via SDL (or something else I don’t understand)?
05:22<@Alberth>no idea, but palette animation doesn't exist in 32bpp
05:22<@Alberth>there is no palette
05:22<andythenorth> /* Video backend takes care of the palette animation */
05:22*andythenorth digging
05:23-!-tokai [] has joined #openttd
05:23-!-tokai is "Christian Rosentreter" on #openttd
05:23-!-mode/#openttd [+v tokai] by ChanServ
05:23<andythenorth>there are 3 possible causes I’ve been given for this
05:24<andythenorth>1. OS X used to offload 8bpp blitting to GPU on our behalf, but Intel removed that from their GPUs 4-5 years ago and/or Apple dropped the 8bpp support
05:24<andythenorth>2. ‘modern computers don’t have much bandwidth to GPU’
05:24<andythenorth>3. it’s a retina / HDPI issue, related to needing 4x as many pixels
05:24<andythenorth>none of them are provable by me :P
05:25<@Alberth>gpus are by nature 32bpp
05:28<@Alberth>so any palette animation must be done either by having an image for each frame, or having a 2nd image to tell which pixel is animated and an image to convert time index to some new 32 bit colour
05:28<@Alberth>both are feasible on a gpu
05:29<@Alberth>(technically, at least)
05:29<@Alberth>At the same time, the number of relevant 8bpp applications is close to zero
05:30-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
05:30<@Alberth>aside from those weirdos that want to run previous century software on modern hardware
05:31<@Alberth>so 1 is probably true, 8bpp in gpu is useless, and there are not enough applications that need palette animation to invest the effort of coding a generic gpu solution
05:32<@Alberth>the alternative to gpu-bound animation is cpu-bound animation, like what openttd is doing
05:32<@Alberth>obviously, the cpu gets very busy making all these pictures, and all that data must be sent to the video card
05:33<@Alberth>under the assumption that gpu does rendering, which holds for close to 100% of the applications, bandwidth between cpu and gpu isn't very relevant
05:34<@Alberth>you push lots of images once to the gpu, it has lots of space to store them
05:34<@Alberth>so this bus is an option to decrease costs
05:34<andythenorth>whereas we need to push big bitmaps 20 or 30 times per second?
05:34<andythenorth>and if it’s HDPI / retina, they’re 4x bigger
05:34<@Alberth>yes, if you do cpu bound rendering
05:35<andythenorth>long way from FIRS nml to this :)
05:36<@Alberth>3 is relevant in bandwidth (ie 2), but not in animation, I think
05:36<@Alberth>more pixels just means more work, animation itself doesn't change, as far as I can see
05:37<@Alberth>obviously, if you want non-blocky graphics, you need more work, and probably much more animation colours
05:37<andythenorth>there’s nothing clever like only sending a diff of the bitmap?
05:38<andythenorth>animation changes more :P
05:38*andythenorth assumes nothing clever
05:38<@Alberth>so a full animation is in the end the simplest generic solution
05:38<@Alberth>not sure if clever tricks apply there
05:39<andythenorth>doubt it
05:39<@Alberth>nowadays, applications just render everything, every frame
05:39<@Alberth>dirty rectangle administration to minimize updates are not used any more
05:40<@Alberth>likely related to the gpu rendering, I think
05:40*andythenorth wonders how hard to replace palette animation with frames
05:40<@Alberth>gpu's have a few thousand processors
05:40<andythenorth>ho I managed to hang up openttd by turning full animation on :)
05:41<andythenorth>hasn’t died, just hung
05:41<@Alberth>wasn't there a bug report from samu about that?
05:42<andythenorth>frosch has been fixing the bugs there
05:42<@Alberth>peter threw in a few too
05:43<@Alberth>I haven't closely followed that
05:43*andythenorth pulls
05:48<andythenorth>‘full animation’ is *substantially* faster for me on tip, compared to 1.6.1
05:50*andythenorth puts 100 RVs in the map
05:50<andythenorth>still fast relative to 1.6.1
05:50<andythenorth>slow compared to ‘full animation’ disabled
05:51<andythenorth>could we switch blitter on ffwd? :P
06:04<@Alberth>like the "black window" blitter? :p
06:06<andythenorth>so ‘full animation’ is much improved, but still unusable :)
06:06*andythenorth tested
06:06<@Alberth>perhaps a newer SDL2
06:07<@Alberth>oh, we don't use that
06:07<@Alberth>newer SDL is unlikely :)
06:08<andythenorth>ho, crashed it again :)
06:08<andythenorth>I blame
06:08<@Alberth>speed thing sounds like #6546
06:09<@Alberth>apple has a function to input omojis?
06:10<andythenorth>it’s probably the emoji bar thing
06:11<andythenorth>other projects are reporting it also
06:36-!-Samu [] has joined #openttd
06:36-!-Samu is "OFTC WebIRC Client" on #openttd
06:38-!-gelignite [] has joined #openttd
06:38-!-gelignite is "gelignite" on #openttd #openttdcoop.devzone
06:42-!-mescalito [] has quit [Read error: Connection reset by peer]
06:42-!-mescalito [] has joined #openttd
06:42-!-mescalito is "realname" on #openttd #openttdcoop
06:42-!-Wormnest [] has joined #openttd
06:42-!-Wormnest is "Wormnest" on #openttd
06:46-!-frosch123 [] has joined #openttd
06:46-!-frosch123 is "frosch" on #openttdcoop.devzone #openttd
06:51<frosch123>i don't think we made any performance changes to 32bpp anim
06:52<frosch123>only crashes
06:54<andythenorth>I have a crash, might be OS X bug though
06:55<andythenorth>similar-looking issues are being reported for other apps, when switching back to them after a period in background
06:55<andythenorth>triggers when I switch ‘full animation’ after leaving OpenTTD in background, not reliably reproducible though
06:59-!-hugo_ [] has joined #openttd
06:59-!-hugo_ is "OFTC WebIRC Client" on #openttd
06:59-!-hugo_ [] has quit []
07:08<andythenorth>FIRS sets a *lot* of xextent, yextent, zextent
07:08<andythenorth>is there any point? much of it is copy-paste, so likely wrong
07:10<frosch123>xoffs=0, yoffs=0, xextent=16, yextent=16 are default
07:11<frosch123>you can skip those
07:11<frosch123>zoffset=0 is also default
07:12<frosch123>i guess the stuff is mostly used for fences
07:14<andythenorth>does zoffset do much useful?
07:14<frosch123>it's for when you have bridges next to the industry
07:14<frosch123>no idea what the default is
07:15<frosch123>don't set it too small and don't set it too big
07:15<frosch123>but the details don't matter
07:16<andythenorth>given that we’re in 2D, same drawing position can be achieved with xoffs + yoffs, or zoffs?
07:16<frosch123>they are not about drawing position :p
07:17<frosch123>anyway, remove the stuff if it matches the default
07:17<frosch123>keep it, if it does not not
07:17<frosch123>it's not worth the time to break it just for changing stuff
07:18<andythenorth>zoffset isn’t used anywhere afaict
07:19<frosch123>it's for slope-aware stuff
07:20<andythenorth>ok found it used for coast slopes
07:20<andythenorth>zextent is widely used, but probably shouldn’t be
07:24*andythenorth deletes it all
07:24<andythenorth>possible much regret
07:33-!-FLHerne [] has joined #openttd
07:33-!-FLHerne is "Francis Herne" on #openttd
07:37<Eddi|zuHause>zextent is for bounding boxes
07:43-!-FLHerne_ [] has joined #openttd
07:43-!-FLHerne_ is "Francis Herne" on #openttd
07:46<andythenorth>~530 zextents removed
07:46<andythenorth>or rather, they’re all now 32
07:46<andythenorth>possibly even that is wrong
07:46<andythenorth>but now it’s one value for most of FIRS
07:51-!-FLHerne [] has quit [Ping timeout: 480 seconds]
07:54-!-Geth [] has joined #openttd
07:54-!-Geth is "Geth" on #openttd #/r/openttd #openttdcoop
07:58-!-Hiddenfunstuff [] has quit [Ping timeout: 480 seconds]
08:01<andythenorth>19 slopes?
08:02*andythenorth counting on fingers :P
08:02<andythenorth>0-14 and 23, 27, 29, 30
08:03<Eddi|zuHause>sounds right
08:03<Eddi|zuHause>15 doesn't exist, because it would be flat with 4 corners raised
08:03<Eddi|zuHause>and the 4 steep slopes...
08:04<frosch123>and the 4 halftile slopes
08:06<Eddi|zuHause>you might be confusing this with foundations
08:26*andythenorth making magic trees
08:30<andythenorth>also slope_to_sprite_offset() magic
08:30<Eddi|zuHause>there are only two approaches to magic: less magic, or more magic.
08:31<andythenorth>in this case, more
08:31<andythenorth>the genie is out of the bottle
08:34<Samu>i achieved something
08:34<Samu>about friendly river generations
08:35<Samu>but it's not yet finished :(
08:38<Samu>for this part, it checks if it can build a lock when checking flowsdown
08:39<Samu>however, it may still not be connected, seems that I need something else
08:39<Samu>i don't know which direction the pathfinder is building the river
08:42<Samu>how does it decide which tile to build next? :(
08:52-!-sim-al2 [] has joined #openttd
08:52-!-sim-al2 is "sim-al2" on #openttd @#/r/openttd
08:53<Eddi|zuHause>better than the cat is in the bag
08:57-!-Progman [] has quit [Remote host closed the connection]
08:59<Samu>river isn't connected
08:59-!-Compu [] has quit [Quit:]
09:00<Samu>it checks if it can build locks, but then when the river is built, it doesn't check if it's connectable :(
09:02-!-HerzogDeXtEr [] has joined #openttd
09:02-!-HerzogDeXtEr is "purple" on #openttd
09:04-!-heffer_ [] has quit [Remote host closed the connection]
09:06-!-Compu [] has joined #openttd
09:06-!-Compu is "Compu" on #help #openttd #openttdcoop.stable #openttdcoop #/r/openttd
09:13-!-heffer [] has joined #openttd
09:13-!-heffer is "Felix Kaechele" on #openttd
09:59-!-maciozo [] has joined #openttd
09:59-!-maciozo is "maciozo" on #openttd
10:01-!-chomwitt [] has joined #openttd
10:01-!-chomwitt is "chomwitt" on #debian-mentors #oolite #openttd #qemu #debian #debian-games
10:13<andythenorth>for industries like fruit plantations, which are mostly trees
10:13<andythenorth>should I allow autoslope? o_O
10:14<andythenorth>it’s kind of neat, but doesn’t work as player might expect
10:14<andythenorth>some tiles can be lowered / raised, some can't
10:26-!-sim-al2 [] has quit [Ping timeout: 480 seconds]
10:28<Eddi|zuHause>it should just follow the original slope
10:33<andythenorth>it does, but if I construction nearby,...
10:34<andythenorth>autoslope allows player to raise or lower tile (not not all corners)
10:34<andythenorth>but / not /s
10:34-!-maciozo [] has quit [Quit: WeeChat 1.7]
10:35<andythenorth>deleted another 30k lines from FIRS
10:36<andythenorth>construction states in spritelayout, unused by nearly all industries
10:36<andythenorth>another 4s faster
10:36-!-maciozo [~maciozo@2a03:8600:1001:1014::1011] has joined #openttd
10:36-!-maciozo is "maciozo" on #openttd
10:40<Eddi|zuHause>in that case, yes, that may be a good idea
10:41<andythenorth>in theory it’s a good idea, but the limitations on some corners are confusing :)
10:41<andythenorth>and annoying :P
10:41-!-Progman [] has joined #openttd
10:41-!-Progman is "Peter Henschel" on #openttdcoop #openttd
10:42<Eddi|zuHause>i don't know the limitations
10:43<Eddi|zuHause>isn't it like switch(is valid slope afterwards) {return allow/deny}?
10:45<andythenorth>nah, it’s just flag on the tile
10:49<andythenorth>7 year old’s building style makes me wince :D
10:58<andythenorth>saved another 2k lines by removing comments, and junk ‘if’ clauses where the condition is never met
11:21-!-mescalito [] has quit [Ping timeout: 480 seconds]
11:22<andythenorth>and another 1k
11:26<andythenorth>frosch123: have your nml ideas developed any further? o_O
11:27*peter1138 decided to play a big game
11:27<@peter1138>(512x512, low towns, high water)
11:27-!-Samu [] has quit [Remote host closed the connection]
11:28<@peter1138>Not making a profit yet :S
11:28<@peter1138>Probably shouldn't've double-tracked yet.
11:31-!-mescalito [] has joined #openttd
11:31-!-mescalito is "realname" on #openttd #openttdcoop
11:33<andythenorth>512x512 is enormous
11:33*andythenorth would be lost :P
11:33*andythenorth might be exagerating
11:33<@peter1138>low towns helps
11:34<@peter1138>only doing passengers & mail at the moment
11:47<andythenorth>ha ha magic trees
11:47<Eddi|zuHause><andythenorth> 7 year old’s building style makes me wince :D <-- isn't that the "joy" of having kids? telling them they're doing great when objectively it's all terrible?
11:48<andythenorth>I tell them it’s awful, when objectively, they’re doing ok, age-adjusted
11:51<supermop_home>what are magic trees
11:56<andythenorth>slope aware tile with 4 trees positioned on it
11:56<andythenorth>used for plantations, etc
11:56<andythenorth>the position of the trees has to vary slightly per slope, and there are 19 slopes
12:01<dlite>is there anything that could be done for poor OSX mouse rendering performance with hiDPI display?
12:02<dlite>I don't recall this being a problem when I had 1080p display, but having upgraded to 4k monitor, cursor feels quite choppy in-game now
12:07<andythenorth>is the TTD cursor lagging the actual mouse?
12:08<dlite>TTD cursor
12:08<andythenorth>is ‘full animation’ on or off?
12:08<dlite>how do I check (ie. default, installed yesterday 1.7.0-RC1)
12:09<andythenorth>toolbar -> wrench icon (or gear) -> ‘full animation'
12:09<andythenorth>it will be checked or not
12:09<dlite>I think that makes a difference
12:09<dlite>so it is related to the palette animation things discussed earlier today?
12:10<andythenorth>plausibly yes
12:10<andythenorth>what mac?
12:10<dlite>or what was palette animation when original TTD came out...
12:10<andythenorth>modern chipset?
12:10<dlite>quadcore ivy-bridge 3570k with radeon 7970
12:11<dlite>I think everything ran nicely before I upgraded to 4K monitor, which I now run with 200% scaling
12:11<andythenorth>4K is a lot :)
12:11<dlite>but that was some time ago
12:11<dlite>ie. last summer or so
12:11<dlite>I think I only run like 1600x900 resolution window at the moment
12:11<dlite>it feels that full screen works even more poorly
12:12<dlite>otoh, I booted windows yesterday evening to try there and scroll-zoom is unusable and scrolling performance way worse
12:12<dlite>FPS felt higher under windows though
12:13<dlite>scrollwheel under windows uses the "how many rows per mouse wheel click" from windows control panel to scale the clicks
12:13<dlite>so if I have anything else than 1 set in windows control panel / logitech utility, it zooms multiple steps in game
12:14<dlite>but the real problem with windows was that holding righ mouse button down and dragging to move the viewport was very slow / inconsistent motion, under OSX it works as expected, albeit low FPS
12:16<andythenorth>I have same experience on OS X
12:16<andythenorth>no experience on Windows :)
12:16<@peter1138>You've gone from a screen of 1.4 million pixels to 8.3 million pixels. Oddly enough that takes more grunt.
12:18<andythenorth>peter1138: shall we go back to 640x480 :)
12:18<dlite>we've also gone some 13 years since introduction of OpenTTD 0.1.x
12:18<@peter1138>andythenorth, fuck yeah!
12:18<dlite>but don't take this as criticism, I'm happy with the game
12:42<andythenorth>newgrf settings and newgrf parameters windows have started doing some weird ‘focus follows cursor’ thing
12:45<Eddi|zuHause>whenever i want to scroll, i pause first
12:46<Eddi|zuHause>also, when zooming out
12:48<andythenorth>you should automate that in a patch :)
12:48<Eddi|zuHause>not very multiplayer-safe :p
12:49<andythenorth>pish-posh :P
12:50<andythenorth>achievements such
12:54<LordAro>mm, 6 year old thread
13:29-!-Gja [] has joined #openttd
13:29-!-Gja is "Martin" on #bcache #openttd
13:40-!-Samu [] has joined #openttd
13:40-!-Samu is "OFTC WebIRC Client" on #openttd
13:42<Eddi|zuHause>andythenorth: the game has exactly one type of such "achievements": "first vehicle arrives at <station>"
13:42<andythenorth>I was unconvinced
13:42<andythenorth>I play casual games with achievements, but they don’t keep me playing
13:43<andythenorth>they’re just visual chewing gum
13:43<Eddi|zuHause>there are different types of achievements
13:44<Eddi|zuHause>1) achievements that simply track you progress through the game (finished the tutorial, reached goal <X>)
13:44<Eddi|zuHause>2) grinding achievements (do <X> 500 times)
13:45<Eddi|zuHause>and 3) weird paths achievements (reach <X> in unconventional ways)
13:45<Eddi|zuHause>the 3) kind is the one that is particularly interesting
13:46<Eddi|zuHause>but most achievements are not of that kind
13:52<andythenorth>apart from the pictures, it would be a GS :P
13:52<andythenorth>lot of conditions to check for not a lot of benefit imho
13:56<Eddi|zuHause>also, different kinds of achievements appeal to different people, see also
14:30-!-FLHerne [] has joined #openttd
14:30-!-FLHerne is "Francis Herne" on #openttd
14:34-!-FLHerne_ [] has quit [Ping timeout: 480 seconds]
14:40-!-Supercheese [] has joined #openttd
14:40-!-Supercheese is "Supercheese" on #openttd #openttdcoop.devzone
14:40-!-glx [] has joined #openttd
14:40-!-mode/#openttd [+v glx] by ChanServ
14:40-!-glx is "Loïc GUILLOUX" on +#openttd
14:41<@peter1138>Hmm, infrastructure says I'm paying for canals ;(
14:41<@peter1138>I have docks, but no canals.
14:42<supermop_home>does the water under a depot count?
14:43<supermop_home>that sounds familiar to me
14:45*andythenorth writes worst code ever
14:45<@DorpsGek>Commit by translators :: r27804 /trunk/src/lang (3 files) (2017-03-19 19:45:38 +0100 )
14:45<@DorpsGek>-Update from Eints:
14:45<@DorpsGek>italian: 7 changes by lorenzodv
14:45<@DorpsGek>luxembourgish: 11 changes by Phreeze
14:45<@DorpsGek>french: 7 changes by glx
14:48*peter1138 reboots his NAS.
14:48<@peter1138>NFS appears to have borked :(
14:48<andythenorth>never saw a NAS that wasn’t crap
14:48<andythenorth>only seen a few mind
14:48<@peter1138>First time it's done that in 3 years.
14:49<andythenorth>the only one I used that was any good was one of these
14:51<@peter1138>Yay, the old CRT iMac...
14:51<supermop_home>hmm broke, but its so nice and sunny out feel like I should go do something
14:51<supermop_home>still lots of slush and packed snow though
14:51<@peter1138>Going outside doesn't cost money.
14:51<@peter1138>Unless you mean injured broke.
14:52<supermop_home>peter1138 it is a risk factor for spending money
14:52<supermop_home>never saw an orange imac to be honest
14:53<supermop_home>have three rolls of film to develop
14:54<andythenorth>I have been outside
14:54<andythenorth>finished that now
14:55<@peter1138>Yeah but that's because it's evening for us.
15:11<supermop_home>I've been out a few times in the morning to buy pho ingredients
15:16-!-drac_boy [] has joined #openttd
15:16-!-drac_boy is "OFTC WebIRC Client" on #openttd
15:17<drac_boy>hi again
15:51-!-drac_boy [] has left #openttd []
16:01-!-Wormnest_ [] has joined #openttd
16:01-!-Wormnest_ is "Wormnest" on #openttd
16:08-!-Wormnest [] has quit [Ping timeout: 480 seconds]
16:13-!-sim-al2 [] has joined #openttd
16:13-!-sim-al2 is "sim-al2" on #openttd @#/r/openttd
16:19<@Alberth>so much scrap metal from the ports :p
16:19<@Alberth>s/ports/bulk terminals/
16:24<andythenorth>too much? It tends to be in demand
16:24<@Alberth>it's fun :)
16:25<@Alberth>4 terminals produce around 800t / momth
16:25<andythenorth>I found they were quite cheap to fund
16:25<andythenorth>I was trying to beat Silicon Valley, so I built lots :P
16:25<@Alberth>haha :)
16:26<andythenorth>4 or 5 together can be served by one train
16:26<andythenorth>and looks good
16:26<@Alberth>and of course you then get a shit-load of steel to move :)
16:27<@Alberth>60t steel wagon has nice capacity :p
16:27<@peter1138>Relying on transfers instead of distant station parts...
16:27<@peter1138>Need a lot of busses
16:27<supermop_home>trolley buses?
16:28<andythenorth>distant-station-join always beats the bus :P
16:28<andythenorth>you need tramz
16:28<@peter1138>Yeah, just thinking about them.
16:29<@peter1138>It always wins but I end up 'cheating' by building a giant station covering a whole town.
16:35*peter1138 ponders revisiting multiple docks.
16:37-!-chomwitt1 [] has joined #openttd
16:37-!-chomwitt1 is "chomwitt" on #openttd #qemu #debian #debian-games
16:37-!-chomwitt [] has quit [Read error: Connection reset by peer]
16:39-!-frosch123 [] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
16:41<@peter1138>Hmm, I guess "RoadStop" would have to be renamed
16:41<@peter1138>Otoh, ships didn't use anything of roadstops except a list of tiles
16:41<@peter1138>So maybe just a tile list would do
16:47<andythenorth>maybe another time :P
16:48<@peter1138>Well, V453000 did that "RailShips"...
16:49<V453000>I iz innocent
16:53<Supercheese>doesn't cirdan's branch have multiple-docks?
16:59<andythenorth>it does, but New Map also
17:01-!-iSoSyS [] has joined #openttd
17:01-!-iSoSyS is "realname" on #/r/openttd #openttd
17:03<@peter1138>Probably too far gone
17:04<Eddi|zuHause>cirdan has made it abundantly clear that he has no interest in his patches making it into trunk
17:04<Eddi|zuHause>which is sad, but...
17:09<@peter1138>Yeha, it's not like you can just look at the repo and pick the features you want.
17:12-!-Alberth [] has left #openttd []
17:13<@peter1138>20:53 < Supercheese> doesn't cirdan's branch have multiple-docks?
17:13<@peter1138>^ So totally irrelevant.
17:14<FLHerne>Eddi|zuHause: It seems odd to complain that he's uninterested when his useful trunk-ready one is afaik still not upstream...
17:15<Eddi|zuHause>FLHerne: there's not much i can do about that either
17:20<Eddi|zuHause>peter1138: it's not about whether you can just go ahead and commit it, but that he won't actively support it
17:21<@peter1138>FLHerne, trunk-ready what?
17:22<FLHerne>Airport overbuilding,
17:23<FLHerne>(maybe not anymore, since he gave up and forked)
17:23<@peter1138>2008. Hah
17:30<@peter1138>Oh well.
17:30<@peter1138>Here's how all our developers became developers: They hung around on IRC discussing stuff.
17:31<@peter1138>They also started by fixing things.
17:34<@peter1138>Waaaah they didn't accept my feature patch waaaah tends to just get ignored, especially after the likes of richk
17:35<andythenorth>who did ‘close airports’ in the end?
17:35<andythenorth>that’s a handy feature
17:36<@peter1138>I've never used it :p
17:37<@peter1138>Damn it, I can't play 6th notes with one hand and 8th notes on the other :(
17:41<Eddi|zuHause>that's a skill you need to practice a lot :p
17:42<Eddi|zuHause>luckily, i don't need that skill :p
17:47<andythenorth>very bedtime
17:47-!-andythenorth [] has left #openttd []
17:57-!-Progman [] has quit [Remote host closed the connection]
17:58<@DorpsGek>Commit by peter1138 :: r27805 trunk/src/ship_cmd.cpp (2017-03-19 22:57:54 +0100 )
17:58<@DorpsGek>-Codechange: Remove function ShipGetNewDirectionFromTiles
17:58<@DorpsGek>The only user of ShipGetNewDirectionFromTiles can be better
17:58<@DorpsGek>served by DiagdirBetweenTiles, so remove the former. (cirdan)
17:59<@DorpsGek>Commit by peter1138 :: r27806 trunk/src/ship_cmd.cpp (2017-03-19 22:59:24 +0100 )
17:59<@DorpsGek>-Codechange: Remove function ShipGetNewDirection
17:59<@DorpsGek>ShipGetNewDirection has no side effects and its return value
17:59<@DorpsGek>is ignored by its only caller, so do away with it.
17:59<@DorpsGek>Also remove now unused _new_vehicle_direction_table. (cirdan)
18:02<@DorpsGek>Commit by peter1138 :: r27807 trunk/src/ship_cmd.cpp (2017-03-19 23:02:20 +0100 )
18:02<@DorpsGek>-Codechange: Remove _ship_leave_depot_offs
18:02<@DorpsGek>There is already TileOffsByDiagDir for that. (cirdan)
18:02<@peter1138>Can pick tiny patches though
18:30<@DorpsGek>Commit by peter1138 :: r27808 /trunk/src (rail.cpp track_func.h) (2017-03-19 23:30:47 +0100 )
18:30<@DorpsGek>-Codechange: Adjust the size of _track_crosses_trackdirs
18:30<@DorpsGek>_track_crosses_trackdirs is indexed by a Track, not a
18:30<@DorpsGek>Trackdir, so adjust its size accordingly. (cirdan)
18:32-!-mr_pants [4de03609@] has joined #openttd
18:32-!-mr_pants is "" on #openttd
18:32<Samu>ohh, fixing ship pathfinding?
18:34-!-mr_pants [4de03609@] has quit []
18:39-!-Gja [] has quit [Quit: Going offline, see ya! (]
18:42-!-JezK_ [~jez@2407:7800:400:107f:3db5:daca:8457:e66a] has joined #openttd
18:42-!-JezK_ is "jez" on #openttd #love
18:45-!-Geth [] has quit [Ping timeout: 480 seconds]
18:49<@peter1138>Nah, just applying shit.
18:49<@peter1138>It's not exactly broken...
18:52-!-iSoSyS [] has quit [Remote host closed the connection]
18:53<Samu>ships can't correctly find the closest depot
18:53<Samu>have you done something about it?
18:54<@peter1138>Link to fs?
18:54<Samu>it needs to pathfind for the closest depot, and not the way it is doing now
18:54<Samu>it locates closest depot via DistanceManhattan :(
18:55<@peter1138>Ship pathfinding is expensive.
18:55<Samu>i don't think i reported it
18:56<@peter1138>Technically manhattan distance *is* the nearest.
18:56<Samu>sometimes it's unreachable :( really hurts performance
18:57<@peter1138>Fix it!
18:57-!-gelignite [] has quit [Quit:]
18:57<Samu>I tried, but don't know how to begin
18:57-!-APTX [] has quit [Remote host closed the connection]
18:59<Samu>when a bus is told to go to closest depot, it pathfinds to it, i tried to see if I could mimic the code but for ships, and i got lost, then gave up
18:59-!-APTX [] has joined #openttd
18:59-!-APTX is "APTX" on #openttd #kernelnewbies
19:00-!-sla_ro|master [] has quit []
19:00-!-funnel_ [~funnel@] has quit [Quit: leaving]
19:03-!-Wormnest_ [] has quit [Quit: Leaving]
19:04<@peter1138>I think that just searches out in every direction and stops at the first depot.
19:04<Samu>circular search?
19:05<Samu>let me check
19:05<@peter1138>Well no, pathfinding.
19:06<Samu>found it, line 141 ship_cmd.cpp
19:06<@peter1138>I was talking about RVs :p
19:06<@peter1138>There's no searching for ship depots, but you know that.
19:07<@peter1138>Probably similar code would work for ships but it would also be expensive.
19:08<@peter1138>(Although if you laid out a grid of roads, that would probably be similarly bad)
19:11-!-ericnoan [] has quit [autokilled: This host violated network policy. Mail if you think this is in error. (2017-03-19 23:11:32)]
19:12<+glx>no because roads have only 4 directions
19:12<+glx>water has 8
19:13<Samu>or, actually 12, i dunno
19:13-!-ericnoan [] has joined #openttd
19:13-!-ericnoan is "ericnoan" on #tor-offtopic #tor-project #linode #openttd #tor #debian #munin
19:13<Samu>it's like a rail piece
19:14<+glx>no it's a little different than rail
19:14<+glx>all directions cross in the middle of water tile
19:14-!-mescalito [] has quit [Read error: Connection reset by peer]
19:15-!-mescalito [] has joined #openttd
19:15-!-mescalito is "realname" on #openttd #openttdcoop
19:15<Samu>then it's 6, in 2 directions, 12?
19:17<+glx>NE-SW, N-S, NW-SE, W-E in 2 directions
19:17<+glx>so 8
19:19<Samu>N-S left, N-S right, W-E upper, W-E bottom, don't they count?
19:26-!-HerzogDeXtEr1 [] has joined #openttd
19:26-!-HerzogDeXtEr1 is "purple" on #openttd
19:32-!-HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
19:32<Samu>and i think road vehicles also have 12 directions~
19:34<+glx>I think you're right about ships (after reading the code), but roads vehicle definitely have only 4 directions because there are no diagonal roads :)
19:35<Samu>they can turn
19:35<Samu>coming from SW there's 3 possible exits
19:36<Samu>NE, NW and SE
19:36<+glx>hmm right
19:37<+glx>road tile at worst is like a water tile, but it's very rare compared to water pathfinding
20:02-!-Samu [] has quit [Quit: Page closed]
20:05-!-JezK_ [~jez@2407:7800:400:107f:3db5:daca:8457:e66a] has quit [Ping timeout: 480 seconds]
20:13-!-JezK_ [~jez@2407:7800:400:1065:96ed:dfaa:388f:6208] has joined #openttd
20:13-!-JezK_ is "jez" on #love #openttd
20:17-!-FLHerne [] has quit [Ping timeout: 480 seconds]
20:22-!-FLHerne [] has joined #openttd
20:22-!-FLHerne is "Francis Herne" on #openttd
20:33<supermop_home>is it possible to have catenary draw poles ever 2nd tile instead of every tile?
20:54-!-funnel [] has quit [Remote host closed the connection]
20:55-!-funnel [] has joined #openttd
20:55-!-funnel is "funnel" on #vserver #virt #uml #tor #suckless #smuxi #sd #qemu #pwmt #powerdns #perl #pentadactyl #ovirt #openttd #openbox #oftc #munin #moocows #monkeysphere #mm #mci #linuxfs #linode #kvm #kernelnewbies #igloo #gcc #gc-linux #freedombox @#exvm #ext4 #dzen #debian #debian-mentors #debian-it #debian-ipv6 #debian-hurd #debian-glibc #debian-fr #debian-boot #debian-arm #davical @#cursive #ck #ceph #bitlbee #awesome #apparmor @#antlr #acal
20:58<supermop_home>i mean I know it is, but can't figure out in nml documentation how to do it
21:09-!-FLHerne [] has quit [Quit: There's a real world out here!]
22:04-!-Snail [] has joined #openttd
22:04-!-Snail is "Jacopo Coletto" on #openttd
22:19-!-maciozo [~maciozo@2a03:8600:1001:1014::1011] has quit [Quit: WeeChat 1.7]
23:19-!-glx [] has quit [Quit: Bye]
23:38-!-HerzogDeXtEr1 [] has quit [Read error: Connection reset by peer]
---Logclosed Mon Mar 20 00:00:32 2017