Back to Home / #openttd / 2019 / 01 / Prev Day | Next Day
#openttd IRC Logs for 2019-01-07

---Logopened Mon Jan 07 00:00:10 2019
00:15-!-Progman [~progman@p4FD66D62.dip0.t-ipconnect.de] has joined #openttd
00:15-!-Progman is "Peter Henschel" on #openttdcoop.dev #openttd
00:38-!-Progman [~progman@p4FD66D62.dip0.t-ipconnect.de] has quit [Remote host closed the connection]
01:47-!-Heiki [hp@taimen.sr2.fi] has quit [Remote host closed the connection]
01:47-!-Heiki [hp@taimen.sr2.fi] has joined #openttd
01:47-!-Heiki is "Heikki Piirainen" on #debian-offtopic #debian-next #debian #openttd
01:59-!-Progman [~progman@p4FD66D62.dip0.t-ipconnect.de] has joined #openttd
01:59-!-Progman is "Peter Henschel" on #openttdcoop.dev #openttd
02:03-!-Progman [~progman@p4FD66D62.dip0.t-ipconnect.de] has quit [Remote host closed the connection]
03:09-!-HootzMcToke [~oftc-webi@S0106a84e3fe40d43.vf.shawcable.net] has quit [Remote host closed the connection]
06:15-!-IvanLeshev [~d557a1f0@188.cimarosa.openttdcoop.org] has joined #openttd
06:15-!-IvanLeshev is "213.87.161.240 - http://irc.openttdcoop.org/" on #openttd
06:15-!-IvanLeshev [~d557a1f0@188.cimarosa.openttdcoop.org] has left #openttd []
06:39-!-Progman [~progman@p4FD66D62.dip0.t-ipconnect.de] has joined #openttd
06:39-!-Progman is "Peter Henschel" on #openttdcoop.dev #openttd
06:40-!-Alkel_U3 [~alkel@alkel.info] has joined #openttd
06:40-!-Alkel_U3 is "alkel" on #openttd
07:25-!-Borg [~borg@87-99-43-52.internetia.net.pl] has joined #openttd
07:25-!-Borg is "Unknown" on #openttd
08:20-!-Samu [Samu@pa4-84-91-142-34.netvisao.pt] has joined #openttd
08:20-!-Samu is "..." on #openttd
08:20-!-Flygon [~Flygon@58-6-74-108.dyn.iinet.net.au] has quit [Quit: A toaster's basically a soldering iron designed to toast bread]
08:26<Samu>hi
08:55-!-Gabda [~yaaic@2A00111002215D130000002F6F283801.mobile.pool.telekom.hu] has joined #openttd
08:55-!-Gabda is "Gabda" on #openttd
09:39<DorpsGek_II>[OpenTTD/OpenTTD] Eddi-z commented on pull request #6931: Change: Prevent town growth from blocking ships https://git.io/fhGZR
09:43-!-nielsm [~nielsm@176-23-103-56-cable.dk.customer.tdc.net] has joined #openttd
09:43-!-nielsm is "Niels Martin Hansen" on #openttd
09:52<@peter1138>Hmm, maybe time for another cuppa.
09:53<Samu>Eddi|zuHause https://imgur.com/wQuDOi5 I am planning to do somethng like that
09:54<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on pull request #6931: Change: Prevent town growth from blocking ships https://git.io/fhGnr
09:55<Samu>i guess i better put the screenshot there
09:57<DorpsGek_II>[OpenTTD/OpenTTD] SamuXarick commented on pull request #6931: Change: Prevent town growth from blocking ships https://git.io/fhGnj
10:05-!-wodencafe [~cboyd@2605:6000:1517:462e:724d:7bff:fe63:71b6] has quit [Quit: Konversation terminated!]
10:12-!-Wormnest [~Wormnest@35.136.176.177] has joined #openttd
10:12-!-Wormnest is "Wormnest" on #openttd
10:16-!-wodencafe [~cboyd@2605:6000:1517:462e:724d:7bff:fe63:71b6] has joined #openttd
10:16-!-wodencafe is "Woden Cafe" on #432 #openttd #oftc #moocows
10:24-!-Progman [~progman@p4FD66D62.dip0.t-ipconnect.de] has quit [Remote host closed the connection]
10:33-!-sla_ro|master [~sla.ro@84.117.88.126] has joined #openttd
10:33-!-sla_ro|master is "slamaster" on #sla #openttd
10:43<Samu>i have the code ready, testing
10:44<Samu>well, it's not optimized
10:44<Samu>but, sec
10:46<Samu>https://paste.openttdcoop.org/puyn9xqgw
10:46<Samu>how to simplify!
10:47<Samu>erps
10:48<Samu>should never reach here, but it reached, i fail already
10:49<Samu>needs more checks, brb
10:51<nielsm>make it table based instead of a large switch
10:52<Samu>https://paste.openttdcoop.org/pomxkfugj added lines 84, 85
10:52<Samu>a table?
10:53<Samu>i know how to make tables on squirrel, but on c++ i guess I don't, or don't remember
10:53<nielsm>an array of structs
10:53<nielsm>"table based" is a general term for talking about using lookups of static data, instead of code paths
10:54<Samu>can you point me to an example in the code, will try to mimic
10:57<Eddi|zuHause>i wouldn't go down to trackbit level
10:57<Eddi|zuHause>just check the tile itself
10:58<Eddi|zuHause>if (water tile && appropriate slope) {do stuff}
10:59<nielsm>even just if it has water at all, don't even check slope
10:59<Eddi|zuHause>and the whole +/- 1 tilediff can probably be factored out
11:00<Eddi|zuHause>nielsm: the shore tiles are internally counted as water tiles, so you do need to exclude those
11:00<nielsm>ah
11:01<Eddi|zuHause>however, i would include river slopes, even though ships don't actually travel on those
11:07<Eddi|zuHause>pseudocode: https://paste.openttdcoop.org/pvinp1p38
11:08<Eddi|zuHause>although the +/- might be backwards
11:09<nielsm>https://0x0.st/sRC5.txt
11:09<nielsm>:P
11:10<Eddi|zuHause>your way is slightly more pythonic
11:10<Eddi|zuHause>which isn't all that practical if we're writing C++ :p
11:16<@peter1138>You can do it with a table of mostly 0, 0 entries.
11:17<@peter1138>A table indexed directly by slope is preferable to a loop checking for trackbits.
11:20<nielsm>but it's longer and possibly less readable
11:20<nielsm>(the difference in performance is probably insignificant)
11:20<@peter1138>What's longer? The table?
11:20<nielsm>yes
11:20<@peter1138>Doesn't matter.
11:21<@peter1138>You only need to look at one entry, not all of them.
11:21<nielsm>for readability
11:21<@peter1138>And that is better than a loop.
11:22<@peter1138>Sure the performance by itself is insignificant, but when you add every single little insignificant performance improvement together, it matters.
11:22<@peter1138>I think the larger table is likely more readable than the loop anyway.
11:24<@peter1138>And also established practice within our code.
11:24<nielsm>or use eddis switch lookup
11:24<@peter1138>There's probably already a table or function that'll do the lookup.
11:24<@peter1138>nielsm, a switch is not a lookup.
11:25<@peter1138>That switch is 4 conditionals that need to be evaluated, mumble mumble branch prediction mumble mumble.
11:26-!-Gabda [~yaaic@2A00111002215D130000002F6F283801.mobile.pool.telekom.hu] has quit [Ping timeout: 480 seconds]
11:36<Eddi|zuHause>i'm fairly confident the compiler will optimize the crap out of that switch
11:37<@peter1138>Probably will. Not so much the loop, though.
11:38<Samu>isnt checking the trackbit more precise?
11:39<@peter1138>How so?
11:39<Samu>ah, only for the first check
11:39<Samu>if IsSlopeWith1CornerRaised?
11:40<Eddi|zuHause>we don't really need the precision
11:40<Samu>i still need to know the slope configuration
11:40<@peter1138>Water tiles don't have optional track bits, and the slopes you're interested in can only have 1 specific trackbit layout. There doesn't seem to be any need to check that.
11:42<@peter1138>Where you set up water_track probably involves lots of unnecessary lookups and calculations from the slope in the first place, so if you only need the slope...
11:42<Samu>ok, I'll get the slope then
11:43<@peter1138>In fact you are breaking it down into track bits and making it more complex as you need to check lots of things.
12:13-!-HerzogDeXtEr [~farci@dslb-178-000-248-139.178.000.pools.vodafone-ip.de] has joined #openttd
12:13-!-HerzogDeXtEr is "purple" on #openttd
12:15-!-Gja [~Martin@93-167-84-102-static.dk.customer.tdc.net] has joined #openttd
12:15-!-Gja is "Martin" on #ceph #bcache #openttd
12:16<Samu>there is a _corner_to_trackbits
12:16<Samu>will try to use it
12:18<Eddi|zuHause><peter1138> Probably will. Not so much the loop, though. <-- dunno, modern compilers should understand the concept of unfolding small loops, like do 8 iterations at a time instead of 1
12:19<Eddi|zuHause>at least my compiler construction lecture from 10 years ago had that concept, and it said "all the concepts in here are already 20 years old"
12:20<milek7>maybe at -O3
12:20<Eddi|zuHause>dunno what we use
12:20<Sacro>-funroll_loops
12:22<Eddi|zuHause>the concept debated back then was in context of processors that contain multiple instructions in one opcode, but i think that is a dead concept nowadays. and true parallelization was a huge questionmark
12:23<Eddi|zuHause>i think that has not changed much...
12:25<milek7>for VLIW there is that 'mill cpu' vaporware
12:26<Eddi|zuHause>it was before dual core processors became "mainstream"
12:27<Borg>Eddi|zuHause: what arch had this?
12:27<milek7>itanium?
12:27<Borg>x86 have single opcode = multiple mikroinstructions..
12:27<Eddi|zuHause>yeah, that intel server thingie that went nowhere
12:28<Borg>but I doubt they ever go into different pipelines..
12:28<Eddi|zuHause>no, it was above the "pipeline" level
12:29<Eddi|zuHause>Borg: think of it like the MMX opcodes, where you can do 4 separate 8-bit instructions on a 32bit word in parallel
12:29<Borg>thats not separate instructions.
12:29<Borg>thats mikroinstructions.. that go to pipelines
12:30<Borg>paralelism..
12:30<milek7>https://en.wikipedia.org/wiki/IA-64
12:30<Eddi|zuHause>just on a larger scale, so you have 4 32-bit instructions on a 128bit word
12:30<Borg>the biggest single opcode multiple instructions. could be CMP8XCHG..
12:30<Borg>or sth like that :) never used it tho
12:30<Borg>lets google mnemonic
12:31<Borg>ahh CMPXCHG.. familly..
12:31<Eddi|zuHause>Borg: i've never really concerned myself with this low level stuff
12:32<Borg>well... 20 years ago.. I did
12:32<Borg>but it was 386 486 586 era :) was fun
12:34<Eddi|zuHause>"As of 2008, Itanium was the fourth-most deployed microprocessor architecture" <-- that means almost insignificant?
12:34<Borg>;]
12:39-!-Gabda [~yaaic@2A001110020087F10000004E4A419501.mobile.pool.telekom.hu] has joined #openttd
12:39-!-Gabda is "Gabda" on #openttd
12:43-!-frosch123 [~frosch@00013ce7.user.oftc.net] has joined #openttd
12:43-!-frosch123 is "frosch" on +#openttd.dev #openttd
12:44<Samu>sorry, i'm noob, can't seem to understand tables
12:44<Samu>struct { TileIndex opposite_tile, next_tile_1, next_tile_2; TrackBits opposite_track, next_track_1, next_track_2; } table[] = {
12:44<Samu> { TileDiffXY(-1, 1), TileDiffXY(0, 1), TileDiffXY(-1, 0), TRACK_BIT_LEFT, _settings_game.pf.forbid_90_deg ? TRACK_BIT_X | TRACK_BIT_RIGHT : TRACK_BIT_3WAY_NE, _settings_game.pf.forbid_90_deg ? TRACK_BIT_Y | TRACK_BIT_RIGHT : TRACK_BIT_3WAY_SE },
12:53<nielsm>you can't put conditionals in static data
12:53<Samu>here's my table https://paste.openttdcoop.org/pnvxcsvic
12:53<nielsm>and caring about the 90 deg turns setting is overkill for this
12:54<nielsm>besides what if the setting is flipped after the check
12:54<Samu>isn't it rechecked?
12:54<nielsm>not when the house is already built
12:57<nielsm>and besides if you build a route that depends on this being traversable you deserve it to fail: https://0x0.st/s7r7.png
12:58-!-glx [kvirc@000128ec.user.oftc.net] has joined #openttd
12:58-!-mode/#openttd [+v glx] by ChanServ
12:58-!-glx is "Loïc GUILLOUX" on +#openttd
12:58<nielsm>either be pessimistic and assume the setting is always enabled, or optimistic and assume it's always disabled
12:59<Eddi|zuHause>i don't know why you make it this complicated, you just need to check whether the (1,1) tile is a valid tile that is either flat, or the opposite slope of whatever the starting tile is
12:59<nielsm>yes
12:59<nielsm>seriously
12:59<nielsm>I'm going to disapprove a changed PR that's based on trackbits when it could be just as good based on slope checks
13:01-!-synchris [~synchris@139.138.202.72] has joined #openttd
13:01-!-synchris is "Synesios Christou" on #openttd
13:04<Samu>sec
13:05<Samu>got this atm
13:05<Samu>https://paste.openttdcoop.org/ptftckcwn
13:05<Samu>let me read
13:05-!-gelignite [~gelignite@55d4fd5d.access.ecotel.net] has joined #openttd
13:05-!-gelignite is "gelignite" on #openttd
13:11<Samu>if i check the opposite_track first, or rather, it's slope/corner
13:11<Samu>it's not automatically true
13:11<Samu>will have to check the 2 other tiles yet
13:13<Samu>will i need to check tracks on the other 2 tiles? that is the question
13:14<Samu>the pessimistic approach: no
13:15<Samu>unless it's a aqueduct
13:15<Samu>or a lock
13:15<Samu>or a depot
13:15-!-Wolf01 [~wolf01@0001288e.user.oftc.net] has joined #openttd
13:15-!-Wolf01 is "Wolf01" on #openttd
13:15<Samu>meh, track bit seems to do all those checks itself
13:16<nielsm>please accept that you can't protect players against all kinds of own stupidity
13:16<Wolf01>It's meh... Wolfo!
13:19<Samu>ok, the opposite tile check doesn't require to be a trackbit check at least
13:19<Samu>brb changing
13:20-!-Gabda [~yaaic@2A001110020087F10000004E4A419501.mobile.pool.telekom.hu] has quit [Ping timeout: 480 seconds]
13:29<Eddi|zuHause>you misspelled 01 as o!
13:30<Wolf01>I often misspell my nick as Wolfolo
13:31<Wolf01>And I really can't understand who else could use that nick, I often have problems registering to services because both Wolf01 and Wolfolo are taken
13:32<acklen_>Wolfool isn't quite the same
13:33<Wolf01>My third nick is a name, so I can't even try to use it
13:42-!-Gabda [~yaaic@catv-80-98-39-136.catv.broadband.hu] has joined #openttd
13:42-!-Gabda is "Gabda" on #openttd
14:14<Samu>god, im working with slopes, i feel blind, dont even know if there's water tracks
14:14<nielsm>if it's a water tile and it has slopes, it has "water tracks"
14:16<Samu>but what if it's flat
14:16<nielsm>then it has no slopes
14:16<nielsm>a flat water tile has all the tracks by definition
14:16<Samu>not true
14:17<Samu>depots/locks/aqueducts/buoys, :(
14:17<Samu>makes me do more checks
14:18<nielsm>and what if someone removes those features from the tile?
14:18<nielsm>or adds them?
14:18<nielsm>you cannot protect a player from their own stupidity
14:18<nielsm>there are always more cases
14:19<nielsm>https://github.com/OpenTTD/OpenTTD/blob/master/src/water_cmd.cpp#L1234
14:19<nielsm>see this part?
14:19<nielsm>case WATER_TILE_CLEAR: ts = IsTileFlat(tile) ? TRACK_BIT_ALL : TRACK_BIT_NONE; break;
14:19<Samu>this is not gonna work, there's always something I'm gonna miss
14:20<Samu>there's various water tile types
14:21<nielsm>you cannot protect a player from their own stupidity
14:21<nielsm>there are always more cases
14:21<Samu>and then there are buoys, which are station tiles
14:22<Samu>and aqueduct, which is tunnelbridge
14:22<nielsm>yeah that sucks doesn't it
14:22-!-andythenorth [~andytheno@cpc87219-aztw31-2-0-cust178.18-1.cable.virginm.net] has joined #openttd
14:22-!-andythenorth is "andythenorth" on #openttd
14:23<nielsm>maybe you should not have built a route that would be broken by a single corner tile being modified
14:23<andythenorth>yo
14:23-!-chomwitt [~chomwitt@ppp-94-69-11-109.home.otenet.gr] has joined #openttd
14:23-!-chomwitt is "chomwitt" on #oolite #openttd #qemu #debian #debian-games
14:28<Samu>buoys don't block ships
14:29<Samu>i still feel getting the trackbit is the better way, even for the opposite tile
14:29<Samu>only the main tile seems okay not to check for tracks
14:34<Samu>there are rail tiles that also have water
14:36<andythenorth>hmm
14:36<andythenorth>so I generate graphics using pipelines
14:36<andythenorth>which are composed of individual units
14:36<andythenorth>I feed them an input spritesheet, and they spit out a result and save it
14:36<andythenorth>should pipelines be idempotent? o_O
14:37<Eddi|zuHause>depends?
14:37<nielsm>generally I'd expect identical inputs to yield identical outputs
14:37<nielsm>(if you also consider "current date and time" as part of the input)
14:37<andythenorth>so running the pipeline a second time shouldn't produce a different output? o_O
14:38<andythenorth>the pipeline relies on a config object
14:38-!-HerzogDeXtEr [~farci@dslb-178-000-248-139.178.000.pools.vodafone-ip.de] has quit [Read error: Connection reset by peer]
14:38<andythenorth>I had the horrible idea of having the pipeline modify the config when it runs
14:38<andythenorth>oh, and also it runs in a worker pool of ~16 threads, each taking one pipeline
14:38<andythenorth>with non-predictable order :P
14:39<Eddi|zuHause>"idempotent" means "take the output, and feed it again as the input"
14:39<andythenorth>oh we don't use it that way at work
14:39<Eddi|zuHause>you probably mean "stable"
14:39<Eddi|zuHause>run the algorithm twice with the same input
14:39<andythenorth>yes
14:40<andythenorth>wikipedia defines it that way
14:40<andythenorth>"whereby they can be applied multiple times without changing the result beyond the initial application"
14:40<Eddi|zuHause>"deterministic"
14:40<andythenorth>the maths definition isn't what wikipedia says
14:40<andythenorth>https://en.wikipedia.org/wiki/Idempotence
14:40<Eddi|zuHause>andythenorth: it is, you're just misinterpreting what "multiple times" is
14:40<andythenorth>1x1=1 makes sense
14:41<andythenorth>https://en.wikipedia.org/wiki/Idempotence#Computer_science_meaning
14:42<Eddi|zuHause>that also has nothing to do with what you thought it meant
14:42<andythenorth>I am reading the rest
14:43<andythenorth>so why are the examples wrong?
14:43*andythenorth is in pure interest territory now
14:44<Eddi|zuHause>andythenorth: compilers are usually not idempotent, because you cannot use the output as input
14:45<milek7>'reproducible builds'
14:45<Eddi|zuHause>andythenorth: whereas a database query is idempotent, because the query takes a database and a question, and outputs a database (unchanged) and an answer
14:45<milek7>i have seen 'idempotent' used in sense that eg. repeated http POST won't post twice
14:45<Eddi|zuHause>the database can be used as input for another query
14:45<Eddi|zuHause>or the same query again
14:45<milek7>in that sense, compiler also outputs unchanged source code ;p
14:46<andythenorth>we learnt it from Ansible https://docs.ansible.com/ansible/latest/reference_appendices/glossary.html
14:46<andythenorth>Ansible might be wrong mind you
14:46<andythenorth>https://docs.ansible.com/ansible/latest/reference_appendices/glossary.html#term-idempotency
14:47<Eddi|zuHause>milek7: ok, if you consider that the compiler doesn't make changes to the source code...
14:47<andythenorth>the mathematical definition seems rather stricter
14:47<andythenorth>eh this I did encounter in engineering maths, a *long* time ago
14:47<andythenorth>https://en.wikipedia.org/wiki/Idempotent_matrix
14:47<andythenorth>1 0 0 1 matrix
14:48<andythenorth>is a nice example when learning matrix multiplication
14:48<andythenorth>ok well that's a way off pipelines :P
14:48<Eddi|zuHause>the identity matrix is a special case of an idempotent matrix
14:48<frosch123>andythenorth: it applies to ansible, if ansible does nothing when you run it a second time
14:48<andythenorth>yes
14:48<Eddi|zuHause>andythenorth: but that glossary definition seems to be the same as the mathematical definition as i know it
14:48<frosch123>you can also call "make" idempotent then :)
14:49<frosch123>but only if your makefiles are correct, which they are not in 90% of cases?
14:49<Eddi|zuHause>well, technically, if it writes access log files, it's now not idempotent anymore
14:50<andythenorth>the playbook doesn't yield the playbook
14:50<andythenorth>so the mathematical analogy doesn't follow afaict
14:50<frosch123>idempotent is not self-reproducing
14:50-!-Gja [~Martin@93-167-84-102-static.dk.customer.tdc.net] has quit []
14:50<Eddi|zuHause>andythenorth: no, but reading from the playbook doesn't change the playbook. you can read the same section again
14:50<frosch123>it's just that it does not change its result again
14:50-!-Wormnest [~Wormnest@35.136.176.177] has quit [Ping timeout: 480 seconds]
14:51<Eddi|zuHause>andythenorth: example of an operation that is not idempotent is flipping a light switch
14:51<Eddi|zuHause>andythenorth: you flip it once, it's now on
14:52<Eddi|zuHause>andythenorth: you flip it again, it's now not on
14:52<Eddi|zuHause>andythenorth: you flip it once, it's now on
14:52<Eddi|zuHause>err
14:52<Eddi|zuHause>*again
14:52<frosch123>but double-flip is idempotent :p
14:52<Eddi|zuHause>after each operation, result is different than the one before
14:52<andythenorth>so double flip is idempotent, irrespective of input
14:52<Eddi|zuHause>yes
14:53<andythenorth>but the light being on doesn't change the switch?
14:53<andythenorth>or does it? o_O
14:53<andythenorth>hmm it does
14:54<frosch123>"idempotent" is a property the operation, not of the operands/results
14:54<andythenorth>well
14:54<andythenorth>I am now both more and less confused
14:54<andythenorth>at the same time
14:54<Eddi|zuHause>"the light is on" is not an operation
14:54<Eddi|zuHause>"is the light on?" is an operation
14:54<andythenorth>"idempotent" means "take the output, and feed it again as the input"
14:54<andythenorth>?
14:54<andythenorth>the output is 'on'
14:54<Eddi|zuHause>the "is the light on?" operation is idempotent
14:55<frosch123>mathematically projections are the most-common idempotent functions
14:55<andythenorth>is looking for water tiles idempotent?
14:55<TrueBrain>that after some iterations of f(x), f(x) = x, not? :)
14:55<frosch123>yes, first step is from land to water
14:55<frosch123>then you remain on the same water
14:56<frosch123>so, "nearest water tile" is idempotent
14:56<Eddi|zuHause>TrueBrain: no, that is not idempotence
14:56<andythenorth>what if you build a house on the tile?
14:56<TrueBrain>owh, darn it!
14:56<andythenorth>anyway
14:56<Eddi|zuHause>idempotence is f(f(x))=f(x)
14:56<Eddi|zuHause>the first application can change x
14:56<TrueBrain>and I define x as f(x)
14:56<TrueBrain>HA!
14:56<Eddi|zuHause>but any subsequent application is not changing it
14:56<frosch123>note that f(f(x)) = f(x) does not imply f(x) = x
14:56<TrueBrain>so I was right, LALALALA
14:56-!-Gabda_ [~Gabda@catv-80-98-39-136.catv.broadband.hu] has joined #openttd
14:56-!-Gabda_ is "realname" on #openttd
14:57<TrueBrain>*puts fingers in his ears*
14:57<Eddi|zuHause>f(x)=x is a special case
14:57<frosch123>this is a text chat
14:57<TrueBrain>I miss the webcam interaction :(
14:57<Eddi|zuHause>there was webcam interaction?
14:57<frosch123>how many viewers do you have?
14:57<@peter1138>hi
14:57<TrueBrain>you really want me to answer that? :P
14:58<frosch123>for ordering appropiate medication
14:58<frosch123>*sufficient
14:58<DorpsGek_II>[OpenTTD/OpenTTD] Gabda87 commented on pull request #6931: Change: Prevent town growth from blocking ships https://git.io/fhGMN
14:58<andythenorth>ok
14:58<andythenorth>so graphics pipelines :P
14:59<TrueBrain>yes, get to work
14:59<andythenorth>if running the pipeline modifies subsequent runs of the pipeline
14:59<andythenorth>is that (a) idempotent (b) not idempotent (c) none of the above
14:59<Eddi|zuHause>what is a "graphics pipeline"?
14:59<andythenorth>let's say you give it a png
14:59<andythenorth>then it gives you a png
14:59<andythenorth>but the input and output could be arbitrarty
15:00<andythenorth>it's a set of mathematical processing operations
15:00<Eddi|zuHause>like, stretching, rotating, whatever?
15:01<andythenorth>making blue into green, whatever
15:01<Eddi|zuHause>these are usually not idempotent
15:01<Eddi|zuHause>making blue into green is (by itself) idempotent
15:01<Gabda_>f(x)=c is good as well
15:01<Eddi|zuHause>because once you removed all the blue, removing all the blue again doesn't do anything
15:01<nielsm>this sounds a lot like a fix point function
15:02<Eddi|zuHause>so unless you add new blue anywhere, that will make it not idempotent
15:02<TrueBrain>is crashing also idempotent?
15:02<andythenorth>currently the output is not the input :P
15:03<andythenorth>which is why this might be the wrong question
15:03<Eddi|zuHause>which is why i brought up the definition in the first place
15:03<@peter1138>Has Samu figured out slopes yet?
15:04<andythenorth>so if running the pipeline modifies the pipeline?
15:04<andythenorth>what's that called?
15:04<andythenorth>other than 'stupid'
15:04<Eddi|zuHause>dunno, still on ignore
15:04<@peter1138>Self-destruction.
15:04<andythenorth>there's ignore in irc? :o
15:05<Eddi|zuHause><andythenorth> what's that called? <-- "stateful"
15:05<TrueBrain>andythenorth: Polymorphic
15:05<andythenorth>unwise
15:05<Borg>andythenorth: yes.. /help ignore
15:05<Eddi|zuHause>Borg: pretty sure the question was rhethoric
15:06<Borg>oh ;)
15:06<Eddi|zuHause>andythenorth: the opposite of "functional"
15:06<Eddi|zuHause>andythenorth: "has side effects"
15:06<Eddi|zuHause>really, plenty of names for this :)
15:06<andythenorth>but not, for the record, idempotent?
15:07<TrueBrain>depends :D
15:07<TrueBrain>(haha)
15:07<Eddi|zuHause>"idempotent" (in the "computer science/imperative" definition) is a special case of "has side effects"
15:07<Eddi|zuHause>as in assuring people "but the side effects are not TOO bad"
15:08<+glx>some side effects are nice
15:08<andythenorth>in Ansible it's a shorthand for 'your server will be in a predictable state after running this playbook'
15:08<+glx>as long it's not an undefined behaviour
15:09<andythenorth>so is the Ansible definition of it wrong?
15:09<Eddi|zuHause>andythenorth: where the mathematical/functional and the computer science/imperative definition differ is whether you mean the "pure" input/output or the data/state where the side effects operates on
15:10<andythenorth>if my playbook adds a user
15:10<andythenorth>and I run it twice
15:10<frosch123>andythenorth: idempotency does not mean "there is only once result"
15:10<andythenorth>I get two users
15:10<frosch123>just that it does not change anymore
15:10<frosch123>so, ansible wants to be more than idempotent
15:10<Eddi|zuHause>andythenorth: not if that second add user collides with an error of "user already exists"
15:10<TrueBrain>whoho, we have a Sentry account :D
15:11<andythenorth>getsentry
15:11*frosch123 googles
15:11<andythenorth>now we can do six sigma
15:11<Eddi|zuHause>TrueBrain: does it shoot at you?
15:11<andythenorth>TrueBrain can be a black belt
15:11<andythenorth>for statistical error analysis
15:12<andythenorth>6 9s
15:12<andythenorth>well this was fun
15:13<Eddi|zuHause>TrueBrain: i mean like these? https://www.youtube.com/watch?v=6i-nMWgBUp0
15:13<andythenorth>5 days and 12 hours to save some flyspray patches
15:13<andythenorth>https://github.com/OpenTTD/OpenTTD/issues?q=is%3Aopen+is%3Aissue+label%3A%22patch+from+FlySpray%22
15:13<andythenorth>before they're lost.....forever
15:14<Eddi|zuHause>andythenorth: you should add "stale" to that search
15:14<+glx>(closed issues are not lost ;) )
15:15<andythenorth>Eddi|zuHause: improved it https://github.com/OpenTTD/OpenTTD/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A%22patch+from+FlySpray%22+label%3A%22stale%22
15:15<andythenorth>just 36 then
15:15<andythenorth>@calc 36 / ((5*24) + 12)
15:15<@DorpsGek>andythenorth: 0.272727272727
15:16<andythenorth>less than 1 per hour
15:16<andythenorth>@calc 36 / 5.5
15:16<@DorpsGek>andythenorth: 6.54545454545
15:16<andythenorth>that's per day
15:16<andythenorth>we could probably round a bit
15:16<TrueBrain>https://sentry.io/openttd/ <- you need to login via GitHub, and only works if you are part of the OpenTTD organization
15:16<TrueBrain>(so might not be for most of you)
15:17<TrueBrain>I will let that take care of most of the error reporting :D
15:17<TrueBrain>not sure if I can disable that you have to login
15:18<+glx>it works
15:20<TrueBrain>I love Sentry .. it makes so many things so much easier ..
15:21<andythenorth>another conditional orders thing? o_O https://github.com/OpenTTD/OpenTTD/issues/6078
15:21<andythenorth>they're so useless, we might as well just add lots more
15:21<andythenorth>nobody will notice anyway :)
15:23<andythenorth>all these patches with these 'meh' titles
15:23<TrueBrain>if a tree falls in the forest
15:23<TrueBrain>but nobody is around
15:23<TrueBrain>does it make a sound?
15:23<andythenorth>there is software quality and then there is software quality
15:23<andythenorth>I liked TrueBrain's plan for MMORPG version of OpenTTD
15:24<andythenorth>that will make it interesting
15:24<TrueBrain>that is an old old plan :P
15:25<+glx>I remember the test duel version
15:25<milek7>sentry: 'Track errors in every language, framework, and library. ' * no c++ on list * ...
15:25<TrueBrain>for good reason
15:25<TrueBrain>:P
15:27*andythenorth wonders about patch quotes
15:27<andythenorth>quotas *
15:27<andythenorth>'we will accept 10 patches in 2019'
15:27<andythenorth>'is yours good enough?'
15:28*frosch123 submits jgrpp
15:28<frosch123>it's just one patch, right?
15:28<andythenorth>if you squash it
15:28<andythenorth>it's just once commit
15:29<andythenorth>so every year, just take jgrpp, and call that master?
15:29<andythenorth>nobody here has to patch anything
15:29<Eddi|zuHause>surely no problems will ever arise with that
15:29<andythenorth>forums go wild
15:30<andythenorth>ok that's the plan, I close all issues and PRs now
15:31<milek7>TrueBrain: so how it is useful for openttd? custom scripts for submitting crashes?
15:31<DorpsGek_II>[OpenTTD/OpenTTD] Eddi-z opened pull request #7026: Add: when placing non-rectangular airport, consider airport tile table tiles only (patch by adf88, #6613) https://git.io/fhGD4
15:31<frosch123>it has support for python and flask
15:32<TrueBrain>milek7: no, it is useful for the OpenTTD infrastructure
15:32<Eddi|zuHause>andythenorth: openttd is complete?
15:33<andythenorth>could be
15:33<Eddi|zuHause>isn't there a way where the PR could be attached to the original ticket instead of getting a new number?
15:33<andythenorth>mildly confusing isn't it?
15:34<+glx>no, but it should link to the issue as you tagged it in the title
15:34<Eddi|zuHause>yes
15:34<Eddi|zuHause>but that splits the discussion
15:34<andythenorth>it does
15:34<frosch123>between gh and irc?
15:34<andythenorth>within GH
15:34<andythenorth>but Eddi|zuHause it's mostly an artefact of providing patches in issues
15:34<Eddi|zuHause>no, people following the original ticket won't be subscribed to the discussion on the PR
15:35<andythenorth>so mostly legacy
15:35<andythenorth>broadly, there is not 1:1 mapping of issue:PR
15:35<+glx>they'll get a notification with a reference to the PR I think
15:35<andythenorth>PRs don't need an associated issue
15:35<andythenorth>for bug reports it's n:PR
15:35<Eddi|zuHause>they'll get notification that there's a PR now
15:36<andythenorth>for feature requests, 0:PR?
15:36<Eddi|zuHause>but no followup
15:36<andythenorth>hmm no
15:36<milek7>btw. cross-platform crash reporting is such a pain
15:36<andythenorth>feature requests should be n:0
15:36<milek7>breakpad looks sensible, but turns out that each platform is slightly different header usage, so it ends up with platform specific code anyway
15:36<andythenorth>TrueBrain: can I change the rules, to just close feature requests?
15:36<andythenorth>they are spam
15:36<andythenorth>literal negative value
15:37<andythenorth>classic of the genre
15:37<andythenorth>https://github.com/OpenTTD/OpenTTD/issues/7016
15:37<Eddi|zuHause>didn't we write into contributing that feature requests better go to the forums?
15:38<Eddi|zuHause>andythenorth: i would close that as "won't happen, because of performance"
15:38<andythenorth>someone give Eddi|zuHause ticket editing rights :)
15:38<Eddi|zuHause>don't you dare
15:38<@peter1138>How bad is it for performance?
15:39<Eddi|zuHause>peter1138: dunno, but that was the rule when railtype newgrfs were introduced
15:39<Eddi|zuHause>peter1138: no variables, because of performance
15:39<@peter1138>Did I make that rule?
15:39<andythenorth>https://github.com/OpenTTD/OpenTTD/blob/master/CONTRIBUTING.md#feature-requests
15:39<Eddi|zuHause>did you make railtypes?
15:39<@peter1138>Yes.
15:39<andythenorth>hmm
15:39<TrueBrain>andythenorth: https://github.com/OpenTTD/OpenTTD/blob/master/CONTRIBUTING.md#feature-requests
15:40<TrueBrain>nuff said
15:40*andythenorth looks for issues to burn
15:40<Borg>andythenorth: Industry Text CB drawing issues... good issue to fix ;)
15:40<Eddi|zuHause>peter1138: i think the problem was, opposing to something like vehicles, there is no cache for the result of an action3, so having deeply nested trees evaluated every tick seemed like a bad idea
15:42<frosch123>Eddi|zuHause: the performance issue was for "nearest town". but "nearest town" is on a different level than "slope of neighbour tile" etc
15:42<frosch123>for the landinfo stuff you just need to limit the distance
15:43<frosch123>don't add variables like "sea is 50 tiles away" :p
15:43<Eddi|zuHause>i always wanted "trackbits of adjacent tiles" for the curves
15:43<frosch123>anyway, make a patchpack
15:44<frosch123>i don't believe in these complex variables, until someone proves that they are really useful
15:44<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #1308: Vehicle Groups: create group from vehicles in station list. https://git.io/fhGDo
15:44<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #1308: Vehicle Groups: create group from vehicles in station list. https://git.io/fhGDK
15:44<andythenorth>TrueBrain: roughly this? https://github.com/OpenTTD/OpenTTD/issues/1308#issuecomment-452075365
15:44<frosch123>most are just: i have an idea how to make something, add 10 variables, idea turns out crap...
15:45<Gabda_>maybe you could have a new tag for issues you find good for the projects
15:45<andythenorth>frosch123: you happy to close it, or shall I be bad cop?
15:45<frosch123>Gabda_: noone knows in advance
15:45<Gabda_>as right now it hard to choose an issue to work on for newcomers
15:45<andythenorth>agreed
15:45<Eddi|zuHause>frosch123: the main problem with that is, if you add a variable with a specific idea in mind, you maybe miss a chance to make it generic enough so other people might use it
15:45<andythenorth>how is the 'good first issue' tag working Gabda ?
15:45<frosch123>you have to try out stuff, before you can commit to them
15:46<Gabda_>that one was good :)
15:46<frosch123>Eddi|zuHause: check out the 60+x variables of industries
15:46<andythenorth>Eddi|zuHause: I think your railtype var patch is the correct way to do it
15:46<frosch123>and houses
15:46<Eddi|zuHause>frosch123: i'd rather not :p
15:46<andythenorth>real problem, defined, clear patch, clear questions
15:46<andythenorth>tested
15:46<andythenorth>before adding
15:46<Gabda_>I picked one, but for my second issue, I felt I couldn't choose from them
15:47<andythenorth>and I could have added example nml if I could be bothered :P
15:47<andythenorth>or a grf
15:47<Eddi|zuHause>andythenorth: i feel like i posed "open qestions" in that topic, and nobody answered them
15:47<andythenorth>well there's time yet
15:47<andythenorth>frosch123: https://github.com/OpenTTD/OpenTTD/pull/7000
15:47<TrueBrain>andythenorth: tweaked it a bit
15:48<TrueBrain>twice "thank you" was a bit weird
15:48<TrueBrain>(and fiddled with the link)
15:48<andythenorth>thanks TB
15:49<andythenorth>is someone just going to close George's or what?
15:49<andythenorth>newgrf politics does my head in tbh :P
15:49<LordAro>close a George ticket? :o
15:49<andythenorth>I prefer the simple "Andy wants this, can he have it yes | no? Here is a grf"
15:49<andythenorth>I closed loads last year
15:49<andythenorth>if you want newgrf spec changes, you have to come here and help
15:50<andythenorth>is the blunt
15:50<andythenorth>reality
15:50<andythenorth>it's not a request service
15:50<andythenorth>can someone frame that nicely, thx bai
15:53<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #4573: Railtypes: improve snow transition https://git.io/fhGDF
15:53<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #4573: Railtypes: improve snow transition https://git.io/fhGDb
15:53<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #4711: Water: allow rivers (slopes) for navigation https://git.io/fhGDN
15:53<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #4711: Water: allow rivers (slopes) for navigation https://git.io/fhGDA
15:54<TrueBrain>lets get to 100 issues? :P
15:54<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #4934: Profile - GetImage is slow https://git.io/fhGDp
15:54<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #4934: Profile - GetImage is slow https://git.io/fhGDh
15:54<andythenorth>oof I closed Truebrain
15:54<andythenorth>these are all 'nice to have'
15:54<LordAro>/kban andythenorth
15:54<andythenorth>but I have another 20 'nice to have'
15:54<andythenorth>and the forums have 100
15:54<andythenorth>and reddit has 50
15:54<andythenorth>so eh
15:55<andythenorth>it's not what GH is good for
15:55<TrueBrain>why on earth was that ticket still open, lol ..
15:55<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #4998: Objects: draggable items https://git.io/fhGDj
15:55<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #4998: Objects: draggable items https://git.io/fhGye
15:55<TrueBrain>tnx for closing my 5 year old ticket :P
15:55<andythenorth>TrueBrain: contains valuable information
15:55<andythenorth>or at least perception that it does
15:55<andythenorth>it's only valuable if somebody does something
15:55<andythenorth>cool story: we had 239 issues on Saturday
15:56<andythenorth>today in work I had also 239 issues
15:56*andythenorth having bonfires
15:56<andythenorth>peter1138: o_O https://github.com/OpenTTD/OpenTTD/issues/5006
15:56<andythenorth>easy now?
15:57<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #5210: Bananas: confusing "find missing content online" - especially removing savegame selection https://git.io/fhGyJ
15:57<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #5210: Bananas: confusing "find missing content online" - especially removing savegame selection https://git.io/fhGyU
15:57<@peter1138>Not really, the "add some mapping" bit was key to avoiding wastage, and we didn't do that.
15:57<DorpsGek_II>[OpenTTD/OpenTTD] Milek7 commented on issue #6417: GSTile.GetTownAuthority not accounts town growth https://git.io/fhGyT
15:58<andythenorth>peter1138: close it?
15:58<@peter1138>Otoh, we could just waste types and not worry now :p
15:58<andythenorth>I don't worry
15:58<andythenorth>let's waste some stuff
15:58<@peter1138>No, the feature is still relevant, regardless of how easy it is to implement...
15:58<Eddi|zuHause>i vote for add patch and ignore waste
15:58<Eddi|zuHause>leave dealing with the wast for a future generation
15:58<Eddi|zuHause>*waste
15:59<andythenorth>today also at work
15:59<DorpsGek_II>[OpenTTD/OpenTTD] frosch123 commented on pull request #7000: Add: Var 6A, a clone of Var 4A for querying poweredness compared to a… https://git.io/fhGyI
15:59<@peter1138>I... don't think I have a patch for it :p
15:59<andythenorth>we realised we have made such a big mess, it won't be fixed by us
15:59<andythenorth>it will be the next generation
15:59<Eddi|zuHause>there's one in the ticket?
15:59<frosch123>Eddi|zuHause: see, i can derail the issue even more
15:59<DorpsGek_II>[OpenTTD/OpenTTD] nielsmh commented on pull request #6931: Change: Prevent town growth from blocking ships https://git.io/fhGym
16:00<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #5652: AI: "error: wrong number of parameters" - show number used and number of expected? https://git.io/fhGyO
16:00<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #5652: AI: "error: wrong number of parameters" - show number used and number of expected? https://git.io/fhGy3
16:01<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6075: Timetable: removing all times from timetable and change all "stay" time https://git.io/fhGyZ
16:01<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6075: Timetable: removing all times from timetable and change all "stay" time https://git.io/fhGyn
16:02<Borg>btw.. anyone here still does NFO ? or everyone went away for NML?
16:02<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6417: GSTile.GetTownAuthority not accounts town growth https://git.io/fhGyW
16:02<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6417: GSTile.GetTownAuthority not accounts town growth https://git.io/fhGyl
16:03<andythenorth>Borg: is that a general question?
16:03<andythenorth>or you want nfo help?
16:03<+glx>Borg: NFO is for hardcore grf writers
16:03<Borg>nope.. I might want to contribute..
16:03<Borg>but I want to know if there is worth doing so
16:03<@peter1138>Hmm, of course, frosch123 insists that non-buildable types shouldn't count towards the railtype limit. Hmm.
16:03<frosch123>you and pikka are the only nfo users i encountered
16:03<andythenorth>I use it for stations
16:03<frosch123>there are like 3 people using m4nfo
16:03<andythenorth>not by choice
16:03<frosch123>the rest does nml
16:04<andythenorth>I use it for debugging nml
16:04<Borg>frosch123: oh... not much :) then... no point contributing then I guess
16:04<andythenorth>limited return
16:05<andythenorth>frosch123: (sorry) any idea if this is intended behaviour>?
16:05<andythenorth>https://github.com/OpenTTD/OpenTTD/issues/5631
16:05<andythenorth>it might be a bug, not an enhancement
16:05<andythenorth>or it might just be, can you please stop using frigging subtypes
16:06<frosch123>i can't remember when i touched that stuff last
16:06<@peter1138>2013 :p
16:07<frosch123>the list shows the subtypes of all selected vehicles
16:07<frosch123>but articulated parts must be consistent
16:07-!-Gabda_ [~Gabda@catv-80-98-39-136.catv.broadband.hu] has quit [Quit: Leaving]
16:07-!-sla_ro|master [~sla.ro@84.117.88.126] has quit []
16:07<andythenorth>I can't even parse what's supposed to happen tbh
16:07<andythenorth>'life is too short for this crap'
16:07<DorpsGek_II>[OpenTTD/OpenTTD] Eddi-z commented on pull request #7000: Add: Var 6A, a clone of Var 4A for querying poweredness compared to a… https://git.io/fhGyo
16:07<@peter1138>Hmm, I wonder which of my branches were my work, and which are tests of other peoples' patches :p
16:07<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #5631: Refitting doesn't display all available liveries for group of wagons https://git.io/fhGyK
16:07<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #5631: Refitting doesn't display all available liveries for group of wagons https://git.io/fhGy6
16:08<@peter1138>Time to ignore DorpsGek_II for a moment :p
16:08<frosch123>apparently i touched that stuff in march 2013
16:08<andythenorth>soz
16:08<andythenorth>next time I read about subtypes as 'liveries' I might behave badly
16:08<andythenorth>liveries are obviously implemented with ctrl-click in depot :P
16:09<DorpsGek_II>[OpenTTD/OpenTTD] frosch123 commented on pull request #7000: Add: Var 6A, a clone of Var 4A for querying poweredness compared to a… https://git.io/fhGy1
16:09<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6869: NewGRF tree growth control https://git.io/fhGyM
16:09<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6869: NewGRF tree growth control https://git.io/fhGyD
16:09<andythenorth>oof sorry nielsm :P ^
16:09<andythenorth>but
16:09<Eddi|zuHause><peter1138> Time to ignore DorpsGek_II for a moment :p <-- it's just andy being andy, it should blow over in like half an hour or so :p
16:10<@peter1138>I still need to ignore it.
16:10<andythenorth>me too
16:10<andythenorth>are irc highlights idempotent?
16:10<Wolf01>Could you ignore yourself?
16:10<@peter1138>I usually do.
16:11<Eddi|zuHause>peter1138: make sure to tell TrueBrain about how spammy DorpsGek_II is, he likes that :p
16:11<@peter1138>It's normally fine, just a bit noisy then :p
16:11<TrueBrain>@kick Eddi|zuHause about thhhiiiiisssssss much
16:11<@peter1138>And that's what /ignore is for.
16:11<andythenorth>Eddi|zuHause: so I could just check if the railtype has catenary? o_O
16:11<TrueBrain>@whoami
16:11<@DorpsGek>TrueBrain: I don't recognize you.
16:11<TrueBrain>boooeeee
16:11<TrueBrain>lucky you
16:11<Eddi|zuHause>haha :p
16:12<andythenorth>on more
16:12<andythenorth>1 more
16:12<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6607: Stations: additional animation triggers https://git.io/fhGy7
16:12<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6607: Stations: additional animation triggers https://git.io/fhGy5
16:12<andythenorth>ok I stop now :P
16:12<andythenorth>broken some eggs
16:13<TrueBrain>and I am testing what a release build would be doing ... scary :D
16:13<DorpsGek_II>[OpenTTD/OpenTTD] Eddi-z commented on pull request #7000: Add: Var 6A, a clone of Var 4A for querying poweredness compared to a… https://git.io/fhGyb
16:16<Eddi|zuHause>is max speed (vehicle specific units) a byte value?
16:16<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on pull request #7000: Add: Var 6A, a clone of Var 4A for querying poweredness compared to a… https://git.io/fhGyj
16:16<Samu>back to work. I think only the main tile, the one named 'tile' can be checked by slope. and if I use a table lookup thing, I need to get its corner, numbered in the correct order as corners are 0, 1, 2, 3 already, and slopes aren't. The other tile checks, I still think the best way is by getting the track bits
16:16<Samu>if i do it by other methods, code complicates again
16:16-!-Borg [~borg@87-99-43-52.internetia.net.pl] has quit [Quit: leaving]
16:17<Eddi|zuHause>andythenorth: stop derailing the derailed conversation in a different direction :p
16:17<andythenorth>is derailed a new var?
16:18<TrueBrain>right, seems all that is left some meta files .. that I can fix this weekend or so
16:18<frosch123>speed is in km-ish/h, so a word
16:18<Eddi|zuHause>i think that should be an existing var
16:18<andythenorth>Eddi|zuHause: on long-welded rail, 4 wheel freight cars are prone to derailments caused by hunting
16:18<andythenorth>whereas on 60 foot jointed rail, the hunting motion is reset by the joints
16:18<andythenorth>can we have that var?
16:19<andythenorth>TrueBrain: hoorary
16:19<andythenorth>sorry, we were talking about trains :(
16:19<andythenorth>forgot to praise
16:19-!-Thedarkb-T60 [~Thedarkb-@51-171-49-58-dynamic.agg3.kny.prp-wtd.eircom.net] has joined #openttd
16:19-!-Thedarkb-T60 is "realname" on #oolite #openttd
16:19<Eddi|zuHause>that's not a var, that's extended breakdowns
16:19<andythenorth>cb36 for reliability?
16:19<Eddi|zuHause>not enough
16:19<andythenorth>why can't we have spontaneous crashes?
16:19<andythenorth>that would raise the game
16:19<andythenorth>'your train just....crashed. 2 are dead'
16:20<Eddi|zuHause>because someone closed the ticket of improved breakdowns patch?
16:20<andythenorth>'SPAD, 38 dead'
16:20<andythenorth>https://en.wikipedia.org/wiki/Signal_passed_at_danger
16:20<andythenorth>random
16:20<Eddi|zuHause>i'm pretty sure people requested that before
16:20<andythenorth>adding brakevans reduces SPADS and derailments
16:22<+glx>@whoami
16:22<@DorpsGek>glx: glx
16:22<andythenorth>you are
16:22<andythenorth>I can see
16:22<@DorpsGek>I can hde myself
16:23<ST2>DorpsGek is with Alzheimer again :D
16:23<+glx>I identified myself 3 days ago, it remembers me since
16:24<ST2>@whoami
16:24<@DorpsGek>ST2: I don't recognize you.
16:24<ST2>crap :D
16:24<LordAro>@whoami
16:24<@DorpsGek>LordAro: I don't recognize you.
16:24<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6628: Docks can't be connected into a single station https://git.io/fhGST
16:24<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6628: Docks can't be connected into a single station https://git.io/fhGSk
16:24<LordAro>aw
16:24-!-mode/#openttd [+o glx] by DorpsGek
16:24-!-mode/#openttd [-o glx] by DorpsGek
16:24<+glx>and I have my super powers
16:24<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6357: positioning of train vehicle sprites https://git.io/fhGSI
16:24<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6357: positioning of train vehicle sprites https://git.io/fhGSL
16:25<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6253: Remember the game save/load location even when closing the app https://git.io/fhGSt
16:25<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6253: Remember the game save/load location even when closing the app https://git.io/fhGSq
16:25<andythenorth>178
16:25<andythenorth>about 40 more I'll close on Saturday
16:26<andythenorth>Gabda still looking for things to work on? o_O
16:27<Eddi|zuHause>andythenorth: you need to go through and remove the "stale" label from tickets where there was activity
16:27<andythenorth>ok
16:27<andythenorth>it's quite labour intensive label, as predicted
16:28<andythenorth>better replaced by a bot
16:28<+glx>we need a bot to manage stale label yes
16:28-!-gelignite [~gelignite@55d4fd5d.access.ecotel.net] has quit [Quit: Good fight, good night!]
16:29<andythenorth>I am not a good bot
16:30<@DorpsGek>i am
16:30<+glx>was not me
16:30<andythenorth>https://probot.github.io/
16:30<TrueBrain>andythenorth: I will install that bot on PRs next weekend
16:30<andythenorth>yay
16:31<TrueBrain>for issues, we need more tuning I guess
16:31<TrueBrain>as we first have to catch up
16:31<TrueBrain>before we can let him go on a rampage :P
16:31<andythenorth>first we catch up
16:31<andythenorth>then we decide
16:31<Eddi|zuHause>ketchup
16:31<andythenorth>mayo
16:31<TrueBrain>https://dev.azure.com/truebrain/OpenTTD/_build/results?buildId=205 <- NOT MEANT FOR DOWNLOADING, they are broken in terms of versioning
16:31<TrueBrain>but .. they all work :D
16:31<LordAro>imo, stale shouldn't be added by a bot, it should only remove stale, or close issues
16:31<LordAro>otherwise we'd just end up with no issues
16:31<andythenorth>TrueBrain: no BeOS? :o
16:31<LordAro>or lots of "bump" comments
16:31<Eddi|zuHause>in the 90s there was a TV show "sketch up"
16:32<TrueBrain>andythenorth: no :)
16:32<andythenorth>I had a BeOS cover CD once
16:32-!-nielsm [~nielsm@176-23-103-56-cable.dk.customer.tdc.net] has quit [Ping timeout: 480 seconds]
16:32<andythenorth>didn't install it
16:32<TrueBrain>LordAro: your logic fails on me :)
16:32<TrueBrain>how do we end up with no issues, if a proper configured bot runs 'stale' processing?
16:33<andythenorth>isn't 'no issues' how we win? :o
16:33*andythenorth might be playing the wrong game
16:34<Eddi|zuHause>surely
16:34<LordAro>ok, (valid) issue is opened, there's some discussion, but as no one ever has any time to do anything with it, it goes quiet. bot comes along and applies stale label to it (no one notices). n days later, bot closes issue
16:34<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6651: Improve CargoDist flow palette https://git.io/fhGSl
16:34<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6651: Improve CargoDist flow palette https://git.io/fhGS8
16:34-!-Compu [~Compu@0001feeb.user.oftc.net] has joined #openttd
16:34-!-Compu is "Compu" on #help #openttd #/r/openttd
16:34-!-Compu [~Compu@0001feeb.user.oftc.net] has quit [Remote host closed the connection]
16:34<TrueBrain>so you completely jump over the very important word: PROPER configured? :)
16:35<andythenorth>someone want to approve and merge? https://github.com/OpenTTD/OpenTTD/pull/6998
16:35<LordAro>well, i don't know what you or anyone else consider "proper" :p
16:35<TrueBrain>so, that is the right question to ask
16:35<LordAro>i'm just getting my opinion in before something is actually done :p
16:35<TrueBrain>instead jumping to some extreme :P
16:35<TrueBrain>yes, because OpenTTD is good in doing something before talking about it N times :D
16:35<andythenorth>I would approved 6998, but eh, I don't like approving actual C++ stuff
16:35<TrueBrain>but it is easier to answer an open question, then to defend to a weird jump in the spectrum ;)
16:35<TrueBrain>either way, please see https://probot.github.io/apps/stale/
16:36<TrueBrain>it has some nice examples
16:36<andythenorth>I could put 'Probably Fine' on that PR, but it's disrespectul to Gabda as first time contributor
16:37<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6686: Signal removal with (CTRL+)drag not possible from level crossing https://git.io/fhGSB
16:37<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6686: Signal removal with (CTRL+)drag not possible from level crossing https://git.io/fhGSR
16:37<andythenorth>who's working on the SDL2 port?
16:37<andythenorth>o_O
16:37<@peter1138>How do I show the link graph?
16:37<andythenorth>the one on the main map?
16:38<DorpsGek_II>[OpenTTD/OpenTTD] TrueBrain opened pull request #7027: Add: [AzurePipeline] introducing a release pipeline https://git.io/fhGSE
16:38<@peter1138>Yeah
16:38<+glx>there's a setting somwhere I think
16:38<andythenorth>map of world button -> cargo flow legend
16:38<Samu>is there a Corner to TileDiff or something similar?
16:38<andythenorth>then toggle company / cargos on or off
16:38<Samu>offset
16:38<andythenorth>nobody doing SDL2 then?
16:38<andythenorth>ok
16:39<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6173: Add support for SDL2 https://git.io/fhGSg
16:39<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6173: Add support for SDL2 https://git.io/fhGS2
16:39<TrueBrain>LordAro: https://github.com/probot/stale even more examples, if you like
16:39<TrueBrain>so much configuration, it is to die for :D
16:39<andythenorth>exemptAssignees: TrueBrain
16:40<andythenorth>winner
16:40<@peter1138>So, er, what does assigning an integer value to a variable which is a class (with no = operator overload) do?
16:41<Eddi|zuHause>i would expect that to be a compile error
16:41<@peter1138>Yeah... it's not.
16:41<Eddi|zuHause>with pointers involved, however, it might go horribly wrong
16:41<LordAro>is there a constructor with an integer parameter?
16:42<@peter1138>It's not a pointer, though.
16:42<@peter1138>LordAro, yes. Ah.
16:42<LordAro>this is why people recommend such constructors are made explicit :)
16:43<@peter1138>Yers...
16:43<+glx>and as the bot posts a comment it's easy to add activity by just replying
16:43<@peter1138>Actually this constructor does the same as the method I was meant to call, so it would've worked.
16:43<TrueBrain>glx: lot of people use probot/stale, with a lot of good success .. guess it is worth trying
16:43<@peter1138>LordAro, how exactly?
16:44<@peter1138>I like x = GUITimer(10) but... in this case, x = 10 also did the same thing, unintentionally.
16:44<@peter1138>x = 10 is meant to be x.SetInterval(10)
16:44<+glx>TrueBrain: I mean at least people involved with the issue will take a look after the bot post
16:44<LordAro>explicit GUITimer(int aninteger) { ... }
16:44<TrueBrain>glx: yup :)
16:44<+glx>and if they care they will prevent closing
16:45<TrueBrain>glx: from what I have seen in other projects, this is exactly what happens
16:45<@peter1138>Oh. that's actually a thing. Are we allowed to use that?
16:45<LordAro>it's not new
16:45<TrueBrain>often even resulting in picking up the issue, as they simply forgot :D
16:45<+glx>not surprising when the issue count is high
16:45<@peter1138>Cool, now I get compile errors, woo.
16:46<LordAro>:)
16:46<TrueBrain>glx: one of the harder things; prioritizing tickets in open source projects :)
16:46<TrueBrain>as they are done ordered by "fun", which ever definition that is :P
16:46<TrueBrain>okay, CI works, branch-build works, tag-build works
16:46<TrueBrain>so happy :D
16:46<LordAro>TrueBrain: \o/
16:46<+glx>yeah or just ignored to do our own fun
16:46<andythenorth>there is pretty much no point in running a backlog for open source
16:47<andythenorth>there's barely any point in commercial software either
16:47<andythenorth>except it keeps management from interfering
16:47<DorpsGek_II>[OpenTTD/OpenTTD] TrueBrain commented on pull request #7027: Add: [AzurePipeline] introducing a release pipeline https://git.io/fhGSQ
16:47<TrueBrain>andythenorth: INDEED :D
16:48<TrueBrain>"owh, you want to be important? Sure, I put your ticket right here between these others of VERY IMPORTANT PEOPLE"
16:48<andythenorth>also, we are stacking up so many PRs, we dont' have to worry about issues
16:48<andythenorth>why bother with feature requests, when we can really piss off people who've written actual patches that pass CI :P
16:49<TrueBrain>right, off to bed for me; night all
16:49<andythenorth>bye TB
16:50-!-frosch123 [~frosch@00013ce7.user.oftc.net] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
16:54<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6890: Crash: disconnecting road vehicle https://git.io/fhG9v
16:54<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6890: Crash: disconnecting road vehicle https://git.io/fhG9f
16:55<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6947: A new variable Vehicle is loading required https://git.io/fhG9T
16:55<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6947: A new variable Vehicle is loading required https://git.io/fxHAR
16:55<andythenorth>way too many labels
17:00<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6631: In singleplayer, you cannot buyout one human-player company as another. https://git.io/fhG9L
17:00<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6631: In singleplayer, you cannot buyout one human-player company as another. https://git.io/fhG9t
17:01<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #5685: AI: wagons are lost in depot because of lack of API feature https://git.io/fhG9m
17:01<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6903: selected rail type should be included in game saves https://git.io/fhG9Y
17:01<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6903: selected rail type should be included in game saves https://git.io/fhG9O
17:02<DorpsGek_II>[OpenTTD/OpenTTD] Eddi-z commented on issue #6947: A new variable Vehicle is loading required https://git.io/fhG9s
17:02<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #7011: Towns don't grow if first tile of station is outside authority area https://git.io/fhG9G
17:02<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #7011: Towns don't grow if first tile of station is outside authority area https://git.io/fh3Jg
17:04<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6221: Crash: [OSX] in chat with Korean Language https://git.io/fhG9c
17:04<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6221: Crash: [OSX] in chat with Korean Language https://git.io/fhG9C
17:06<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth commented on issue #6888: Add layer(s) showing station coverage https://git.io/fhG98
17:06<DorpsGek_II>[OpenTTD/OpenTTD] andythenorth closed issue #6888: Add layer(s) showing station coverage https://git.io/fhG94
17:07<@peter1138>Once andythenorth's gone, I'm going to reopen all these issues.
17:07<andythenorth>I won't be sad
17:07<andythenorth>increasing the issue count resets my game
17:07<andythenorth>I can play again
17:08<@peter1138>Are you an Inbox-zero kinda guy too?
17:08<andythenorth>no
17:08<andythenorth>I just stopped reading email
17:08*andythenorth won the game
17:08<andythenorth>people phone me if there's an email I need to read
17:09<andythenorth>we could make our own open/close bots
17:09<andythenorth>the winner would be the one whose datacenter is closest to github
17:15<andythenorth>peter1138: just close *my* feature requests :P That will teach me :P
17:16<andythenorth>https://github.com/OpenTTD/OpenTTD/issues/6919
17:22<Samu>i just invented GetCornerDirection
17:23<Samu>now I can use _tileoffs_by_dir
17:23<Samu>no more ugly tables
17:33-!-andythenorth [~andytheno@cpc87219-aztw31-2-0-cust178.18-1.cable.virginm.net] has left #openttd []
17:40<Samu>TileIndex opposite_tile = tile + TileOffsByDir(GetCornerDirection(OppositeCorner(corner)));
17:47-!-Wolf01 [~wolf01@0001288e.user.oftc.net] has quit [Quit: Once again the world is quick to bury me.]
17:50-!-synchris [~synchris@139.138.202.72] has quit [Quit: yeeha!]
18:14<DorpsGek_II>[OpenTTD/OpenTTD] odisseus commented on pull request #6931: Change: Prevent town growth from blocking ships https://git.io/fhGHq
18:23-!-Thedarkb-T60 [~Thedarkb-@51-171-49-58-dynamic.agg3.kny.prp-wtd.eircom.net] has quit [Ping timeout: 480 seconds]
18:30<Samu>well, aqueducts can be excluded from this equation
18:31<Samu>dealing with coastal tiles and no possible aqueduct on level 0
18:34<Samu>locks are important to account for
18:35<Samu>especially when dealing with tight body waters inside towns
18:35<Samu>same as ship depots, similar in nature
18:35<Samu>must think
18:36<DorpsGek_II>[OpenTTD/OpenTTD] PeterN updated pull request #6780: Change: Refactor window ticks into game ticks and realtime events. https://git.io/vpDSL
18:37<Samu>rails with water still need to be accounted
18:38<@peter1138>Accounted for in what?
18:38<Samu>for the opposite tile
18:38<@peter1138>Are you still working on town expansion?
18:38<@peter1138>Ah
18:39<Samu>yes, i'm too slow, i know
18:39<Samu>terrible coder
18:39<@peter1138>All seems very complicatd :/
18:39<Samu>trying to make it work
18:39<@peter1138>Eh, I didn't mean it like that, you could've been working on something else.
18:41<Samu>a coastal tile with rail on the opposite halftile is not a coast tile :(
18:41<Samu>because game logic says so
18:42<@peter1138>What do you need to know about the opposite half tile?
18:43<@peter1138>If it's simply "can a ship traverse it", won't GetTileTrackStatus work?
18:43<Samu>I was advised not to use trackbits :p
18:43<Samu>but in the end I think i have to
18:51<@peter1138>I advised you against it for the first part.
18:51<@peter1138>The water slope check.
18:54<DorpsGek_II>[OpenTTD/OpenTTD] PeterN commented on pull request #6780: Change: Refactor window ticks into game ticks and realtime events. https://git.io/fhGHy
19:07<Samu>the first one isn't needed
19:08<Samu>but
19:08<Samu> Slope slope = GetTileSlope(tile);
19:08<Samu> if (IsSlopeWithOneCornerRaised(slope) && IsCoastTile(tile)) {
19:08<Samu> Corner corner = GetHighestSlopeCorner(slope);
19:08<Samu>became this instead
19:09<Samu>with the corner i can work out the rest
19:09-!-chomwitt [~chomwitt@ppp-94-69-11-109.home.otenet.gr] has quit [Ping timeout: 480 seconds]
19:10<Samu>https://paste.openttdcoop.org/pmrjva0fa
19:10<Samu>was invented
19:11<Samu>unless i can get to the tile offset by another means
19:12<Samu>as for computing the correct offsets for next_tile_1 and next_tile_2, I'm still figuring it out
19:17-!-Flygon [~Flygon@58-6-74-108.dyn.iinet.net.au] has joined #openttd
19:17-!-Flygon is "Flygon" on #openttd
19:25<Eddi|zuHause>"PeterN" always reminds me of "PeterT"...
19:25<@peter1138>I was definitely here first.
19:26<Eddi|zuHause>but not with that nick
19:34-!-FLHerne [~flh@flherne.uk] has quit [Quit: Goodbye (ZNC disconnected)]
19:35-!-FLHerne [~flh@flherne.uk] has joined #openttd
19:35-!-FLHerne is "Francis Herne" on #openttd #/r/openttd #kernelnewbies
19:47<Samu>if freeform edges is disabled, ships have more tiles to walk?
19:52<Samu>wow, they can, hmm
20:45-!-Thedarkb-X40 [~beno@51-171-49-58-dynamic.agg3.kny.prp-wtd.eircom.net] has joined #openttd
20:45-!-Thedarkb-X40 is "realname" on #openttd #/r/openttd #oolite
20:56-!-Wormnest [~Wormnest@35.136.176.177] has joined #openttd
20:56-!-Wormnest is "Wormnest" on #openttd
20:57-!-Wormnest [~Wormnest@35.136.176.177] has quit []
21:40<DorpsGek_II>[OpenTTD/OpenTTD] glx22 updated pull request #7022: Add: generate_widget.vbs to allow script_window.hpp enums generation … https://git.io/fhsWa
21:46-!-Thedarkb-X40 [~beno@51-171-49-58-dynamic.agg3.kny.prp-wtd.eircom.net] has quit [Ping timeout: 480 seconds]
22:19<Samu>I think I did it
22:20<Samu>https://imgur.com/VxM63BF
22:20<Samu>seems correct
22:21<Samu>it cannot expand any more
22:44<Samu>something not quite right with bridge heads
22:45<Samu>should be 90 degrees aware
22:58<Samu>well i guess im seeing things
23:11-!-ToBeFree [~tobefree@00019d36.user.oftc.net] has joined #openttd
23:11-!-ToBeFree is "Tobias "ToBeFree" Frei" on #https-everywhere #oolite-dev #openttd #oolite #oolite-ger
23:11-!-ToBeFree [~tobefree@00019d36.user.oftc.net] has quit [Remote host closed the connection]
23:17<Samu>have yet to test depots, but so far I'm liking what i see
23:20-!-Taco [~taco@191.185.233.220.static.exetel.com.au] has joined #openttd
23:20-!-Taco is "realname" on #openttd
23:22<DorpsGek_II>[OpenTTD/OpenTTD] SamuXarick updated pull request #6931: Change: Prevent town growth from blocking ships https://git.io/fhsRY
23:24<DorpsGek_II>[OpenTTD/OpenTTD] SamuXarick commented on pull request #6931: Change: Prevent town growth from blocking ships https://git.io/fhG5n
23:28-!-Samu [Samu@pa4-84-91-142-34.netvisao.pt] has quit []
23:36-!-erratic [erratic@206.125.168.77] has quit [Ping timeout: 480 seconds]
23:58-!-glx [kvirc@000128ec.user.oftc.net] has quit []
---Logclosed Tue Jan 08 00:00:11 2019