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

---Logopened Sat Mar 04 00:00:09 2017
00:05<Supercheese>@calc 7 m/s mph
00:05<@DorpsGek>Supercheese: Error: invalid syntax (<string>, line 1)
00:06<Supercheese>Google it is then
00:07<Supercheese>maybe it was @convert or something
00:24-!-Snail [] has quit [Quit: Snail]
00:53-!-Mazur [] has quit [Ping timeout: 480 seconds]
01:02-!-Mazur [] has joined #openttd
01:02-!-Mazur is "Stefan Linnemann" on #oolite #openttd #openttdcoop @#openttdcoop.stable
01:25-!-sla_ro|master [] has joined #openttd
01:25-!-sla_ro|master is "slamaster" on @#sla #openttd #love
01:28-!-Alberth [] has joined #openttd
01:28-!-Alberth is "purple" on #openttd
01:28-!-mode/#openttd [+o Alberth] by ChanServ
01:50-!-andythenorth [] has joined #openttd
01:50-!-andythenorth is "Andy" on #openttd
01:52<andythenorth>to my mind, the CPP approach of dumping constants into one global namespace
01:53<andythenorth>is a mess
01:53<andythenorth>but…it makes for very compact templating :P
01:53<andythenorth>no or obj.method( stuff
01:54*andythenorth removing CPP from FIRS slowly
01:56<@Alberth>it's not designed to do large scale complicated replacements
01:56<andythenorth>it’s a powerful tool that goes a long way fast :)
01:56<andythenorth>but when it hits the limit, it hits it quite hard
01:57<@Alberth>it is, but "working" and "the correct approach" are two different things, which are sometimes seemingly well aligned
01:58<@Alberth>I agree it's better to do without CPP, Python is a much more capable solution
01:58<@Alberth>at the cost of more work
01:58<andythenorth>removing it from here is quite tricky
01:59<andythenorth>all of the ‘var_leftover_cargo_1’ etc are CPP defines, mostly global
01:59<andythenorth>it’s technically trivial to do, but will make word soup :P
02:00<@Alberth>I'd keep it, probably
02:00<andythenorth>var_leftover_cargo_1 -> ${industry.get_perm_storage_num[‘var_leftover_cargo_1’]}
02:00<andythenorth>does not aid reading a complicated templated switch :)
02:01<@Alberth>yes, if you go all the way, things become unreadable
02:02<@Alberth>you could introduce new names in your ${} thingies
02:02<@Alberth>to make the templates more readable
02:02<@Alberth>but generated code is barely readable, and pretty much non-modifiable
02:03<@Alberth>keeping the #define improves things at that level
02:04<@Alberth>In C++, the general direction is to eliminate #define, and replace with "inline" functions and "const" variables
02:04<@Alberth>ie the C++ languages itself provides safer alternatives
02:06<andythenorth>chameleon has template local defines, so they’re in the root namespace within a specific template block
02:06-!-DDR [] has quit [Ping timeout: 480 seconds]
02:06<@Alberth>I once looked into NML having better templates, but it became very messy very fast
02:06<andythenorth>eg define=“var_leftover_cargo_1” and then use it as ${var_leftover_cargo_1}
02:06<@Alberth>too many hacks around the parser
02:07<@Alberth>local defines look nice
02:07<andythenorth>they’re generally frowned up by chameleon users, it creates annoying local indirection
02:07<andythenorth>it’s preferred to put them in the backing view / object
02:07<andythenorth>but eh
02:08<@Alberth>and local indirection is bad for computation costs?
02:08<andythenorth>bad for readability
02:08<@Alberth>ah, ok
02:08<andythenorth>if FIRS production code was simpler, this problem would go away :D
02:08<@Alberth>you have to be careful what to #define as well :)
02:09<@Alberth>although at the point of using ##, I think you're a few miles beyond that :)
02:10<@Alberth>I think to some extent, NML code isn't really designed from the higher level
02:11<@Alberth>it basically mirrors the action codes, and leaves combining the primitives to the user
02:12<andythenorth>I find it easy to template, because it’s exactly akin to templating html
02:12<andythenorth>which has the same issue
02:12<@Alberth>perhaps the higher level isn't really possible, as you'd cut of parts of the available design space
02:12<andythenorth>but the techniques for good html templating took 10 years to develop :P
02:13<@Alberth>ie you'd end up with grfmaker-ish solutions, in the extremely simple-ish case
02:13<andythenorth>yes: at first glance it looks easy to move NML up one level. Could define a vehicle object etc, and hide away all the code
02:13<andythenorth>but then the varaction2 chains....
02:14<andythenorth>I know how I’d re-design it, but I’m fairly certain I’d be wrong
02:15<@Alberth>tbh, I don't think 'switch' is a right primitive, an if-tree would be nicer
02:15<@Alberth>computer can generate switches
02:15<andythenorth>I find the switch syntax non-intuitive
02:16<@Alberth>yep, it maps directly on action2 sequences
02:16<andythenorth>tbh, if the complex FIRS switches hadn’t been written by pm, yxo, hirndo etc…I’d never have grokked how to do them
02:16<@Alberth>no code generation required there :)
02:17<andythenorth>expressions [] have remarkable power :P
02:17<@Alberth>I can see that, there is a lot of combined functionality hidden in the switch
02:18<@Alberth>but you'd want to write code more like plain imperative programming, eg Python function or C statements
02:19<andythenorth>it’s also a bit heavy on syntax
02:19<andythenorth>‘said the python programmer'
02:20<@Alberth>yeah, too much functionality packed in it
02:20<andythenorth>putting aside the syntax…
02:21<andythenorth>instead of FEAT_XXX and id
02:21<andythenorth>I would rather have wrapped entire blocks of nml in a scope
02:21<andythenorth>e.g. specific vehicle, industry, tile etc
02:22<andythenorth>this actually mirrors how most of nfo works when it comes to variable access
02:22<andythenorth>and it means the objects could be extend with props that aren’t in the nfo spec
02:22<andythenorth>and trivial templating could then be used
02:23*andythenorth should make a pate
02:23<andythenorth>paste *
02:25<@Alberth>makes sense
02:25-!-zeknurn [] has quit [Quit: bye]
02:31<andythenorth>it localises all switches etc; there would need to be a method to access global switches, as that’s an nfo feature which is occasionally very useful
02:37-!-tokai [] has joined #openttd
02:37-!-tokai is "Christian Rosentreter" on #openttd
02:37-!-mode/#openttd [+v tokai] by ChanServ
02:39<@Alberth>you just move FEAT_ROADVEHS up one level? or are the switch names now also limited in this scope?
02:39<@Alberth>(and other names, I guess)
02:40<andythenorth>switch names are limited in this scope
02:40<andythenorth>there would have to be a way to break out of that
02:40<andythenorth>but eh, most people would never need it, especially in vehicle sets
02:40<andythenorth>and people like MB who understand all this…have their own solutions
02:41<andythenorth>I wonder if it would be more performant, because there was a half-idea that figuring out switch IDs in a global namespace is slow
02:41<andythenorth>I dunno if that was profiled though
02:41<@Alberth>slow in nml, you mean?
02:42<@Alberth>wouldn't expect so, tbh
02:42<@Alberth>nml gets killed by too much copying of data
02:43*andythenorth did consider going back to nfo, and templating it with chameleon :P
02:43<andythenorth>it would be maybe 5x faster to compile
02:44<@Alberth>quite possibly a lot faster :)
02:44-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
02:45<andythenorth>somewhere my idea gets paired with simple ${name} templating
02:45<andythenorth>but I can’t figure out why that’s useful
02:46<@Alberth>you may end up with something like m4nfo
02:46<@Alberth>which is basically also just a big set of templates
02:47<andythenorth>ah, interesting. The majority of my chameleon use is something like ‘${}_some_switch_name’
02:47<andythenorth>because all switches must be named :P
02:47<andythenorth>the scope idea eliminates that need
02:48<@Alberth>it would indeed
02:48-!-zeknurn [] has joined #openttd
02:48-!-zeknurn is "Someone" on #openttd
02:48<@Alberth>it would also fix the need for ## in CPP :p
02:50<andythenorth>7 uses of ${stuff} just to create switch ids
02:50<andythenorth>10 even
02:50<andythenorth>7 other uses
02:50<andythenorth>ha if nml did ${some python code}
02:51<andythenorth>then the parser could call eval() on it
02:51<andythenorth>no risk there :P
02:52<@Alberth>there are ideas in newer pythons for doing such things with string formatting
02:52<andythenorth>you mean Template(), or something else? o_O
02:56-!-czaks [] has quit [Remote host closed the connection]
02:58<andythenorth>interesting :)
03:01<andythenorth>still not sure why templating is useful inside vanilla nml
03:01<andythenorth>now wondering if nml-native templating would make life more complicated for people applying their own templates
03:01<@Alberth>it eliminates CPP templating
03:02-!-czaks [~unspecifi@] has joined #openttd
03:02-!-czaks is "Unknown" on #oftc #openttd
03:03<@Alberth>ie no need for CPP any more, thus no mingw
03:03<andythenorth>in my example template here, nearly all the templating relates to managing IDs
03:03<andythenorth>which would be eliminated by a scope
03:05<@Alberth>local/global could be done by defining global names outside any scope
03:06<andythenorth>I’m not sure whether nml should go an extra step
03:07<andythenorth>and introduce prototypes
03:08<andythenorth>e.g. prototype (ROAD_VEHS, town_bus) { [properties and switches] }
03:08<@Alberth>isn't that just a template?
03:08<andythenorth>yes it is
03:08<andythenorth>I would expect to handle all that myself, using my preferred templating tools
03:08<andythenorth>but it might aid people who write out a lot of nml long-hand
03:09<@Alberth>add template facility to nml, and $someone can make a set of such templates
03:09*andythenorth thinks of the FIRS forks
03:09<andythenorth>GarryG and spiff are doing it the hard way, by modifying the nml output :P
03:09<@Alberth>yeah, your code generation is likely very much magic to a lot of people
03:09<andythenorth>it’s not even nicely formatted for them :P
03:09<andythenorth>3iff / spiff /s
03:11<@Alberth>Well, it's easy to understand, it just takes time to change things
03:11<andythenorth>it’s yak-shaving :)
03:11<@Alberth>We have not that much patience, so we resort to magics :)
03:12<andythenorth>they get bugs because they are manually maintaining 40 identical switches :)
03:12<@Alberth>sure, and without even the basic understanding of what things do
03:13<@Alberth>so I think it's amazing they get anything done
03:13<@Alberth>not sure if a template would improve things there
03:14<@Alberth>I mean, if you don't know NML, adding a template language layer on top of it would improve things?
03:14<andythenorth>it requires the understanding of what’s common and what’s not
03:14<andythenorth>and if the templates can’t be broken up further into sub-templates / macros, then it’s hard to get proper reuse
03:14<@Alberth>somewhat, I think NML could do stuff there as well
03:14<andythenorth>I think it’s hard to win
03:15<@Alberth>nfo is a complicated language
03:15<@Alberth>much more complicated than eg C or Python
03:15<@Alberth>all kinds of dedicated purpose constructs
03:16<andythenorth>scopes, I see no downside; nml-native templating, might be a tarpit
03:16<@Alberth>nml-native templating just kills CPP, nothing more
03:16<@Alberth>and for people like you, it has no value, as you prefer your own stuff
03:17-!-supermop_home [] has joined #openttd
03:17-!-supermop_home is "Guest" on #tycoon #openttd
03:17<andythenorth>constant-subsitution (with local / global scope), might be useful
03:17<@Alberth>I wonder though, how much CPP would you need with scopes?
03:17<andythenorth>it it can be made easy to understand
03:17-!-czaks_ [] has joined #openttd
03:17-!-czaks_ is "Unknown" on #oftc #openttd
03:18<@Alberth>it would mostly become a sequence of #include
03:18-!-czaks [~unspecifi@] has quit [Read error: Connection reset by peer]
03:18<andythenorth>CPP tends to be useless for the id stuff, it requires variadic macros which are bad
03:18<andythenorth>I think CPP is mostly being used for #include and constant substitution
03:19<@Alberth>so you'd need a "const myvalue = 1+3;" like thing?
03:19<andythenorth>constant substitution is helpful for things like “self.label_refits_allowed = ['FRUT','WATR’]” where that is shared by 10 vehicles
03:20<andythenorth>self.label_refits_allowed = {global_edibles_tankers}
03:20<andythenorth>or something
03:20-!-supermop_ [] has joined #openttd
03:20-!-supermop_ is "Guest" on #tycoon #openttd
03:21<@Alberth>const edibles_cargoes = ['FRUT', 'WATR']; self.label_refits_allowed = edible_cargoes;
03:22<andythenorth>w.r.t includes, I am agnostic
03:22<andythenorth>I would always prefer to write my own compile, so I’m not a good person to specify
03:22<andythenorth>but actually the #include format seems pretty straightforward, as long as circular refs are banned
03:23-!-supermop [] has quit [Ping timeout: 480 seconds]
03:23<@Alberth>CPP allows them, but runs out of stack space for circular references :)
03:24<andythenorth>hmm, #include for e.g. an entire vehicle in one file is intuitive
03:24<andythenorth>with one master file that assembles them
03:24<andythenorth>it could also be used for fragments of code, by people who make that leap
03:24<andythenorth>it wouldn’t be formalised templating, nor would it break
03:24<@Alberth>gives very loooooong error messages ("out of stack at line x of file bla, included from line y of file bla .....")
03:25<andythenorth>so the problems seem to be:
03:25<andythenorth>- switch syntax
03:25<andythenorth>- managing IDs (yak-shaving)
03:25<andythenorth>- constant substitution
03:25<andythenorth>- templating
03:25<andythenorth>- file inclusion
03:26-!-supermop_home [] has quit [Ping timeout: 480 seconds]
03:27-!-Biolunar [] has joined #openttd
03:27-!-Biolunar is "Biolunar" on #openttd #suckless
03:28<andythenorth>templating I think is non-winnable
03:28<andythenorth>and I am on the fence about file inclusion
03:29<@Alberth>is pretty simple to hook into the parser, normally
03:29<@Alberth>except it's currently useless, as CPP does it all
03:30<@Alberth>and current parser of NML has too much magic
03:30<andythenorth>I find it magical :)
03:30<andythenorth>the rest of nml is pretty easy
03:30<andythenorth>it’s just a giant set of substitutions :P
03:34<@Alberth>:o I have the reverse experience :)
03:34<@Alberth>I can see how the parser works, everything else looks like magic :)
03:34<andythenorth>I understand conceptually that it must build a tree of objects
03:35-!-Samu [] has joined #openttd
03:35-!-Samu is "OFTC WebIRC Client" on #openttd
03:35<Samu>hi to all~
03:36<@Alberth>hi hi
03:36<@Alberth>don't try to understand how the parser internals work, it's magic :)
03:37<@Alberth>just understanding how the rules and the code attached to the rules work is enough
03:37<Samu>what? me?
03:37<Eddi|zuHause>parsers are a solved problem, they basically did not change since the 70s...
03:38<@Alberth>false, there are developments in stronger parser algorithms
03:38<Eddi|zuHause>you just feed them a set of rules, and they build you a tree
03:38<@Alberth>LALR(1) does impose some limits that you don't always want
03:38<Eddi|zuHause>Alberth: details :p
03:39<@Alberth>oh :)
03:39<@Alberth>let's talk again after you embedded eg SQL in C++ or so, eh? :D
03:40<@Alberth>switching between languages in the middle of programs is very useful, but standard parser technology can barely handle a single language
03:41<@Alberth>afaik that is where a lot of parsing research is aiming for
03:41*andythenorth biab
03:41-!-andythenorth [] has quit [Quit: andythenorth]
03:41-!-ConductorCat [] has quit [Ping timeout: 480 seconds]
03:47-!-FLHerne [] has joined #openttd
03:47-!-FLHerne is "Francis Herne" on #openttd
03:47-!-ConductorCat [] has joined #openttd
03:47-!-ConductorCat is "realname" on #openttdcoop #openttd
04:05-!-Supercheese [] has quit [Quit: Valete omnes]
04:07-!-synchris [~synchris@] has joined #openttd
04:07-!-synchris is "Synesios Christou" on #openttd
04:09-!-andythenorth_ [~andytheno@] has joined #openttd
04:09-!-andythenorth_ is "andythenorth_" on #openttd
04:15-!-smoke_fumus [] has quit [Quit: KVIrc 4.2.0 Equilibrium]
04:15-!-Progman [] has joined #openttd
04:15-!-Progman is "Peter Henschel" on #openttdcoop #openttd
04:18-!-andythenorth_ [~andytheno@] has quit [Remote host closed the connection]
04:21-!-Alberth [] has left #openttd []
04:29-!-andythenorth_ [~andytheno@] has joined #openttd
04:29-!-andythenorth_ is "andythenorth_" on #openttd
04:32-!-gelignite [] has joined #openttd
04:32-!-gelignite is "gelignite" on #openttd #openttdcoop.devzone
04:32-!-andythenorth_ [~andytheno@] has quit [Remote host closed the connection]
04:42-!-HerzogDeXtEr [] has joined #openttd
04:42-!-HerzogDeXtEr is "purple" on #openttd
04:47-!-andythenorth_ [~andytheno@] has joined #openttd
04:47-!-andythenorth_ is "andythenorth_" on #openttd
04:50-!-andythenorth_ [~andytheno@] has quit [Remote host closed the connection]
04:51<Samu>I did it! but a small issue
04:51<Samu>the line describing kirby paul is too big
04:52<Samu>look at train 1 details
04:52<Samu>running cost of kirby paul doesn't fit on a default sized window
04:52<Samu>what can i do?
04:53<Samu>and it looks like i have another problem, running cost of bus is £0 for some weird reason
05:00-!-Wolf01 [] has joined #openttd
05:00-!-Wolf01 is "Wolf01" on #openttd
05:05<Samu>plz explain me what is this doing exactly?
05:05<Samu>virtual Money GetRunningCost(bool single_part = false) const { return 0; }
05:06<Samu>when trying to get the running cost of a bus, I get this function doing a return 0
05:07<Wolf01>Mmmh, html2text, how should I convert <p> vs <br/>?
05:08<Samu>isn't <br> a enter or a paragraph?
05:08<Samu>i forgot
05:08<Wolf01><p> is paragraph
05:09<Wolf01>I need to check what richtextbox allows
05:10<Wolf01>Mmmh textBox1.Text = generatedCode.Replace("\n", Environment.NewLine);
05:11<crem>Any german speakers online? "Wir haben genug Zeit, um den Zug zu bekommen." <- isn't "um" here a mistake?
05:11<crem>Sorry for a bit of offtopic. :)
05:11<Wolf01>Lol... this channel IS offtopc
05:13<Samu>code expert needed
05:14<Samu>the problem that I have is that I wanted to make GetRunningCost() for trains to be different than the others (ship, aircraft, road vehicle)
05:15<Samu>it appears to be working good for trains now, but all other vehicle types are getting a 0 in running costs, where did I fail
05:23-!-andythenorth [] has joined #openttd
05:23-!-andythenorth is "Andy" on #openttd
05:24-!-sla_ro|master [] has quit []
05:28<Wolf01>Now the most difficult part... I need a name for a class which handles text manipulation
05:28<Wolf01>Names are always the most difficult part for devlolopers
05:29<andythenorth>write a name generator
05:29<Wolf01>Already done :P
05:30<andythenorth>name all classes starting at ‘a’
05:30<Wolf01>But not suitable for this
05:30<andythenorth>then ‘aa’
05:30<andythenorth>when you get to z
05:30<Wolf01>That's code obfuscations
05:30<andythenorth>I have employed more than one person who wrote that way
05:30<andythenorth>‘it was more efficient’
05:31<Wolf01>Did you had to kill them?
05:35<andythenorth>so are we re-writing nml? o_O
05:36<Wolf01>I would like a more evocative name, some verb transformed to noun maybe, like the classic "inflector"
05:36<Wolf01>Textor is meh XD
05:36<andythenorth>ah alberth left
05:37<andythenorth>nml rewrite paused then :P
05:40<Wolf01>Stringulator (from strangulator)?
05:50-!-Stimrol [] has joined #openttd
05:50-!-Stimrol is "Stimrol" on #openttd
05:52<andythenorth>is it a simple method, or a complex tool?
05:57<Wolf01>A class with a collection of static functions to manipulate text
05:57<Wolf01>Like stripping html tags, replacing br to newlines...
05:58<andythenorth>if in doubt, add ‘utils’ :P
05:58<andythenorth>every project has a ‘utils’ file of shame
05:58<Wolf01>I have a Utils folder of shame
06:11<Wolf01>Mmmh... textixulator... nah too weird
06:21<Samu>Wolf01: - pretty huh?
06:21<andythenorth>I gave up novelty names
06:22<andythenorth>less brain on names, more brain for writing less code
06:22<Samu>only the Armoured Van does not have a running cost by default, I calculated it for it
06:22<Wolf01>Samu, I hope running costs don't change with length and engines, btw it seem good
06:22<Samu>it does :(
06:22<Samu>i'm mixing newgrfs
06:23<Samu>see the end result
06:23<Wolf01>Also why the running cost is 5 times the value of the wagon?
06:23-!-Progman [] has quit [Remote host closed the connection]
06:23<Wolf01>I'll sell the wagon and wtf valuables
06:23<Samu>it's exposing a flaw in my formula
06:24<Wolf01>Because you insist on getting the cost from weird values
06:24<Samu>yeah :( I notice
06:25<Samu>on the right, the train is stopped (one of the newgrfs halves the running cost of stopped vehicles)
06:25<Wolf01>Right values are: purchase price, value, refit (one cargo type might cost more than another because it ruins faster the wagon), age
06:26<Wolf01>"7k -> 5k" halved...
06:27<Samu>that's the wagon that doesn't specify a running cost
06:27<Wolf01>Also try your change with 8k trains, let's see how good it performs with calculating ~8k wagons
06:27<Samu>yeah, i'm wondering how i'm going to fix this
06:27<Wolf01>By caching it
06:28<Wolf01>But you don't want to cache it
06:29<Samu>it's hard because a stopped "vehicle" with reduced costs is actually a property on the engine
06:29<Samu>talking about nars
06:29<Samu>nars wagons don't have reduced costs
06:29<Wolf01>It's hard because you chose the hard and weird path to do it in a wrong way
06:29<Samu>it's still full price
06:30<Samu>my simulation of halved price is taking effect, but the results i'm seeing are not what I was looking for
06:33<Samu>i believe the flaw is that I'm summing the running costs of all parts regardless if they're wagons or not. I suppose I have to exclude running costs of wagons from the formula, only count it from engines
06:33<Wolf01>But why?
06:36<Wolf01>I already show you a possible right way to do it, I wont help you further on your nonsense as you are completely discarding my suggestions
06:37<Samu>yeah, I'm a bit alone on this
06:37<Samu>it's ok
06:43<andythenorth>why do nml + nfo docs refer to temp registers as ‘storage’ :P
06:44<Wolf01>My friends voted for Texticulator
06:44<Wolf01>I should never ask friends
06:44<andythenorth>that is definitely wrong sounding in English
06:44<Wolf01>Even in italian
06:45<andythenorth>‘industry.perm_register_nums.var_ratio_cargo_1’ would be neater as ‘industry.storage_nums.var_ratio_cargo_1'
06:45<andythenorth>but I have to piss around distinguishing temp and perm storage
06:48<Wolf01>What are used for?
06:48<andythenorth>industries have 16 registers that persist in savegames
06:49<andythenorth>and varaction2 chains have registers that are transient, and exist whilst the chain is executed
06:50<Wolf01>"saved and local"?
06:50<Samu>looks like it's working as intended after all
06:51<Samu>only a tiny fraction of the train doesn't have a running cost, and it is basing it on a big fraction
06:51<Samu>it looks wrong though
06:52<Samu>and i already know what you told me, you disagree with it
06:56-!-Alberth [] has joined #openttd
06:56-!-Alberth is "purple" on #openttd
06:56-!-mode/#openttd [+o Alberth] by ChanServ
06:57-!-JacobD88 [] has joined #openttd
06:57-!-JacobD88 is "JacobD88" on #openttd.notice #openttd
07:00<Samu>never higher than the sum of all the other parts
07:03<Samu>i can see now why a user-defined parameter could be useful
07:03<Samu>to adjust costs that "make no sense"
07:14<andythenorth>Alberth: (FWIW) I replace the defines thus (with dumb class on the industry that stores register nums on properties)
07:14<andythenorth>hardly news, but I felt the need to share :P
07:15<andythenorth>“ain’t finished yet neither"
07:17<Samu>Wolf01: - it's currently based on _settings_game.vehicle.max_train_length
07:17<Samu>from 1 to 64
07:17<Samu>looks better now
07:17<@Alberth>looks much nicer than the dictionary access stuff, andy
07:18<andythenorth>it’s over-engineered probably though :P
07:19<@Alberth>oh, clean code to work in also counts :)
07:19-!-FLHerne [] has quit [Quit: There's a real world out here!]
07:51<andythenorth>such compile times :P
07:51<andythenorth>very wow
07:52-!-supermop [] has joined #openttd
07:52-!-supermop is "A CIRC user" on #openttd #tycoon
07:52<andythenorth>FIRS was 50s or so, then I added Steeltown
07:52<andythenorth>and some extra switches too
07:52<andythenorth>now it’s 1m15s or so
07:57-!-supermop__ [] has quit [Ping timeout: 480 seconds]
08:15<@Alberth>add another economy, and you can drink tea while waiting :)
08:16<andythenorth>ach, I should use the single industry compile
08:20<andythenorth>15s :P
08:46-!-andythenorth [] has quit [Quit: andythenorth]
08:48-!-frosch123 [] has joined #openttd
08:48-!-frosch123 is "frosch" on #openttdcoop.devzone #openttd
08:48-!-Gja [] has joined #openttd
08:48-!-Gja is "Martin" on #bcache #openttd
08:55<crem>Are you a german speaker by any chance?
08:55<frosch123>i can quak
08:56<@Alberth>and translate them to english
08:56<@Alberth>ha, nice sign :)
09:09<Samu> - off and on, yay, it's werking
09:10<Samu>help me at english
09:12-!-gelignite [] has quit [Quit:]
09:15<Samu>STR_CONFIG_SETTING_RUNNING_COSTS_TRAIN_EXTRA_HELPTEXT :When enabled, extra running costs are added for parts of a consist in a train that do not specify a running cost, such as wagons from the original game.
09:16<Samu>is this good english, bad english, how would you fix it
09:17<@Alberth>why do people insist on trying to fix original game data?
09:18<Samu>because they like the original game
09:18<@Alberth>obviously you don't, as you're modifying it
09:20-!-HerzogDeXtEr1 [] has joined #openttd
09:20-!-HerzogDeXtEr1 is "purple" on #openttd
09:21-!-innocenat [] has quit [Ping timeout: 480 seconds]
09:21<@Alberth>but english seems good enough to me
09:21-!-innocenat [] has joined #openttd
09:21-!-innocenat is "innocenat" on #openttd #openttdcoop
09:21<@Alberth>somewhat pondering on the "a consist in", which seems a bit long and not adding much, but fair enough
09:22<Samu>good idea
09:22<@Alberth>but really, make a newgrf, using the original vehicles, and overriding the wagon costs
09:22<@Alberth>that instantly works everywhere
09:23<Samu>i'm not sure it would achieve the same goal
09:24-!-HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
09:25<Samu>i don't know ... maybe it can
09:26<supermop_>good morning
09:26<Samu>the extra cost is based on the cost of other parts which do have a cost, dunno if the newgrf allows me to do this
09:27<Samu>it's not a fixed value that I place on a table
09:29<frosch123>do we have a static hashtable implementation in ottd?
09:31<Eddi|zuHause>something hash-y was with vehicle collision detection
09:36<Samu>Alberth: - not a fixed value
09:39<Samu>i'm happy that i made it this far
09:39<Samu>4 years ago was when I had the idea
09:40<Samu>now i just need a user-defined variable for better customization
09:46-!-Wormnest [] has joined #openttd
09:46-!-Wormnest is "Wormnest" on #openttd
09:56-!-sla_ro|master [] has joined #openttd
09:56-!-sla_ro|master is "slamaster" on @#sla #openttd #love
10:05-!-sim-al2 is now known as Guest179
10:05-!-sim-al2 [] has joined #openttd
10:05-!-sim-al2 is "sim-al2" on #openttd @#/r/openttd
10:10-!-Guest179 [] has quit [Ping timeout: 480 seconds]
10:27-!-maciozo [~maciozo@2a03:8600:1001:1034::1013] has joined #openttd
10:27-!-maciozo is "maciozo" on #openttd
11:03-!-JacobD88 [] has quit [Quit: JacobD88]
11:10-!-gelignite [] has joined #openttd
11:10-!-gelignite is "gelignite" on #openttd #openttdcoop.devzone
11:13<Wolf01>Ha! frosch123, you called it
11:15<Wolf01>supermop I think it would be better to add some info on how to use it, like "you need to download the RATT build (link)"
11:17<supermop_>and some screenshots maybe
11:18<supermop_>ill put some up/ make a release thread today after I do my taxes
11:43<supermop_>Wolf01: ive been think a lot lately about tram overlays
11:44<supermop_>abiut the various types of tramway people might want to see, without using up all 15 slots
11:46<supermop_>basically for 'tramway' (that is light rail in a roadway), there is either the kind where the asphalt or stone blocks etc are build up over the trackbed, so you just see the rails set into the road surface. this seems to be what most people think of
11:47-!-czaks_ [] has quit [Remote host closed the connection]
11:47<supermop_>there is also the kind where the track are set into a concrete slab, and that slab is the road surface between the rails, but it is asphalt outside of the rails, which seems to be common on most newly built or refurbished lines
11:48<Eddi|zuHause>i suppose taking out the slab is easier in case of track maintenance
11:48<supermop_>making the concrete part of the overlay then means that you must have the slab even when the light rail is not in a road
11:49<supermop_>which some lines seem to have but not all
11:49<Samu>my unglish, :(
11:50<Eddi|zuHause>also i don't know about "newly built"... these concrete slabs definitely have been around in the 80s
11:50<supermop_>Eddi|zuHause true, in melbourn about half of the track that is unrestored since the 80s also looks like that
11:50<supermop_>but nits not universal
11:50<supermop_>its not
11:51<Samu>looking for english expert
11:51<Eddi|zuHause>i know lots of brand new lines that have been redone with asphalt, not a slab
11:51-!-czaks [] has joined #openttd
11:51-!-czaks is "Unknown" on #oftc #openttd
11:51<supermop_>also pre-1960s in the us I never seen a photo of that concrete slab, but the newer light rails of the 90s and 00s seem to all have it here
11:52<Samu>STR_CONFIG_SETTING_RUNNING_COSTS_TRAIN_EXTRA_DIVISOR_HELPTEXT :When the setting 'extra running costs for trains' is enabled, this divisor allows for better fine-tunning the desired running cost result. A lower divisor results in a higher cost. A higher divisor results in a lower cost. When set to Auto, the divisor will be based on the current game value set for 'maximum length of trains' instead.
11:52<Samu>is this good englisho?
11:52<supermop_>samu it is fine
11:53<Eddi|zuHause>anyway, the concrete slab problem can only be solved if you have different overlays depending on whether there is a road or not
11:54<supermop_>some less technically literate English speakers may be less familiar with the term 'divisor' but you aren't going to be able to explain such a technical concept to them in one string anyway
11:54<supermop_>Eddi|zuHause yeah that's what I am thinking
11:54<supermop_>also there are maybe several different user expectations for a light railway inside a town, without road
11:55<supermop_>does it look like a light railway with ballast and ties, and maybe future fences when nrt supports them?
11:55<supermop_>is it a tramway set in a bare concrete slab? is it a tramway set into a pedestrian mall?
11:56<supermop_>is it a tramway set into grass?
11:56<supermop_>all but one of those need the overlay to be just rails
11:57<Eddi|zuHause>... off-road trams also come in variants with wood sleepers, concrete sleepers sleeperless concrete or embedded in dirt or grass
11:57<Eddi|zuHause>and yes, pedestrian zones come in all shapes and colours
11:58-!-Biolunar [] has quit [Quit: leaving]
11:58<supermop_>of course I can just pick whatever i want to draw and let other authors create newgrfs with their own preference
11:59<supermop_>also 'pedestrian mall' could be a road type
11:59<supermop_>so that type of tramway is created by superposition of pedestrian walkway and light rail
12:00<Eddi|zuHause>pedestrian zone can only be travelled by rollerskate and segway vehicles?
12:01<Eddi|zuHause>the "pizzabote" definitely needs to go there
12:01<supermop_>those golf cart sized street sweepers too
12:01<Samu>Extra running costs for trains' divisor
12:01<Wolf01>To me the problem is when you want to make a roadtype without catenary and with catenary, you occupy 2 slots
12:01<Eddi|zuHause>("pizzabote" is some old eye-candy vehicle grf)
12:02<supermop_>Wolf01yeah it's a pain
12:02<Samu>supermop_: what about the other line?
12:02<Eddi|zuHause>Wolf01: uhm, sure, but whether you add a flag "with catenary" or you just extend the slots by 1 bit doesn't really matter
12:02-!-Snail [] has joined #openttd
12:02-!-Snail is "Jacopo Coletto" on #openttd
12:02<supermop_>to add a under-road conduit power takes a third type
12:02<Wolf01>Also it makes really confusing when you place a non electric tramway over a trolleybus road
12:03<Samu>"Extra running costs for trains' divisor" or "Divisor for extra running costs for trains" ugh... my english
12:03<Eddi|zuHause>Wolf01: why is that confusing?
12:03<supermop_>noticed that yesterday junction of tramway and elrd shouldn't draw the grand union catenary
12:03<Wolf01>With the flag Eddi is talking about I tried to add catenary as infrastructure, so it could be used for both roadtypes at the same time
12:03<supermop_>just a x
12:04<supermop_>Wolf01 to be fair trams cannot use trolleybus wires and vis versa
12:04<Samu>STR_CONFIG_SETTING_RUNNING_COSTS_TRAIN_EXTRA_DIVISOR :Extra running costs for trains' divisor: {STRING2}
12:04<supermop_>one in 1 conductor, other is 2
12:05<Wolf01>Actually, you can't run electric tram in ELRD+RAIL
12:05<supermop_>Wolf01yes that is correct to real life though
12:06<Wolf01>And the same happen for ROAD+ELRL for trolleybus
12:06<Wolf01>Simply the game doesn't support it
12:06<supermop_>trolleybus cannot use single wire catenary
12:06<supermop_>because cannot use rails for DC return
12:07<Wolf01>No, I'm not talking about realism, road vehicle can't use tram catenary
12:07<supermop_>which is realistic
12:07<supermop_>that's kind of why I made unspooled, so bus and tram wires look different
12:07<Wolf01>But you can have ELRD+ELRL
12:08<Eddi|zuHause>Wolf01: that's a problem that doesn't need solving. everything is fine
12:08<Wolf01>With ELRD taking precedence
12:08<supermop_>that exists on some streets in seattle
12:08<supermop_>it creates quite a visual mess
12:09<Wolf01>Eddi, you can't tell without infotool if your electric tram can run in that tile
12:09<Wolf01>Because it might be ELRD+RAIL
12:09<supermop_>that's why I made visually distinct sprites
12:10<supermop_>ELRD wire in unspooled has two wires
12:10<Wolf01>ELRD+ELRL use ELRD catenary
12:10<Wolf01>So you need to change tracks
12:10<supermop_>ideally it should draw both
12:10<Eddi|zuHause>supermop_: but even with different sprites you can't distinguish ELRD+RAIL and ELRD+ELRL
12:11<Eddi|zuHause>supermop_: drawing both causes too many glitches/corner cases
12:11<supermop_>Eddi|zuHause I was hoping game would draw both
12:11<Eddi|zuHause>supermop_: besides the wires, you would draw two sets of poles
12:12<supermop_>at least in my sprites the poles overlap
12:15<supermop_>i'd rather have to remember or use ? tool than have electric trams running on bus wire tho
12:18<Wolf01>It's not even possible to make eltrams to run on bus wire, so the question is closed, the open question is "wtf my eltram does not run there?"
12:20<supermop_>other than drawing both wires, is there any solution?
12:20<Wolf01>Actually, no
12:20<Wolf01>Only the infotool
12:22<Eddi|zuHause>man, for months now i've been meaning to make a backup and update my system, but i'm never actually doing it...
12:24-!-glx [] has joined #openttd
12:24-!-glx is "Loïc GUILLOUX" on #openttd
12:24-!-mode/#openttd [+v glx] by ChanServ
12:25-!-Montana [] has joined #openttd
12:25-!-Montana is "New Now Know How" on #openttd
12:25<@Alberth>eddi: tonight seems like a good evening for it
12:41<Samu>describing functions takes so much of my time t.t
12:41<Samu> * @param single_part whether to return the cost of the current part or the whole
12:48-!-andythenorth [] has joined #openttd
12:48-!-andythenorth is "Andy" on #openttd
12:49<andythenorth>so an nml rebuild? o_O
12:49<Wolf01>Andy, do you have any suggestion about last hour log?
12:50*andythenorth will read
12:53<andythenorth>coloured wires
12:53<andythenorth>an overlay for the map showing valid routes
12:54<andythenorth>a transparency mode that palette shifts all tiles of a specific route type
12:54<Wolf01>Any feasible things?
12:54<andythenorth>an additional ‘high visibility’ sprite in the newgrf spec that can be toggled on and off
12:54<Wolf01>Remove the log?
12:54<andythenorth>I want that for industry cargo acceptance and production also
12:54<andythenorth>toggleable info sprites
12:55<andythenorth>like a metadata layer
12:55<andythenorth>TTRS does something like that with house acceptance I think
12:55<Wolf01>I just want to show stations catchement areas for production and acceptance instead :(
12:56<Wolf01>And fix station walking catchement areas, just to create havok
12:58<andythenorth>bus != tram, so yes, the powered-or-not is moot
12:58<andythenorth>it’s just a visual question about catenary sprites
13:00<Wolf01>ELRD+ELRL is weird, we could implement that you can't have both, so you can at least recognize it by poles... but what about crossings? If it's possible ELRL(tram)+ELRL(train) crossing it should be possible also for ELRD+ELRL
13:01<andythenorth>colour the road
13:01<andythenorth>then it’s obvious
13:01<Wolf01>Paint something like a reserved lane?
13:03<Wolf01>Which is not really reserved...
13:03<Wolf01>TL;DR color-coded roads
13:03<Wolf01>Must go, my people needs me
13:09<andythenorth>so checks eh?
13:09*andythenorth wonders why L80-98 exist
13:16-!-ZirconiumX [] has joined #openttd
13:16-!-ZirconiumX is "Dan Ravensloft" on #openttd
13:21<@Alberth>otherwise lines 80-98 would be missing :p
13:23-!-santzee [] has joined #openttd
13:23-!-santzee is "OFTC WebIRC Client" on #openttd
13:23<andythenorth>good answer
13:23<andythenorth>I was hoping I could make a dict of incompatible grfs and template them trivially
13:24<andythenorth>but eh, there’s magic, so no
13:24<@Alberth>apparently checks if eg 'CaCa' grf will become active, and check for some parameter value
13:24<santzee>can anyone tell me how to allow udp and tcp packets
13:24<@Alberth>you'd have to check the docs of that grf to see what that parameter does
13:25<@Alberth>likely it messes with something industry-ish
13:25<andythenorth>I wonder why not just ban those grfs :P
13:25<andythenorth>planetmaker might know?
13:25<@Alberth>perhaps they are harmless if that parameter is not set in the indicated way
13:26<andythenorth>probably :)
13:26<andythenorth> (related) is it a makefile kind of day?
13:26<@Alberth>and some fans like to use that grf with firs
13:26<@Alberth>oh, it could be a makefile day
13:26<@Alberth>or rather, evening :)
13:26<frosch123>what was again the command to make python3 determinsitic?
13:27<@Alberth>python3 --help doesn't say?
13:28<@Alberth>yeah, after typing the reply, I remembered it was a env var :)
13:28<frosch123>the result of compile firs is indeterminstic
13:28<frosch123>it seems to reorder translations or something
13:29<andythenorth>Alberth was your idea to make a new generic makefile for devzone projects? o_O or just my projects? o_O
13:29<frosch123>it thought we fixed that already
13:29<@Alberth>santzee: we can give you the port numbers, but how to configure your modem and firewall, no idea
13:29<santzee>yes i know the portnumber 3979?
13:29<@DorpsGek>frosch123: OpenTTD uses TCP and UDP port 3979 for server <-> client communication, UDP port 3978 for masterserver (advertise) communication (outbound), and TCP port 3978 for content service, a.k.a. BaNaNaS (outbound)
13:29<@Alberth>it follows master language
13:30<@Alberth>so all translations use the same order of strings
13:32<frosch123> <- it seems to reorder cases/genders/plurals
13:32<andythenorth>which lang is that? o_O
13:33<frosch123>many :)
13:33<frosch123>i just picked one example
13:33<frosch123>i also invoke nmlc directly, so it's not related to your python magic
13:33<@Alberth>I think they got sorted
13:34<frosch123>andythenorth: btw: "nmlc info: DCxx strings: 233/2048" <- firs is again completely unfinished
13:34<@Alberth>oh, nml compiler rather than eints
13:34<andythenorth>ha ha
13:34<andythenorth>now I’ll have to keep going :P
13:35<@Alberth>andy, your makefile would be a good start I think
13:35<andythenorth>I would suggest the Road Hog or Iron Horse one first
13:35<frosch123>andythenorth: i think the idea of a "generic makefile" is silly
13:35<@Alberth>universal is so tricky due to all the weird stuff people do :p
13:35<andythenorth>frosch123: +1
13:35-!-DDR [] has joined #openttd
13:35-!-DDR is "David" on #openttd
13:35<andythenorth>the FIRS makefile has baggage
13:35<frosch123>if you want to make it work with everything, you make it that complicated that it works nowhere :p
13:35<andythenorth>otoh, the FIRS one has an extra target for html_docs
13:36<andythenorth>frosch123: this is why I never tried to make the python stuff reusable by other people :P
13:36<@Alberth>frosch123: nah, it works for exactly your cases :p
13:36<andythenorth>in principle I’ve made an object framework for grfs
13:36<andythenorth>but eh, no
13:36<frosch123>i got used to Makefiles being broken on most devzone projects, i always run hg purge before compilation
13:37<andythenorth>hmm did I branch Road Hog for NRT?
13:37<@Alberth>right, some hogs or horse thus
13:37<andythenorth>I think Horse
13:37<@Alberth>likely it's simpler than generating c++ from Python :p
13:38<andythenorth>likely :)
13:38<andythenorth>whether to reduce the current Makefile, or start afresh?
13:39<andythenorth>I only use [no target], ’clean’, ‘install’, and ‘html_docs’ (if it exists)
13:39<@Alberth>first update, and try to build the horses :)
13:40<andythenorth>‘roster=pony’ will make it faster
13:41<@Alberth>clearly, "make distclean; make" doesn't work :p
13:41<@Alberth>target wasn't used much recently :)
13:41-!-santzee [] has quit [Remote host closed the connection]
13:42<andythenorth>works for me o_O
13:43<@Alberth>iron horse has no DCxx strings at all, seems finished thus :p
13:43<@Alberth>1542:5dda61867b1b <-- that revision?
13:43<@Alberth>not that it matters much with makefiles
13:44<andythenorth>yup 1542
13:44<andythenorth>not happy if do ‘make clean’ first though
13:45<@Alberth>what targets does it need to support, eg from compile farm?
13:45<@Alberth>or just use default gnu targets?
13:45<@DorpsGek>Commit by translators :: r27765 trunk/src/lang/russian.txt (2017-03-04 19:45:36 +0100 )
13:45<@Alberth>iirc that's was you talked about last time
13:45<@DorpsGek>-Update from Eints:
13:45<@DorpsGek>russian: 4 changes by Lone_Wolf
13:45<andythenorth>I would push a minimal set and see what breaks
13:45-!-FLHerne [] has joined #openttd
13:45-!-FLHerne is "Francis Herne" on #openttd
13:45<andythenorth>jenkins will tell us / me
13:46-!-Montana [] has quit [Read error: Connection reset by peer]
13:47<andythenorth>seems that Makefile.config and could be folded together?
13:49<@Alberth>I had just decided to remove Makefile.config :)
13:49<@Alberth>I haven't opened yet
13:51<@Alberth>Interesting filenames do you use: 'SW9 .psd' a space before the "."
13:54<andythenorth>fat fingers
13:57<frosch123> <- seems to fix it
14:00<@Alberth>that looks right
14:11<@Alberth>do you have projects that use CPP ?
14:13<andythenorth>IH, RH, Sam don’t
14:14<supermop_>fyi Andy, I have to keep deleting newer trunk hog to use nrt hog
14:14<supermop_>maybe give it a different ID or something?
14:15<andythenorth>that could work, but is liable to mistakes when I release it
14:15<andythenorth>probably will ship it with wrong ID :P
14:16<supermop_>I want Xs between ELRD and ELRL to use a separate X catenary instead of union
14:16-!-Snail [] has quit [Quit: Snail]
14:17-!-Snail [] has joined #openttd
14:17-!-Snail is "Jacopo Coletto" on #openttd
14:17-!-Snail [] has quit []
14:17-!-Snail is "Jacopo Coletto" on #openttd
14:17-!-Snail [] has joined #openttd
14:18-!-Snail [] has quit []
14:18-!-Snail [] has joined #openttd
14:18-!-Snail is "Jacopo Coletto" on #openttd
14:19-!-Snail [] has quit []
14:19-!-Snail is "Jacopo Coletto" on #openttd
14:19-!-Snail [] has joined #openttd
14:19-!-Snail [] has quit []
14:20-!-Snail [] has joined #openttd
14:20-!-Snail is "Jacopo Coletto" on #openttd
14:20-!-Snail [] has quit []
14:21<andythenorth>such Snail
14:21-!-Snail is "Jacopo Coletto" on #openttd
14:21-!-Snail [] has joined #openttd
14:21<@Alberth>pretty quick, for one :)
14:21-!-Snail [] has quit []
14:21-!-Snail [] has joined #openttd
14:21-!-Snail is "Jacopo Coletto" on #openttd
14:22-!-Snail [] has quit []
14:22<@Alberth>wasn't there some script to derive repo revision, branch, modified flag, etc?
14:23<@Alberth>don't think that's the script :p
14:23<@Alberth>spiders have invaded the cities!
14:24<andythenorth>Alberth: some of it goes in custom_tags.txt
14:24<andythenorth>directly from Makefile iirc
14:24<@Alberth>I know, but there is a load of shell crap in the makefile to decide these things
14:24<@Alberth>I'd like to move that out of the makefile
14:24<supermop_>if there are no ELRD bits to east and west of junction, and no ELRL bits to north and south,
14:25<supermop_>it would be nice for game to either use a special X sprite, or to just overlay the ELRL \ and the ELRD /
14:26-!-Montana [] has joined #openttd
14:26-!-Montana is "New Now Know How" on #openttd
14:28<@Alberth>you change the makefile to set a roster?
14:28<@Alberth>or do you use a parameter, like make ROSTER=british
14:28<supermop_>andy, any thoughts or sprites, speeds, or costs?
14:29<frosch123>Alberth: other devzone projects moved to using the last-modified-date
14:29<frosch123>instead of local hg revision
14:29<@Alberth>good point
14:32<andythenorth>Alberth: roster is a parameter / option
14:32<andythenorth>by default it builds all
14:32<andythenorth>see and src/
14:33<@Alberth>yes, but how do you set it?
14:33<@Alberth>at the commandline?
14:33<Samu>just posted v2!
14:34<Samu>hopefully my lines of code are fine with you
14:34<andythenorth>Alberth: yes
14:34<Samu>fine for you
14:34<andythenorth>make roster=pony
14:34<andythenorth>or so
14:41-!-supermop__ [] has joined #openttd
14:41-!-supermop__ is "A CIRC user" on #openttd #tycoon
14:45<Samu>Not downloaded yet - *insert sad face*
14:45<Samu>oh well
14:46<Samu>i'm excited that I finished it! But sad that no one likes it, heh...
14:46-!-supermop [] has quit [Ping timeout: 480 seconds]
14:52<andythenorth>“Some will, some won’t, so what, next” :)
14:59<Samu>meanwhile, I found a display bug for engine value
14:59<Samu>if the engine is multiheaded, the value of the second engine is £0
14:59<Samu>the first engine carries the entire value
15:00<Samu>bug also present in 1.6.1
15:10<supermop_>using surface pen to draw sleepers
15:19-!-synchris [~synchris@] has quit [Remote host closed the connection]
15:20-!-ZirconiumX [] has quit [Ping timeout: 480 seconds]
15:25-!-Montana [] has quit [Ping timeout: 480 seconds]
15:35-!-Montana [] has joined #openttd
15:35-!-Montana is "New Now Know How" on #openttd
15:36-!-Stimrol [] has quit [Quit: ZNC -]
15:37<Wolf01>supermop_, draw transparent wires?
15:37<supermop_>how do you mean?
15:38<Wolf01>Dunno :P
15:38<Wolf01>Palette2Transparent just for wire part, always
15:40<supermop_>is that the station roof thing?
15:40<Wolf01>Might be
15:40<supermop_>currently nrt only allows a front and back part
15:40<supermop_>not a separate wire part
15:40<Wolf01>Sure it would help with transparent
15:41<supermop_>for rail, at least in stations, there is separation between pylons and wire
15:41<supermop_>which would let one set wires to transparent while keeping poles solid
15:42<supermop_>what's your thinking on nerfing dirt speed now?
15:42<Wolf01>30kmh max
15:42<supermop_>or do you want to patch nrt to allow traction coefficients
15:43<Wolf01>Eh, everybody should agree, it's not just my decision
15:43<supermop_>new vehicle smoke effect of dust clouds for RVs travelling faster than some given speed on dirt
15:46<andythenorth>I am -1 to traction coefficients
15:46<andythenorth>my only rationale is ‘overkill’
15:46<andythenorth>nothing else
15:49<supermop_>andythenorth: my only rationale in favor is 'rally cars'
15:50<Wolf01>Niche feature ;)
15:50<andythenorth>HEQS crawlers
15:50<andythenorth>I had this idea very very long time ago
15:50<andythenorth>long enough ago to let go of it :)
15:50<andythenorth>also ice roads
15:50<andythenorth>same though
15:50<Wolf01>Change coefficient with season
15:51<Wolf01>Sticky roads in summer on tropic
15:51<supermop_>brb need to grab late lunch and a drywall saw
15:52<Wolf01>Do you need some sandpaper towels too?
15:53<supermop_>plenty of sandpaper here actually
15:53<supermop_>I have the tools of a 70 year old suburban man in this tiny apartment
15:53<supermop_>I am actually surprised to find I am missing a drywall saw tbh
15:54-!-Alberth [] has left #openttd []
15:54<Wolf01>And a gimlet, do you have a gimlet?
16:11-!-goodger [~goodger@] has quit [Remote host closed the connection]
16:13-!-goodger [~goodger@] has joined #openttd
16:13-!-goodger is "GOODGER" on #openttd
16:16-!-Montana [] has quit [Quit: ChatZilla 0.9.93 [Firefox 51.0.1/20170125094131]]
16:17<andythenorth>such macro
16:22<supermop_>Wolf01: no gin in the house at the moment
16:22<supermop_>TE multiplier could be interesting for some things
16:23<supermop_>cable hauled vs adhesion tramways?
16:23<supermop_>I guess cable trams could just get huge HP and the track have huge maintenance
16:25-!-Supercheese [] has joined #openttd
16:25-!-Supercheese is "Supercheese" on #openttd #openttdcoop.devzone
16:28<andythenorth>TE coefficient: 1
16:29<supermop_>hmm the cc stripes on my poles are still just blue
16:29<Eddi|zuHause>can it be higher than 1?
16:30<andythenorth>does NRT support company colour?
16:30<Eddi|zuHause>cc is not available for every sprite
16:30<Eddi|zuHause>maybe you should open a feature request
16:30<supermop_>I assumed it would because railtypes use it for fences
16:30<Eddi|zuHause>fences are different to poles
16:30<supermop_>but I also may have forgot to set a flag
16:31<supermop_>Eddi|zuHause: what is a fence but a bunch of short poles?
16:31<Wolf01>A different sprite
16:39<Eddi|zuHause>supermop_: some sprites are created more equal than others
16:39<Eddi|zuHause>supermop_: the game is totally spritist
16:40<supermop_>wood sleepers only visible on grey ballast, and concrete sleepers only show up on brown dirt
16:42-!-Progman [] has joined #openttd
16:42-!-Progman is "Peter Henschel" on #openttdcoop #openttd
16:47-!-gelignite [] has quit [Quit:]
16:58<frosch123>andythenorth: no cc currently
16:58<andythenorth>no surprise :)
16:59<frosch123>we can enable it, if we want to
16:59<frosch123>but we haves mixed road owners
17:00<frosch123>so it would only really work for the underlay
17:00<frosch123>(road depot has cc ofc)
17:01<Wolf01>I would focus on making the base stuff work well first, then we should discuss on flag features
17:01<andythenorth>I don’t see much benefit to cc
17:01<andythenorth>other than not getting asked about it again :P
17:04-!-Gja [] has quit [Quit: Going offline, see ya! (]
17:06-!-Montana [] has joined #openttd
17:06-!-Montana is "New Now Know How" on #openttd
17:07-!-taco [] has joined #openttd
17:07-!-taco is "beep" on #openttd #tor
17:10-!-Progman_ [] has joined #openttd
17:10-!-Progman_ is "Peter Henschel" on #openttd #openttdcoop
17:15-!-Progman [] has quit [Ping timeout: 480 seconds]
17:15-!-Progman_ is now known as Progman
17:18-!-czaks [] has quit [Remote host closed the connection]
17:18-!-Supercheese [] has quit [Remote host closed the connection]
17:19-!-Snail [] has joined #openttd
17:19-!-Snail is "Jacopo Coletto" on #openttd
17:21-!-andythenorth [] has quit [Quit: andythenorth]
17:24<Samu>Wolf01: end result, can u spot the differences?
17:29<Wolf01>Yes, running costs
17:30-!-czaks [] has joined #openttd
17:30-!-czaks is "Unknown" on #oftc #openttd
17:30<Wolf01>Also totally unrealistic (between ingame prices) and with a low impact on income...
17:31<Samu>you can set divisor to 64 for ultra cheap wagons
17:31<Samu>let me check what it becomes
17:32<Wolf01>Even more useless, just disable it
17:32<Samu>£26/yr per wagon
17:32<Wolf01>I would raise purchase costs for trains and wagons by factor 10
17:34<Samu>or you can disable it alltogether
17:34<Samu>for £0/yr -
17:34<Wolf01>Still can't understand where £1722 comes from
17:35<Wolf01>Also, is it specified in purchase list?
17:35<Samu>nope, impossible
17:35<Samu>final_cost = cost_at_this_point + cost_at_this_point * length_of_parts_without_cost / (2 * divisor);
17:35<Wolf01>Bad feature is bad
17:36<Samu>purchase window cannot guess where you're attaching it to, can't generate a cost there
17:37<Samu>because "bad feature" yada yada
17:37<Samu>but I like it
17:37<Wolf01>Still can't understand why a wagon running cost must depend to what is attached to
17:37<frosch123>Wolf01: openttd is a game with exponentially growing income
17:37<frosch123>the more you build the more money you get
17:38<frosch123>making stuff more expensive makes the start slower (= boring), while changing nothing in the long run
17:38<Wolf01>Then let's make incremental purchase price for things, more you purchase more you pay ;)
17:38<frosch123>if you look at other games, you can see the same thing
17:39<frosch123>there are different types of resources, some you get exponentially and become pointless, while the game/tec progression is usually tied to linear growing things
17:39<frosch123>example starcraft: the number of workers mostly affects mineral income, but hardly gas income
17:39<Wolf01>There's one thing, only one, which you can introduce to make exponential money growth: taxes
17:40<Samu>@calc 3445 + 3445 * 6.5 / (2 * 1)
17:40<@DorpsGek>Samu: 14641.25
17:40<frosch123>example eu 4: when time progresses you make exponentially much money, but most stuff is affected by monarch points, which you can only buy in very limited amounts
17:41<Samu>@calc 3445 * 6.5
17:41<@DorpsGek>Samu: 22392.5
17:41<frosch123>the problem with ottd is that it is so old-fashoned, that it only has a single resource
17:42<Samu>@calc 3445 + 3445 * 4.5 / (2 * 1)
17:42<@DorpsGek>Samu: 11196.25
17:42<frosch123>Wolf01: how about adding "inefficient administration"
17:42<frosch123>when your company grows, all actions become more inefficient
17:42<Samu>this calc dude sucks or i fail with this calc
17:43<Wolf01>The problem with ottd is that you control every aspect of transport, from infrastructure to vehicles and even fund industries to produce the right cargo where is more comfortable to your network
17:43<Samu>@calc 3445 + 3445 * 4.5 / (8 * 2 * 1)
17:43<@DorpsGek>Samu: 4413.90625
17:43<Wolf01>Samu, learn to use the parenthesis
17:44<Samu>@calc 3445 + (3445 * 4.5) / (8 * 2 * 1)
17:44<@DorpsGek>Samu: 4413.90625
17:44<Wolf01>Also "* 1"... you can leave this out as it can't affect the result
17:45<Samu>it's funny that I can't fool proof my own formula now
17:46<Samu>oh right, those unmentioned values t.t
17:47<Samu>divisor = VEHICLE_LENGTH * 2 * _settings_game.vehicle.train_extra_runcost_divisor;
17:47<Samu>VEHICLE_LENGTH is 8
17:48-!-Supercheese [] has joined #openttd
17:48-!-Supercheese is "Supercheese" on #openttd #openttdcoop.devzone
17:52<Samu>@calc 3445 * 0.5 / (8 * 2 * 1)
17:52<@DorpsGek>Samu: 107.65625
17:52<Wolf01>Btw frosch123, you won't solve the problem of money with running costs based on train length, as trains won't extend with time, it becomes just another fixed cost which could be easily calculated from wagon purchase price * factor
17:52<Samu>@calc 3445 * (8 * 2 * 0.5) / (8 * 2 * 1)
17:52<@DorpsGek>Samu: 1722.5
17:53<Samu>ah finally!
17:53<Samu>1722.5 per wagon
17:53<Wolf01>And in this way, one doesn't need blackmagic formulae
17:54<Samu>@calc 3445 * (8 * 2 * 0.5) / (8 * 2 * 64)
17:54<@DorpsGek>Samu: 26.9140625
17:54<Samu>yeah, the £26/yr per wagon i mentioned earlier
17:56<Samu>I gave up trying to balance trains by the running cost
17:57<Samu>I only wanted to get this feature done
17:58<frosch123>why would i want to make running cost based on train length
17:58<frosch123>though i think some r-based newgrf add running cost for food vans and stuff
17:59<frosch123>both refridgerated vans and dinner vans
17:59<Samu>r-based? what is r-based?
18:00<Wolf01>"R" stands for Real
18:03-!-sla_ro|master [] has quit []
18:07<Samu>openttd has inflation
18:07<Samu>but no one really likes that
18:07<Samu>not multiplayer friendly
18:08<Samu>unless everyone starts exactly at the same time
18:08<Wolf01>Inflation is only regarding prices and costs, it lacks taxes based on bank balance
18:08<Wolf01>Or company value
18:08<Samu>there's also infrastructure maintenance costs
18:09<Wolf01>And even local authority rating imo
18:09<Wolf01>Infrastructure maintenance is like running cost
18:09<frosch123>not quite, infrastructure cost is quadratic
18:09<frosch123>though it mostly punishes bad constructons
18:10<frosch123>with too many signals, or generally too much track for too little vehicles
18:10<Wolf01>Punishes eyecandy
18:10<frosch123>or that :p
18:11<frosch123>the most silly feature is airport noise though
18:11<Wolf01>When you put >30% taxes, you will see how people will stop making money
18:11<Wolf01>And blame government
18:11<frosch123>i believe the original goal was to allow more than 2 airports per city, but usualy you ar enot allowed one
18:11<Samu>inflation + infrastructure maintenance + freigth weight multiplier + forbid 90 degrees + steepness
18:12<ST2>until someone create OpenTTD offshores and later similar to Panama papers appears xD
18:12<Wolf01>Samu, practically my config
18:12<Samu>and now + extra running costs
18:12<Samu>+ cargo dist too
18:12<Wolf01>And I still repay the loan with 12 trucks in 6 years
18:12-!-maciozo [~maciozo@2a03:8600:1001:1034::1013] has quit [Quit: WeeChat 1.7]
18:13<Samu>+ breakdowns
18:13<Wolf01>What then, nerf trucks? You nerfed trains because too much superior to trucks, then now trucks are godly
18:14<Dackus>Wolf01: Where do you see that?
18:14<Samu>trucks got nerfed in one of my income formula adjustment patch, forgot exactly what
18:14<Dackus>When you put >30% taxes, you will see how people will stop making money
18:15-!-OsteHovel [] has quit [Ping timeout: 480 seconds]
18:15<Dackus>The thing with infrastructure costs would be much better if the actaul costs per unit of infra were visible somewhere.
18:15<Samu>patch was aiming to nerf horizontal / vertical income formula
18:15<Wolf01>I don't think that a detailed costs panel will affect something
18:15<Samu>an universal nerf
18:16<Samu>aircraft got the major nerf in that patch
18:16-!-OsteHovel [] has joined #openttd
18:16-!-OsteHovel is "Hovel on the Ost" on #openttd
18:16<Wolf01>Taxes based on company value will evaporate a consistent slice of your earnings
18:18<Dackus>Wolf01: The infrastructure units are already listed, adding the cost would be trivial and underline their importance.
18:18<Wolf01>But it won't change the profit
18:18<Wolf01>It's just a UI tweak
18:18<Dackus>It will. If the player reacts to the information.
18:18<Dackus>Currently you don't know how much a tile of bridge costs vs a tile of staight track.
18:19<Dackus>You would make more single-track lines and possibly less useless lines etc.
18:19<Wolf01>So one will start to carpet the map with useless infrastructure just to reduce the balance by paying more maintenance?
18:19<Dackus>Also, with some scripts, airports are _really_ expensive to run. It would be good if this was more clearly visible.
18:19<Dackus>Huh, didn't understand you now.
18:19<Dackus>Could you rephrase?
18:19-!-Dackus is now known as Dakkus
18:20<Wolf01>I wouln't build recklessly just to keep low profit
18:20<Wolf01>It's not the objective of running a company
18:21<Wolf01>In fact, a company should reduce costs, and profit should be reduced by external costs
18:21<Dakkus>Why would anybody try to keep low profit?
18:22<Dakkus>I've never even thought somebody might want to do that. And I still can see no reason why they would.,
18:22<Dakkus>I am a bit of a question mark at the moment.
18:22<Wolf01>Then I don't understand you, the discussion is to limit company huge profits in endgame
18:23<Dakkus>Ah, ok, didn't know that.
18:23<Dakkus>Only saw so and so many lines on my screen.
18:23<Wolf01>Eh, just arrive at the middle of the talk
18:23<Dakkus>Indeed. The IRC thing.
18:24-!-HerzogDeXtEr [] has joined #openttd
18:24-!-HerzogDeXtEr is "purple" on #openttd
18:24<Dakkus>My way of playing is such that huge profits aren't really relevant. 4k*4k map, very few cities, very few industry, xUSSR set, daylength patch.
18:24<Dakkus>(well, actually the whole Reddit patch, not only the daylength)
18:25<Dakkus>That way, it's about building an efficient network that is able to serve all the passengers.
18:25<Eddi|zuHause>on a 4kx4k map, how do you have ever NOT huge profit?
18:25<Dakkus>A rather small frog-up will already anger almost all of my passengers, causing a lot of compensations being paid for late arrival.
18:26<Dakkus>And then I end up paying for the transportation (besides the transportation costs, I'm also handing money to my passengers...)
18:27<Dakkus>Creating a seriously efficient system of feeder lines to train stations, different train lines, some regional and some long distance and timetabling eveything perfectly. Thaẗ́s fun :)
18:27<Samu>Wolf01: the patch where i nerfed road vehicles, keks
18:28<Dakkus>Hmm, time to go sleepingg... Already half past one and we were trying to get to sleep at latest at 22.
18:30-!-HerzogDeXtEr1 [] has quit [Ping timeout: 480 seconds]
18:39<Eddi|zuHause>that never works :p
18:47<Wolf01> this should work
18:52-!-frosch123 [] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
19:01-!-Wormnest [] has quit [Quit: Leaving]
19:04-!-Progman [] has quit [Remote host closed the connection]
19:09-!-supermop_ [] has quit [Ping timeout: 480 seconds]
19:17<Wolf01>Ha! Just purchased train valley (2€) it's cool, and I think it's exploitable to make huge profits there too
19:23-!-FLHerne [] has quit [Quit: There's a real world out here!]
19:29-!-supermop [] has joined #openttd
19:29-!-supermop is "Guest" on #tycoon #openttd
19:37-!-Samu [] has quit [Quit: Page closed]
19:54-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
20:11-!-Samu [] has joined #openttd
20:11-!-Samu is "OFTC WebIRC Client" on #openttd
20:27-!-Samu [] has quit [Quit: Page closed]
22:23-!-ATS64 [] has joined #openttd
22:23-!-ATS64 is "beep" on #openttd
22:31-!-taco [] has quit [Ping timeout: 480 seconds]
22:37-!-glx [] has quit [Quit: Bye]
23:07-!-Snail [] has quit [Quit: Snail]
23:40-!-blu [~oftc-webi@2602:306:835d:6b00:8983:a7de:5897:5c81] has joined #openttd
23:40-!-blu is "OFTC WebIRC Client" on #openttd
23:43-!-blu [~oftc-webi@2602:306:835d:6b00:8983:a7de:5897:5c81] has quit []
---Logclosed Sun Mar 05 00:00:11 2017