IRC logs for #openttd on OFTC at 2019-03-16
            
00:02:14 <LordAro> an Zuu
00:02:32 <LordAro> bit early to see if it actually is monthly :p
00:02:49 <LordAro> wait, when did i get op?
00:26:15 <Zuu> Why is it so hard to close down projects?
00:27:40 <Zuu> (regarding trying to officially discontinuing ottdau)
00:53:02 <k-man> what is ottdau?
00:54:06 <Zuu> An old solution to update openttd on windows.
00:55:12 <Zuu> A 3rd party tool that you ran before starting openttd that would update it if there is an update available and then start openttd. Much like steam does.
00:55:29 <k-man> oh i see
00:55:58 <k-man> while searching for that, i saw this: https://www.microsoft.com/en-au/p/openttd/9pjphwm23sds?activetab=pivot:overviewtab
00:57:17 <Zuu> There is a thread about it on the forum. From what I remember basically it is known. But there is also a free/open version on the store too.
00:59:30 <k-man> ah right
01:00:38 <Zuu> I don't know if that one that charges does it all by the book but basically the OpenTTD license doesn't forbid anyone to fork OpenTTD and sell it but you need to provide the source code when you sell it.
01:04:17 <k-man> yeah, they say tye provide source upon request
01:04:22 <k-man> i just thought it was interesting
01:19:39 *** Zuu has quit IRC
01:38:31 *** Wolf01 has quit IRC
01:41:44 *** Flygon has joined #openttd
01:47:32 *** Wormnest has quit IRC
01:59:19 *** Progman has quit IRC
03:28:29 *** Thedarkb-X40 has joined #openttd
04:13:54 *** debdog has joined #openttd
04:17:19 *** D-HUND has quit IRC
04:25:33 <DorpsGek_II> [OpenTTD/OpenTTD] nikolas updated pull request #7086: Change #6173: Update SDL driver to use SDL 2.0 https://git.io/fhamZ
04:30:54 *** glx has quit IRC
04:53:14 *** tokai|noir has joined #openttd
04:53:14 *** ChanServ sets mode: +v tokai|noir
04:57:47 *** HerzogDeXtEr has quit IRC
04:59:59 *** tokai has quit IRC
05:32:26 *** Supercheese has quit IRC
06:24:34 *** Supercheese has joined #openttd
06:31:15 *** tycoondemon has quit IRC
06:33:16 *** Samu has quit IRC
06:34:29 *** tycoondemon has joined #openttd
06:50:09 *** cHawk has quit IRC
06:58:38 *** cHawk has joined #openttd
07:01:23 *** sla_ro|master has joined #openttd
07:11:40 *** nielsm has joined #openttd
07:17:19 <nielsm> morning
07:24:51 <peter1138> hi
07:33:41 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7245: Remove: OPF https://git.io/fjvU6
07:48:37 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #7361: Change: Use default value for invalid settings instead of clamping to min or max value. https://git.io/fhhdL
07:53:36 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7361: Change: Use default value for invalid settings instead of clamping to min or max value. https://git.io/fjvU9
07:58:31 <peter1138> Hmm
07:59:14 <peter1138> TrueBrain, any idea why CI fails on missing headers for Win32 and Win64 builds?
08:07:15 *** Supercheese has quit IRC
08:13:33 *** Alberth has joined #openttd
08:13:33 *** ChanServ sets mode: +o Alberth
08:13:36 <Alberth> moin
08:17:07 <peter1138> Cycling tiem.
08:27:03 <LordAro> morn
08:37:26 *** andythenorth has joined #openttd
08:39:29 <andythenorth> moin
08:40:25 <andythenorth> Alberth o/ so what do I need to look at in nfo linking? o_O
08:43:52 <Alberth> current idea is that you have nfo (with bytes only, perhaps), and a "name=value" primitive that assigns a value to a name, and a "byte(name)", "word(name)", or "dword(name)" that you can use instead of a byte/word/dword hex value in nfo sprite
08:44:32 <Alberth> ie "foo=124" and 1 * 23 04 38 byte(foo) 21
08:45:11 <nielsm> I think the linker will need to know what a name refers to, in some situations?
08:45:17 <Alberth> where the assignment and the use may be in different files, with the use after the definition
08:45:41 <nielsm> whether it's a string id, callback result sprite ref, or something
08:45:59 <Alberth> niels: quite possible, /me has no clue what references exist here
08:46:35 <Alberth> but I don't plan on doing sanity checking currently
08:46:57 *** APTX has quit IRC
08:47:04 <Alberth> not to mention I wouldn't be able to do that, due to lack of understanding what the numbers mean :p
08:48:12 <nielsm> and for strings, I think you may need some system inside the linker to determine final string ids
08:48:37 <Alberth> I'd be happy to include additional information, or different replacement primitives
08:48:51 <nielsm> in fact, I think linking might best be done in two stages, first link all the "code", then assemble and link all the strings
08:49:32 <Alberth> yes, "foo = free_strid()" could work, which means the linker figures out a nice number for it
08:50:27 *** Progman has joined #openttd
08:51:10 <Alberth> so far, I have a scanner/parser specification that should allow the "foo=123" and the byte/word/dword(name) thing
08:51:20 <Alberth> so not much yet :p
08:52:26 <Alberth> someinput on what is needed would be very useful
08:58:30 <andythenorth> it's 1 level down from what I understand :)
09:00:39 <Alberth> well, point is you have a string definition in one file, and its use in another, so in some way you have to magically connect both
09:02:06 <Alberth> so near the definition you have to write what you defined "foo=124" (for string 'foo' assigned number 124), and near the use, you have to define what to fill into the string reference like "word(foo)"
09:03:01 <Alberth> the latter at the spot where the bytes must be placed, as the nfo author or nml compiler knows that
09:03:17 <andythenorth> yes :)
09:03:25 <Alberth> however, I am also open to other suggestions
09:03:40 <andythenorth> the symbol replacement part I'm fine with understanding
09:03:52 <andythenorth> but the nfo format detail :P
09:03:52 <nielsm> well, as far as I know, strings differ in how they are used
09:03:55 <andythenorth> [shrug emoji]
09:04:10 <nielsm> need different definitions depending on whether it's a vehicle name or a gui string returned from a callback
09:04:10 <andythenorth> there are different ranges for strings
09:04:16 <andythenorth> some are D0 and some are DC
09:04:19 <andythenorth> there might be others
09:04:25 * andythenorth looks
09:04:43 <andythenorth> nml reconciles that on behalf of the author, so it must be tabled somewhere in nmlc code
09:05:04 <andythenorth> ok https://newgrf-specs.tt-wiki.net/wiki/TextIDs
09:05:28 <Alberth> if you define all strings in one file, you can perfectly allocate string numbers there, I think
09:06:48 <andythenorth> the second table under 'offset' defines the ranges https://newgrf-specs.tt-wiki.net/wiki/Action4#offset
09:09:05 <Alberth> so you define a range of strings? that's fine, just have many foo=124,. bar=125, etc
09:09:55 <Alberth> niels: how is it different?
09:10:03 <andythenorth> what's the goal here, a predictably linkable nfo format?
09:10:07 <andythenorth> or a patch to nmlc?
09:10:13 <andythenorth> the former seems...better :)
09:10:32 <Alberth> I don't dare touching nmlc curently
09:10:58 <Alberth> and you want this feature at nfo-ish level I think
09:11:13 <andythenorth> so one super helpful thing for authors is that nmlc *does* take care of defining the string ID appropriate to context
09:11:29 <andythenorth> so a string can be defined by author with no knowledge of DCxx, D0xx ranges etc
09:11:40 <Alberth> ok
09:11:44 <andythenorth> and nmlc then assigns ID appropriate to how the string is used in different features
09:12:03 <andythenorth> but to do that implies the linker can analyse the code for context?
09:12:10 <Alberth> so the linker must look at use, and assign a value by itself
09:12:16 <andythenorth> nmlc can do it because it has the parse tree
09:12:45 <Alberth> you can have a DCword(foo), or D0word(bar)
09:12:56 <andythenorth> as an example only, grfcodec is blind to what goes through it, as long as its valid enough
09:13:13 <andythenorth> whereas nforenum I think tried to do content and syntactic analysis against the spec
09:13:20 <andythenorth> and nforenum died :P
09:13:46 <Alberth> yeah, this is quite normal, separate pure processing from analysis
09:14:15 <Alberth> it's a different kind of program, doing both well is very very hard
09:14:57 <Alberth> grfcodec is speed-oriented, so minimal checking, nforenum doesn't even compile, is just looks at use, and compares uses
09:15:06 <andythenorth> yup
09:15:13 <Alberth> very different
09:15:19 <andythenorth> and the maintenance burden on one is very different to the other
09:15:31 <andythenorth> so newgrf has 2 toolchain problems
09:15:36 <andythenorth> the first is that nmlc is fricking slow
09:15:39 <Alberth> so linking is in the former category, speed
09:15:53 <andythenorth> the other is that the tools tend to lag behind openttd
09:15:57 <andythenorth> grfcodec is usually ok
09:16:16 <andythenorth> but nmlc is so far behind, and it makes adding features very slow, because there are no test cases
09:16:17 <Alberth> nfo is just an insane language :p
09:16:21 <andythenorth> and no-one can do bug reports
09:16:35 <andythenorth> my point being
09:16:38 <Alberth> yes, I agree with everything nml
09:17:00 <andythenorth> - strings were the major challenge in the hacks me and Eddi both tried
09:17:06 <andythenorth> - authors shouldn't have to manage string IDs
09:17:40 <andythenorth> - but then we might end up with a linking tool that has to analyse syntax and contents, so is. very slow to develop / maintain
09:17:51 <Alberth> I can rewrite nml, but if you want linking, there should be a target for the new nml
09:18:11 <Alberth> rewriting nml now to the monolithic case, and then add linking is messy
09:18:14 <andythenorth> yes
09:18:48 <andythenorth> possibly nml has to manage the string IDs, and sometimes there are just 'duplicates' in the table the linker gets, but with different ranges
09:18:57 <Alberth> linking should do minimal analysis, compilers should do such stuff
09:19:02 <andythenorth> ok
09:19:21 <andythenorth> the case is that sometimes a single string in nml will end up replicated onto D0xx, DCxx ranges etc
09:19:35 <Alberth> assigning IDs isn't hard, at the end you have 1 file and all symbols and uses, so the linker can figure it out
09:19:37 <andythenorth> due to differeing use in Action 0, CB etc
09:20:14 <andythenorth> so the compiler needs to manage one author defined string -> multiple strings in a table
09:20:23 <andythenorth> and then the linker just substitutes?
09:20:31 <Alberth> just a matter of being able to express enough information so the linker understands what to do
09:20:33 <andythenorth> my typing is awful today
09:21:13 <Alberth> duplicating can be one solution, I don't know currently
09:21:53 <Alberth> it also depends on what you can express between different source files at nml level
09:22:22 <Alberth> if you can define strings to be used for a particular context, the compiler can verify
09:22:36 <andythenorth> express as the author?
09:22:42 <Alberth> you might also give the linker more room to duplicate stuff, no idea
09:23:04 <andythenorth> the most common use case is just to dump all the strings into the lang file
09:23:06 <Alberth> just like you cannot use a name of a switch as string id
09:23:13 <andythenorth> no connection to context
09:23:27 <andythenorth> they are then just used on constants
09:23:37 <Alberth> if you have 5 nml sources, some form of connection between them must exist
09:23:55 <Alberth> maybe completely handled by nml, maybe the user has to specify stuff
09:24:03 <Alberth> and everything in-between
09:24:22 <nielsm> suggestion: start with a new NFO format with less crust that the old one, not one intended for handwritten data but for being generated
09:24:33 <Alberth> sounds good
09:24:40 <Alberth> ideas?
09:24:45 <andythenorth> +1
09:24:48 <nielsm> :D
09:25:00 <andythenorth> I'm not familiar enough with format
09:25:02 <andythenorth> but
09:25:02 <Alberth> I have absolutely no idea what is old crap
09:25:20 <andythenorth> features (action 0: trains, RVs etc) are all similar
09:25:26 <Alberth> I would very much like a more textual format though
09:25:35 <andythenorth> there is header stuff, which is worth exploring much more
09:25:42 <nielsm> with that NFO format, write a strings linker that takes an almost-NFO with string references, and one or more translation files (english.txt style) and combines them by converting the strings to appropriate format and appending to the nfo
09:25:43 <andythenorth> and there are all the action 1 realsprites
09:25:46 <Alberth> sort of an assembler
09:26:14 <Alberth> maybe something between nml and nfo
09:26:24 * andythenorth wonders how the realsprites are handled in the format
09:26:36 <andythenorth> are we transcoding from pcx / png to some proprietary format?
09:26:43 <Alberth> 4 bytes pointing to the compressed image data
09:27:29 <Alberth> it gets the various pixel bytes (4 if you have rgba), and compresses them as a blurb of data
09:28:22 <nielsm> grfcodec was originally just a tool to decode the original grf files, modify the sprites in a pcx spritesheet, and reencode the nfo + pcx to grf
09:28:27 <andythenorth> yes
09:28:49 <andythenorth> I'm curious how suited the image data is to partial compiles
09:29:13 <nielsm> and then the nfo syntax was extended with weird things and the "DO NOT MODIFY" in the header remained as a required element
09:29:13 <andythenorth> 'probably fine'
09:29:15 <Alberth> it's fine, just a blob of data that you copy
09:30:03 <Alberth> frosch has the idea to extend compressing over multiple real sprites
09:30:35 <nielsm> well, then you may as well just include a png file into the grf wholesale and refer to pixel coordinates?
09:31:23 <Alberth> as long as the png is not 1,000,000 by 2,000,000 :p
09:31:35 <Alberth> yes you need this 128x256 area :p[
09:31:52 <Alberth> but yes, it's an option
09:32:23 <andythenorth> ok
09:32:25 <nielsm> now we're going into grfv9 territory
09:32:33 <andythenorth> v2 everything
09:32:39 <andythenorth> it's time for a shake up
09:32:49 <andythenorth> so what's in the 'header'
09:32:51 * andythenorth looks
09:32:52 <nielsm> replace action2 with squirrel
09:33:06 <andythenorth> 'header' is a vague term here, I don't mean a file header
09:33:28 <Alberth> how can I help?
09:33:29 <andythenorth> so there's the grf block
09:34:08 <andythenorth> action 8
09:34:12 <andythenorth> https://newgrf-specs.tt-wiki.net/wiki/Action8
09:35:30 <andythenorth> that's pretty vanilla
09:35:36 <andythenorth> action 7 might be more interesting for a linker :P
09:35:46 <andythenorth> https://newgrf-specs.tt-wiki.net/wiki/Action7
09:35:54 <nielsm> will I be able to eat this bread with cheese without my bird chewing on it too?
09:35:57 <andythenorth> nope
09:36:14 <andythenorth> afaict, action 7 is currently entirely reliant on the nfo being written in a specific order
09:36:49 <Alberth> pretty horrible primitive imho
09:36:49 <andythenorth> it skips a specified number of sprites, AIUI
09:36:59 <andythenorth> which is 'interesting' if a linker is used
09:37:05 <Alberth> even for nfo
09:37:30 <andythenorth> it's 'essential' currently, but I wonder if the spec could do without it
09:37:38 <Alberth> linker only deals with inter-file stuff, so if you keep jumps in a single file, all is fine
09:37:39 <andythenorth> needs someone who understands better than me
09:37:52 <Alberth> isn't that action D ?
09:38:12 <Alberth> or in nml, disable some parts?
09:38:45 <andythenorth> as I understand it's often action 7 in combination with action D
09:38:56 <andythenorth> action D to read a parameter, action 7 to skip sprites
09:39:00 * andythenorth might be wrong
09:39:20 <Alberth> I think you're correct
09:39:35 <andythenorth> I suspect action 7 used to be much more important when we had very limited action 0 ID ranges
09:39:40 <Alberth> action D computes what to skip, action 7 does that
09:39:43 <andythenorth> e.g. managing different vehicles etc
09:39:53 <TrueBrain> peter1138: I can only guess it is because the CI wants us to merge CMake :P
09:40:13 <andythenorth> things like FIRS economies depend heavily on action 7 I suspect
09:40:14 <Alberth> TB: lol
09:40:27 <Alberth> yeah, likely they do
09:41:30 <TrueBrain> so it no longer finds any headers .. that is odd :D
09:42:19 <nielsm> I managed to have my brie to myself
09:42:37 <LordAro> TrueBrain: image update meant less installed by default?
09:43:00 <andythenorth> hmm, what else is 'header'
09:43:05 <andythenorth> action 14 is pretty vanilla
09:43:12 <andythenorth> https://newgrf-specs.tt-wiki.net/wiki/Action14
09:43:18 <TrueBrain> LordAro: we do the deps via vcpkg; that doesn't depend on the image
09:43:25 <TrueBrain> but also, they are all missing
09:43:29 <Alberth> it is, likely more info can be added if you want
09:43:52 <Alberth> ie user-defined version 3.1.0
09:44:20 <andythenorth> action C, the best of the actions :P https://newgrf-specs.tt-wiki.net/wiki/ActionC
09:44:33 <TrueBrain> okay, so not all PRs are refused .. lol
09:45:13 <andythenorth> ha ha, stuff like this just needs to never be seen again by a human
09:45:14 <andythenorth> https://newgrf-specs.tt-wiki.net/wiki/Action6#param-size
09:45:17 <TrueBrain> something that changed between the 13th and 14th, it seems
09:46:01 <TrueBrain> images indeed did change
09:46:11 <TrueBrain> but .. why does that influence this
09:46:50 <Alberth> /me digs a deep hole for paramete-size
09:47:57 <Alberth> it's really all so complicated mostly due to the never-ending special cases all over the place, I think
09:48:25 <Alberth> lots of that is not quite needed any more, we have sufficient space
09:48:39 <TrueBrain> hmm .. seems vcpkg is to blame ..
09:49:11 <andythenorth> Alberth: I wonder how much spec bonfire we could have
09:49:24 <Alberth> /me gives TB a big axe
09:49:26 * andythenorth installs cmake
09:50:21 <andythenorth> well it's a prettier build :P
09:50:53 *** APTX has joined #openttd
09:51:45 <Alberth> it is, cmake is the least bad solution for cross-platform
09:51:47 <TrueBrain> peter1138: basically, vcpkg is in folder X, but MSVC things it is in c:\vcpkg ... no clue why it thinks that .. and it is wrong
09:52:54 <andythenorth> well that worked
09:53:03 <andythenorth> there is some problem with missing sprites
09:53:04 <andythenorth> but eh
09:53:55 <andythenorth> probably just running it from the wrong place :P
09:57:52 <andythenorth> Alberth: approaching this from another angle
09:57:58 <andythenorth> how does one write test cases for a compiler?
09:59:43 <Alberth> there are different kinds of test, unit tests test a small part (a few functions), module tests do the same for a bigger part of it. You'd use nose or something for that
10:00:21 <Alberth> you can also do use-case tests, which you can also use for regression tests, basically a small input file that you compile, and check for correct output
10:00:33 <Alberth> that is testing the entire application
10:00:51 <Alberth> the latter exists in nml, for a dozen or so cases
10:01:37 <Alberth> ie what do you want to check?
10:02:34 <andythenorth> 2 things
10:02:41 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain opened pull request #7375: Fix: [AzurePipelines] vcpkg integration used the wrong folder https://git.io/fjvTM
10:02:55 <TrueBrain> lets see if my hunch is correct ..
10:03:03 <andythenorth> 1. _if_ we wanted to propose spec modification (maybe we do, maybe we don't), can the revised spec do what authors need
10:03:29 <andythenorth> 2. whoever is writing / rewriting the tool chain, needs test input
10:04:07 <Alberth> and expected test output
10:04:10 <andythenorth> yes
10:04:42 <andythenorth> also, one of the PITA issues with newgrf is lack of stable reference cases (input / output)
10:04:46 <Alberth> simplest by far is use-case tests, just a minimal nml specification that you compile to nfo
10:04:47 <andythenorth> this makes extending the spec hard
10:04:50 <andythenorth> and bug reports hard
10:05:06 <andythenorth> establishing a habit of reference cases earlier is a Good Thing
10:05:10 <andythenorth> :P
10:05:40 <andythenorth> it means a project could sit and get green lights on CI from first few commits
10:05:52 <andythenorth> or red lights :P
10:06:12 <Alberth> nml repo, regression directory
10:07:39 <andythenorth> there's enough there to work with?
10:07:42 * andythenorth assumes so
10:07:48 <Alberth> not even close
10:08:11 <Alberth> but you can run them (type 'make')
10:08:23 <andythenorth> yes, I use them when I extend nml
10:08:33 <andythenorth> there's no habit of extending them though
10:08:45 <andythenorth> e.g. industry spec changes, no regressions update
10:08:49 <andythenorth> NRT, no regressions update
10:09:00 <Alberth> it's now mostly a smoke-test, see if anything is broken
10:09:35 <andythenorth> they're 'fine'
10:09:41 <andythenorth> they do what they do
10:09:55 <Alberth> but coverage is probably 'non-existing' :)
10:10:04 <andythenorth> I would expect so
10:10:09 <Alberth> but that's a simple way for testing
10:10:14 <TrueBrain> ha! Found out why Windows is broken :D
10:10:17 <andythenorth> tell MS
10:10:26 <andythenorth> is it because MS have no taste?
10:10:29 <TrueBrain> LordAro was somewhat right .. they now ship vcpkg with the image :D
10:10:37 <Alberth> only now? I found that out 30 years ago already :p
10:10:38 <TrueBrain> so folders get totally confused :D
10:10:56 <TrueBrain> okay .. this is slightly annoying .. hmmmmmm
10:11:13 <TrueBrain> as I don't want to install the deps every CI round
10:11:15 <TrueBrain> that would be slow as fuck
10:13:41 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7375: Fix: [AzurePipelines] vcpkg integration used the wrong folder https://git.io/fjvTM
10:16:11 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7375: Fix: [AzurePipelines] vcpkg is now preinstalled on Windows images https://git.io/fjvTM
10:16:16 <TrueBrain> lazy mode is on, so I am going to spam
10:19:58 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7375: Fix: [AzurePipelines] vcpkg is now preinstalled on Windows images https://git.io/fjvTM
10:20:05 <andythenorth> Alberth: not sure what I can do next to help....I guess you need some time to absorb the whole problem?
10:24:58 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain updated pull request #7375: Fix: [AzurePipelines] vcpkg is now preinstalled on Windows images https://git.io/fjvTM
10:29:25 <Alberth> I can't design the next NFO language
10:29:42 <Alberth> I could start working on a new nml
10:30:09 <Alberth> at least for the parsing and checking part
10:30:26 <Alberth> generating output will require more insight in the target language
10:30:40 <TrueBrain> okay, finally I found the sweet spot to fix this issue peter1138 :)
10:30:46 <Alberth> perhaps the existing code generator could be used as inspiration
10:31:01 <Alberth> that is, until nfo moves :p
10:31:43 <Alberth> alternatively I can continue working on linking
10:32:12 <Alberth> which is pretty much independent on all other changes
10:32:56 <Alberth> what is more preferred?
10:33:00 <andythenorth> dunno :)
10:33:06 <andythenorth> we're aiming for format changes to nfo?
10:33:19 <andythenorth> not a total spec change?
10:33:41 <andythenorth> afaict, there's no appetite for throwing newgrf out and having a new content API
10:34:24 <andythenorth> WHAT DOES TrueBrain THINK??
10:34:36 <andythenorth> TB thinks andythenorth shouldn't pointlessly highlight
10:34:37 <TrueBrain> currently that I still have to get dressed
10:34:41 <TrueBrain> but not sure you want that kind of detail tbh
10:34:48 <Alberth> lazy mode is on, he might not even think currently :p
10:35:03 <andythenorth> it's Saturday
10:35:20 <TrueBrain> Saturday is the new Sunday
10:35:30 <Alberth> it's not raining, going to test that a bit more I think
10:38:20 <andythenorth> maybe I grind through some more FIRS port
10:38:34 <andythenorth> are we merging 16-cargo nml yet?
10:41:59 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fjvkk
10:44:51 <Alberth> the path to anything new nfo/newgrf is to make a simpler more orthogonal design of all concept, such that the current situation fits in it. For strings, you'd simply have a string for any purpose with a number, and co-incidently, todays numbers would fit in current nfo as well
10:45:35 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fjvkL
10:47:32 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fjvkq
10:49:18 <Alberth> bbl
10:49:20 *** Alberth has left #openttd
11:02:12 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fjvkB
11:05:36 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fjvkE
11:11:02 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fjvk2
11:22:13 <nielsm> hah damn, not going to derail into the valley as long as my steamer can only pull this train uphill at 5 km/h, can barely generate enough steam to keep moving
11:22:40 <nielsm> 562 tons, 13 cars
11:25:19 <Eddi|zuHause> the german word "Mogelpackung" describes a package that doesn't contain what it says on the box, or exaggerates the content.
11:25:33 <TrueBrain> random trivia day?
11:26:08 <Eddi|zuHause> it would apply to something called "derail valley", where you don't manage to derail in the valley
11:32:16 <nielsm> okay it helped to actually brake _on_ the uphill grade, stoke the fire massively, turn on the blower, keep the boiler at a good level, and let the steam reservoir build up to 15+ bar, that let me get enough power to continue
11:36:31 <TrueBrain> hmm .. a week later, no reply from SteamWorks
11:36:32 <TrueBrain> odd
11:37:31 <Eddi|zuHause> also a "Mogelpackung"? no steam, and hardly anybody works? :p
11:37:59 <TrueBrain> you just never know if they received the mail, if they are too busy, if they simply don't care, etc
11:48:30 <LordAro> TrueBrain: combination of the latter 2, as i understand it
11:54:40 <nielsm> I gave up pulling the steamer up that grade... couldn't get enough traction in the end
11:55:19 <nielsm> so magically spawned the little diesel shunter at the opposite end of the train and picked another route to the destination, so far it's been coasting all the way
12:02:23 <andythenorth> is the aim to crash a lot?
12:02:27 <TrueBrain> not really :P
12:02:43 <nielsm> there's no reward for crashing :)
12:02:50 <nielsm> other than the fun you may have doing it
12:05:46 <andythenorth> hmm
12:05:56 <andythenorth> shall I do some OpenTTD stuff?
12:05:59 <andythenorth> or play more tanks?
12:06:05 <Eddi|zuHause> yes?
12:07:26 <andythenorth> tanks
12:16:46 * peter1138 back
12:16:49 <peter1138> again
12:22:10 <andythenorth> he's back
12:24:45 <andythenorth> enough tanks
12:24:49 <andythenorth> Vehicle Variants!!!???
12:25:54 <LordAro> peter1138: how was cycle?
12:26:43 <andythenorth> who's the nml maintainer?
12:27:06 <peter1138> Windy.
12:27:26 <LordAro> i can imagine
12:27:26 <peter1138> Also because I'm back early, I'm hungry. But it's not lunch time yet :/
12:27:43 <peter1138> So I've just eaten a lunch worth of snacks. Should've just had an early lunch. Stupid.
12:27:44 <andythenorth> no it really is
12:27:48 <andythenorth> lunch
12:28:43 <peter1138> We should merge #7361, then #7245.
12:37:38 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7361: Change: Use default value for invalid settings instead of clamping to min or max value. https://git.io/fjvIa
12:41:53 <TrueBrain> first 7375 peter1138 :P
12:42:16 <peter1138> Is it right?
12:42:19 <peter1138> It works right?
12:42:39 <TrueBrain> the CI says it does, right?
12:42:45 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7361: Change: Use default value for invalid settings instead of clamping to min or max value. https://git.io/fjvI6
12:43:15 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN approved pull request #7375: Fix: [AzurePipelines] vcpkg is now preinstalled on Windows images https://git.io/fjvIi
12:43:15 <peter1138> Good enough.
12:43:28 <DorpsGek_II> [OpenTTD/OpenTTD] TrueBrain merged pull request #7375: Fix: [AzurePipelines] vcpkg is now preinstalled on Windows images https://git.io/fjvTM
12:43:38 <LordAro> huzzah
12:43:52 <TrueBrain> so either retrigger or rebase
12:43:58 <TrueBrain> (your own PRs)
12:45:17 <LordAro> peter1138: hmm
12:45:39 <LordAro> i'm not sure i like the inconsistency between dropdown settings and integer settings
12:45:59 *** Wolf01 has joined #openttd
12:46:06 <Wolf01> o/
12:46:08 <peter1138> LordAro, discrete settings vs continuous settings
12:46:43 <peter1138> Main issue is the regression savegame max-loan is MASSIVE
12:46:49 <peter1138> currently it gets clamped to the max, 500k
12:47:17 <peter1138> if you instead set it to the default 300k, the regression tests fail :p
12:47:21 <LordAro> it'd be nice if the save could be fixed...
12:47:54 <peter1138> I think clamping a value-type is fine.
12:48:05 <peter1138> It's the discrete settings where different values mean totally different things.
12:49:35 <LordAro> i guess
12:49:56 *** synchris has joined #openttd
12:50:22 <peter1138> Hmm, looks like the regression savegame has been changed twice.
12:50:27 <peter1138> Both times before noai was merged.
12:51:46 *** Thedarkb-X40 has quit IRC
12:52:01 <peter1138> Any other opinions?
12:52:07 <peter1138> LordAro, it's not just that example of course.
12:52:49 <peter1138> In the wentbourne save, max-trains (et al) would get reset to 500 instead of clamped to 5000.
12:53:01 <peter1138> Although that's not a big problem either.
12:53:16 <LordAro> ok, you've convinced me
12:53:32 <LordAro> i'd like it to be better documented though
12:53:51 <peter1138> Ok./
12:54:27 <peter1138> Ooof.
12:54:36 <peter1138> I updated the regression save and it fails :p
12:55:20 <peter1138> Hmm
12:56:08 <peter1138> Oh right, I saved it paused. Hmm.
12:56:13 <peter1138> haha
12:58:33 <peter1138> And if it's not paused then all the ticks are different and it still fails.
12:58:34 <peter1138> Hmm
12:58:53 <peter1138> I think I'll forget about updating it : )
13:02:33 <LordAro> doesn't hurt to have an additional saveload test :p
13:03:51 <peter1138> Indeed.
13:05:35 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #7361: Change: Use default value for invalid settings instead of clamping to min or max value. https://git.io/fhhdL
13:06:22 <peter1138> Ok...
13:06:32 <peter1138> I need to rebase to get the CI changes :p
13:09:16 *** Flygon has quit IRC
13:11:04 <andythenorth> so I should finish 16-cargo FIRS eh
13:11:04 <andythenorth> then play a game
13:11:19 <andythenorth> do we have someone who does nml docs? :P
13:12:00 <peter1138> Mmm, raw garlic
13:17:51 <peter1138> Oh, I didn't need to rebase. Weird?
13:22:03 <andythenorth> what even are nml docs
13:22:05 * andythenorth looks
13:22:34 <andythenorth> and do they have to be in a wiki? :(
13:22:44 <andythenorth> https://newgrf-specs.tt-wiki.net/wiki/NML:Industries
13:22:59 <andythenorth> and how are they versioned?
13:23:15 <andythenorth> to be precise
13:23:15 <andythenorth> there's a spec change
13:23:25 <andythenorth> and nml can't be released until the docs are done
13:23:33 <andythenorth> but the docs can't be done until nml is released
13:24:21 <andythenorth> eh there's some version thing in the wiki {{nml|0.2}}
13:24:27 <andythenorth> that will do
13:25:01 <andythenorth> what nml version is this?
13:25:06 <andythenorth> does it use semver?
13:26:24 <peter1138> wot
13:31:01 <andythenorth> yes
13:31:05 <andythenorth> wot
13:31:23 <andythenorth> this is a backwards-incompatible API change
13:32:17 <andythenorth> so is this 1.0.x?
13:33:16 <peter1138> No?
13:33:36 <peter1138> Stop over thinking it and just write the docs :p
13:34:52 <andythenorth> yeah I'm trying :P
13:38:42 *** andythenorth is now known as Guest3413
13:38:43 *** andythenorth has joined #openttd
13:40:06 <Wolf01> So, any chance to have a single passenger wheeled pallet tram vehicle?
13:40:43 <peter1138> err?
13:40:54 <Wolf01> https://www.youtube.com/watch?v=_cktlY8JfvQ
13:41:49 <peter1138> haha
13:44:03 *** Guest3413 has quit IRC
14:00:13 <nielsm> https://0x0.st/zXCy.jpg this is one very valuable car?
14:00:35 <nielsm> https://0x0.st/zXCt.jpg if there was a more powerful loco this might be a fun combo to make
14:02:05 <nielsm> https://0x0.st/zXCw.jpg result of hauling 13 car 560 tons train from food factory to harbor
14:02:50 <andythenorth> it's a nice UI
14:02:57 <andythenorth> is it as good as Euro Truck Simulator?
14:03:03 <andythenorth> to play?
14:03:18 <nielsm> it's very early access'y still
14:03:27 <nielsm> but the core gameplay loop is quite solid
14:07:14 *** supermop_Home has joined #openttd
14:07:14 <supermop_Home> yo
14:07:23 <Wolf01> Game?
14:07:33 <Wolf01> o/ supermop_Home
14:07:55 <supermop_Home> all my limestone is on the other side of a mountain and I don't feel like connecting it
14:08:17 <supermop_Home> Wolf01 have you seen the big rollercoaster?
14:09:07 <Wolf01> Which one?
14:10:21 *** criador15 has joined #openttd
14:10:21 <criador15> hello o/
14:10:33 <criador15> could someone lend me a hand?
14:10:33 <criador15> https://paste.openttdcoop.org/pqmkra4f4
14:10:44 <nielsm> it's quite open world'y! https://0x0.st/zXCl.jpg
14:12:37 *** criador15 has quit IRC
14:12:52 <nielsm> it would help to ask a question as well
14:13:46 *** criador15 has joined #openttd
14:14:15 <supermop_Home> the big lego rollercoaster
14:15:34 *** criador15 has quit IRC
14:16:10 *** utack has joined #openttd
14:16:28 *** criador15 has joined #openttd
14:16:42 <criador15> hat is wrong with the params on GSGoal.New and GSGoal.Question, the two dont suceed in they task
14:17:48 *** criador15 has quit IRC
14:17:54 *** criador15 has joined #openttd
14:20:59 *** criador15 has quit IRC
14:26:21 *** criador15 has joined #openttd
14:26:52 <criador15> i am reading the chat by the logs because of my network issues, even if i dont stay here
14:27:17 <criador15> still waiting to know why i cannot create a goal and a welcome message in the GS
14:27:28 <criador15> so if you can help, thanks :)
14:28:59 *** criador15 has quit IRC
14:33:13 <andythenorth> maybe GS is broken
14:33:14 <andythenorth> and nobody knows
14:39:07 *** HerzogDeXtEr has joined #openttd
14:49:23 *** criador15 has joined #openttd
14:49:38 <criador15> maybe its only me that is having issues with GS
14:53:27 <criador15> well, a question, how i choose specifically a type of cargo and get is id(like if i want to set a goal of iron, where i find the iron param to put into the goal?)
14:54:14 <nielsm> first thing to consider is, what if the player is using a newgrf that changes cargo types? or is playing in toyland?
14:55:16 <criador15> i would have to select it from the cargo list and found the value that is more average to what i want
14:55:31 <criador15> but then the question, how i would know between all the list what is iron, and what not
14:58:01 <nielsm> GSCargo::GetCargoLabel(cargo_id)
14:58:19 <nielsm> https://newgrf-specs.tt-wiki.net/wiki/CargoTypes#Cargo_Labels
14:58:22 <criador15> thanks
14:58:33 <andythenorth> so what blocks the nml 16-cargo merge?
14:58:45 <andythenorth> https://github.com/OpenTTD/nml/pull/15
15:00:52 *** Samu has joined #openttd
15:05:14 *** criador15 has quit IRC
15:10:54 *** andythenorth has left #openttd
15:13:32 *** glx has joined #openttd
15:13:32 *** ChanServ sets mode: +v glx
15:27:18 <peter1138> Yay, lunch.
15:27:23 <peter1138> Bit late, but hey
15:32:32 <peter1138> 13:02 < andythenorth> is it as good as Euro Truck Simulator?
15:32:38 <peter1138> oh he left
15:35:18 *** Alberth has joined #openttd
15:35:18 *** ChanServ sets mode: +o Alberth
15:35:23 <Alberth> moin
15:35:40 *** keoz has quit IRC
15:44:05 *** Wormnest has joined #openttd
15:46:33 <peter1138> hi
15:46:35 <Samu> there is a strange bug with starting multiple ais yet( I think)
15:47:03 <Samu> in multiplayer, I set 4 AIs to start "immediately"
15:47:06 <Samu> it started 5
15:47:07 <Samu> :(
15:47:38 <Samu> 1.9.0-RC1
15:48:31 <peter1138> Is it too early/late for a beer?
15:49:43 <Samu> why did it start 5
15:49:47 <Samu> have to investigate
15:51:07 <peter1138> You do that.
15:54:27 *** criador15 has joined #openttd
15:54:54 *** synchris_ has joined #openttd
15:55:06 <criador15> hey, to display a dialog with a message i use the GSGoal.Question and when it returns true its whow the dialog?
15:55:56 *** synchris has quit IRC
15:57:54 <criador15> peter1138 never is to early
15:58:58 <criador15> the question is, what else i need to show a simple welcome dialog? i made it, returns true, and nothing have
15:59:01 <criador15> happen*
16:05:04 *** supermop_Home has quit IRC
16:06:41 <peter1138> So I have no idea what a bimap<string, multiset_of<int> > represents.
16:07:20 <Samu> Company::GetNumItems() I suspect this thing ...
16:07:24 <Samu> have to make sure
16:07:48 <peter1138> In network mode it will... be lagging.
16:08:14 <Samu> 1 tick delay
16:08:25 <Samu> is still insufficient :(
16:08:28 <peter1138> You can GetNumItems() before you send any commands.
16:08:43 <peter1138> And then manually keep track of how many there will be.
16:16:14 <peter1138> I guess I need to figure out what the code is trying to do with this information.
16:16:44 <peter1138> Trying to work out what it is doing at the moment smells like an XY problem.
16:17:20 <Samu> starting up to 3 companies "immediately" works fine
16:17:34 <Samu> starting 4... fails
16:18:09 <Samu> GetNumItems() is still 4 the second time it is checking
16:18:41 <criador15> are you testing 1.9.0?
16:18:54 <Samu> no, testing master
16:19:18 <Samu> 1 of the 4 is human, so, counting num of ais
16:19:26 <Samu> is 3
16:19:36 <Samu> 3 < 4 is true, so it starts an ai
16:19:59 <criador15> maybe it not count your company,
16:20:27 <criador15> (like the problem of using array size to get array value)
16:20:51 <Samu> nah, the command has been delayed for more than 1 tick :(
16:21:18 <criador15> so good luck with it
16:22:12 <Samu> GetNumItems() == 1, then 2, then 3, then 4, then 4 again :(, then 5, then 6...
16:22:23 <Samu> that repeating is the problem
16:22:35 <criador15> yep
16:22:48 <criador15> but why is repeating?
16:23:39 <Samu> halp peter1138
16:25:19 <Samu> it's a network game
16:25:29 <Samu> commands are delayed
16:25:46 <Samu> but nobody (read: I) expected a delay of 2 ticks
16:27:40 <criador15> thats depend of the network,
16:28:34 <criador15> the GSGoal.question show a dialog to ask right?
16:28:37 <peter1138> 15:08 <@peter1138> You can GetNumItems() before you send any commands.
16:28:37 <peter1138> 15:08 <@peter1138> And then manually keep track of how many there will be.
16:28:48 <peter1138> Sometimes I feel like I write this shit for my own benefit...
16:29:17 <criador15> i heard you
16:30:09 <criador15> here its the openttd dev chat?(how i acess it? its private? need the IRC client?)
16:31:56 <Samu> * In theory, we could execute the command right away, but then the
16:31:57 <Samu> * client on the server can do everything 1 tick faster than others.
16:32:04 <Samu> this comment here is misleading :
16:32:27 <peter1138> criador15, this is it
16:33:31 <criador15> 1 tick faster+ping+network latency
16:34:02 <criador15> and i dont even said about stack of command thats maybe possible
16:34:31 <peter1138> Hmm, maybe I should play Derail Valley.
16:34:46 <criador15> maybe you can help me too
16:35:01 <peter1138> Not really, I don't know much about GS at all.
16:35:13 <peter1138> That's why I have not answered, because I would not be useful.
16:35:14 <criador15> fair enough
16:37:31 <nielsm> peter1138: careful, they made the world more persistent now, you can't just quit when a job goes wrong!
16:39:08 <peter1138> I haven't played it since the demo.
16:39:28 <peter1138> I bought it then decided it was too much like a chore.
16:39:30 <criador15> you can, its not SAO
16:39:39 <peter1138> LordAro, this std::vector patch is... hmm.
16:40:12 <peter1138> LordAro, I get that it does things in stages, but I also thing there are some standalone users of SmallVector that could simply be swapped.
16:41:17 <LordAro> peter1138: how so?
16:41:28 *** criador15 has quit IRC
16:41:41 <peter1138> Like that refit_result bit. It's standalone, not spread throughout the code.
16:41:53 <peter1138> Seems cleaner to simply replace that in one hit.
16:42:16 <peter1138> otoh, it's done.
16:42:52 <peter1138> Or
16:43:46 <peter1138> Well, that beer ran out :(
16:43:56 <peter1138> I'm playing an NRT game instead.
16:44:04 <peter1138> Only issue is... no RVs in 1880 ;)
16:44:14 <peter1138> I guess I forgot to add a newgrf with horses.
16:44:47 <peter1138> Heh, I broke the rules and added it :D
16:45:43 <peter1138> Citizens celebrate... First bus arrives at Fondhattan!
16:45:46 <peter1138> The horsebus.
16:46:09 *** andythenorth has joined #openttd
16:53:11 <peter1138> andy andy
16:53:38 <andythenorth> yo
16:53:50 *** criador15 has joined #openttd
16:54:11 <criador15> can someone write a functional one line GSGoal.new() method to me?
16:54:47 <criador15> (i need one done, to confirm with the values i am using so i can say what i am doing wrong)
16:55:33 <criador15> (and criador15, why dont you take one done from a GS downloaded, because they are far more complex to me understand so quickly)
16:58:31 <Alberth> o/
16:59:46 <criador15> hello Alberth o/
17:00:09 <Alberth> this.goal_id = GSGoal.New(comp_id, goal_text, goal_type, destination); what's exactly difficult about it?
17:01:07 <criador15> here i can know if goalText that i made works or not, and when i write that line, it still return false
17:01:15 <Alberth> in particular with some context https://dev.openttdcoop.org/projects/busy-bee-gs/repository/entry/company.nut#L63
17:01:21 <criador15> precondition error
17:01:50 <criador15> i am using busybees to learn, and not had suces
17:02:15 <glx> you need to check all possible precondition failure
17:03:02 <Alberth> pre-conditions are all listed, so check them one by one
17:03:33 *** criador15 has quit IRC
17:04:45 *** criador15 has joined #openttd
17:05:17 <criador15> i will made this(check preconditions), and you can read here to me? https://paste.openttdcoop.org/plasgzxqs
17:05:24 <Alberth> andy: I considered the string linking problem, and I think the proper solution is to have a code generator that checks how the strings are used and then generates appropriate actions. Of course it's possible to merge such functionality into a linker
17:06:27 <nielsm> GSGoal::New(GSCompany::COMPANY_FIRST, "Test", GSGoal::GT_NONE, 0)
17:06:32 <nielsm> try the simplest possible first
17:06:34 <glx> criador15: usually GSError.GetLastErrorString() is enough ;)
17:06:41 <peter1138> nielsm, I'm seeing station-signs glitching :(
17:06:42 <nielsm> then add complexity in small steps
17:06:47 <nielsm> :(
17:07:34 <criador15> it returns ERR: PRECONDITION FAILED
17:07:44 <Alberth> which one?
17:07:46 <criador15> No GSCompanyMode may be in scope. how i check this?
17:07:58 <peter1138> nielsm, erm, and it crashed :/
17:08:03 <nielsm> if you are not using GSCompanyMode then there is not one in scope
17:08:10 <nielsm> peter1138 :(((
17:08:13 <peter1138> In RemoveRecursive somwhere. Not using a debug build.
17:08:18 <andythenorth> Alberth: makes sense
17:08:27 <criador15> only say it
17:08:27 <peter1138> But I suspect it was a station sign being removed.
17:08:34 <andythenorth> seems to me that a linker should be as simple as possible
17:08:41 <andythenorth> for both speed of execution, and maintenance burden
17:08:56 <peter1138> andythenorth, tell that to link-time-optimization.
17:09:07 <glx> GSGoal.New(GSCompany.COMPANY_INVALID,goal,GSGoal.GT_TOWN,GSTown.GetLocation(townId)); <-- should be townId, not GSTown.GetLocation(townId)
17:09:12 <criador15> Alberth nielsm GSError.GetLastError return 2
17:09:39 <glx> yes 2 is PRECONDITION FAILED
17:09:43 <andythenorth> peter1138: mass-market compilers => people with more resources than us? :P
17:09:49 <peter1138> :D
17:09:53 <andythenorth> newgrf maybe doesn't need that? o_O
17:09:54 <criador15> zo/
17:09:59 <criador15> \o/*
17:10:14 <criador15> thanks a lot
17:10:18 <criador15> work
17:10:26 <andythenorth> hmm, should I play 2048?
17:10:32 <andythenorth> it's not actually fun
17:10:35 <andythenorth> but I have no motivation to code :P
17:10:38 <andythenorth> or draw :P
17:10:39 <Alberth> andythenorth: you could see it as a linker plugin, although not sure it should be programmed like that
17:10:45 <andythenorth> and I can't play OpenTTD because I broke everything
17:10:52 <criador15> andythenorth, did you tried rune factory 3?
17:11:16 <andythenorth> no :)
17:11:33 <criador15> i suggest you to play the entire serie
17:11:51 <Alberth> the bigger problem is perhaps that nor the user nor openttd cares abiout string ids, so it's only newgrf being silly with these requirements
17:12:05 <Alberth> s/nor/neither/
17:12:46 <criador15> okay
17:13:12 <Alberth> so add a byte or word to a string number in an action and the whole problem just vanishes
17:13:25 <andythenorth> Alberth: are the string IDs not significant within OpenTTD? :o
17:13:37 <Alberth> I would hope not
17:13:42 <andythenorth> I assumed the literally resolved to memory addresses or something
17:13:45 <andythenorth> they *
17:14:20 <Alberth> probably a table with numbers, I don't think DCxx values are being treated different from D0xx or any other value
17:14:31 <Alberth> or at least I don't expect and hope so
17:15:07 <andythenorth> oof
17:15:22 <andythenorth> so are the DCxx D0xx ranges etc just legacy artefacts?
17:15:28 <Alberth> we could have a table of 65536 entries, don't know, but any number is treated same-ish I iwould expect
17:15:48 <Alberth> that's my guess yes
17:15:54 <peter1138> Some string IDs are special.
17:16:45 *** criador15 has quit IRC
17:16:53 <peter1138> D000-D3FF and D800-DFFF are special
17:16:59 <peter1138> C4xx is a station class name
17:17:03 <peter1138> C5xx is a station name
17:17:13 <peter1138> C7xx is an airport tile name
17:17:18 <peter1138> C9xx is a house tile name
17:17:45 <Alberth> and inside openttd?
17:17:47 <glx> in newgrf world yes
17:17:49 <peter1138> Yes
17:18:06 <peter1138> The ID is used by the NewGRF loader to determine what to do with the string.
17:18:07 <glx> openttd just follow the spec
17:18:41 <peter1138> These are TTDPatch artefacts :(
17:18:54 <glx> as always
17:19:07 <Alberth> how is a house tile name treated differently from a station name? they are all just stored and retrieved when needed I hope?
17:19:13 <peter1138> With our own specs we use any ID and set it via a property.
17:19:40 <peter1138> Purely based on its ID.
17:19:51 <Alberth> yeah, I'd expect the number to be irrelevant indeed
17:20:07 <Alberth> except as a way to point to a particulat string
17:20:11 <peter1138> case 0xC5: _cur.grffile->stations(x)->name = ...
17:20:31 <peter1138> It could be fixed :-)
17:20:56 <peter1138> If you add properties to these things to set the string ID explicitly, then you can ignore this part of the spec.
17:21:04 <peter1138> (It would stay for backwards compatibility)
17:21:24 <peter1138> (Also NML doesn't yet handle stations of course)
17:21:25 <glx> things like that should be handled by the compiler
17:21:47 <Alberth> likely you can assign properties while loading the newgrf
17:22:26 <peter1138> By "add properties" I mean add it to the NewGRF spec and to OpenTTD's NewGRF loading.
17:22:55 <Alberth> ah, ok
17:23:26 <peter1138> Almost simple.
17:23:43 <peter1138> The only awkward one is station classes, however NML doesn't support stations anyway.
17:24:21 <Alberth> andy: many of the idiosyncrasies are coming from what the original program was doing
17:25:01 <Alberth> together with a few decades of adding random small new features with the least amount of effort possible
17:25:01 <Samu> NetworkExecuteLocalCommandQueue has been delayed, hmm how to understand the way this works...
17:25:24 <Samu> where is it delayed, how is it delayed
17:25:30 <Samu> and why
17:26:19 <Samu> the commands appear to still be executed in order
17:26:25 <andythenorth> so to what extent is this a spec change?
17:26:37 <Samu> but... sometimes the delay is more than 1 tick
17:26:43 <andythenorth> we want to preserve current newgrf features 1:1?
17:27:00 <andythenorth> or are some dropped as crazy / vestigial?
17:28:00 <Alberth> I'd start by making a general sane new setup generally aiming at preserving available functionality, and then afterwards check what relevant parts got dropped
17:29:04 <Alberth> as long as you think small scale, there is no idea where you want to go to
17:29:27 <peter1138> andythenorth, it's just a spec addition
17:29:48 <andythenorth> I was talking more generally than strings :)
17:29:50 <peter1138> It'd be incompatible with TTDPatch.
17:29:54 <peter1138> But... what isn't?
17:29:59 <andythenorth> my assumption is we keep ~everything
17:30:12 <andythenorth> is there are anything that really can be dropped?
17:30:20 <andythenorth> whats GRM essential for? :P
17:30:25 <peter1138> If you want all NewGRFs to work, no.
17:30:37 <peter1138> andythenorth, headaches.
17:30:45 <peter1138> andythenorth, an probably NML uses it internally? I dunno.
17:31:25 *** Progman has quit IRC
17:31:34 <andythenorth> I don't actually want to bonfire anything much in newgrf
17:31:54 <andythenorth> I just don't want a new compiler to be blocked by "it must support this thing from 2004"
17:32:04 <andythenorth> "that only one newgrf author understands"
17:32:28 <glx> couldn't NML map strings to CXXX internally but hide it from the grf author ?
17:33:25 <Alberth> andy says you can use strings without knowing what number they get
17:33:33 <peter1138> andythenorth, compilers don't need to support old stuff
17:33:52 <Alberth> there is no new stuff
17:34:05 <andythenorth> NML auto-magics strings already
17:34:09 <andythenorth> which is aces and lovely
17:34:11 <Alberth> or there is, but it's somewhere in the pile of the spec
17:34:20 <peter1138> andythenorth, how do you set house tile names in NML?
17:34:34 <andythenorth> you just map a string I assume
17:34:35 <andythenorth> never done it
17:34:52 <andythenorth> most strings go in as "string(NAME)" expressions
17:34:53 <peter1138> Alberth, I'd suspect that NML does indeed already use the correct IDs for these special strings.
17:35:40 <Alberth> all grf tools get touched by stuff like this
17:35:41 <andythenorth> NMLC prints D0xx and DCxx string usage to stdout during a compile, so yes
17:36:00 <Alberth> and not only for strings
17:36:37 <Alberth> spec is unreadable, tools are zillions of cases, openttd is zillions of cases
17:36:55 <Alberth> all for being compatible with something very very ancient
17:37:07 * peter1138 is rewriting his multitile docks AGAIN.
17:37:26 <peter1138> What I had worked for the current docks but would be limiting for new-style docks.
17:38:00 <peter1138> I want to add the "new-style" tile layouts to station tiles.
17:38:23 <peter1138> Because newstations way of doing it is too confusing for people who are using to industry/house/object tiles.
17:38:33 <peter1138> And docks will be my test bed :D
17:38:38 <peter1138> Oh
17:38:52 <peter1138> Sloping coast tiles are probably not a good docking spot :p
17:39:07 <Alberth> spec parts are never deprecated, it's just growing forever
17:39:18 <peter1138> NML doesn't need to support everything.
17:39:41 <Alberth> what does it need to support then?
17:39:52 <peter1138> NML only needs to support what will get the job done.
17:40:13 <Alberth> what is "still useful" in the spec to support?
17:40:31 <andythenorth> NML already does drop older things if there is a newer equivalent
17:40:31 <Samu> _settings_client.network.commands_per_frame == 2
17:40:33 <Samu> what is this?
17:40:45 <Samu> i got a queue of 4
17:40:46 <peter1138> Samu, probably your issue.
17:40:52 <peter1138> Alberth, I don't know off hand.
17:40:54 <Alberth> older varient is also marked as deprectaed?
17:40:58 <peter1138> Alberth, long vs short date, for instance.
17:41:08 <peter1138> introduction date
17:41:58 <andythenorth> Alberth: e.g. availability here https://newgrf-specs.tt-wiki.net/wiki/NML:Industries
17:42:04 <andythenorth> dropped after NML 0.2
17:42:59 <Alberth> so why is it still documented?
17:43:38 <peter1138> NML + NML docs is nothing to do with me so I claim no responsibility :p
17:44:01 <peter1138> I may have added something to NML recently, but...
17:44:07 <peter1138> I don't think documented it :p
17:45:12 <peter1138> Yeah, NML railtype spec doesn't mention pre-combined sprites.
17:45:18 <peter1138> May not even support it :D
17:46:13 <Alberth> it's generally useful if you tell people about additions, they may like it and start using it :p
17:46:27 <peter1138> I updated the NewGRF specs.
17:46:55 <peter1138> I should post on the forum about it ;p
17:47:05 <andythenorth> it has to be document in the NML docs for people using old NML
17:47:23 <andythenorth> and because NML is moderately aggressive about deprecating, some people are likely stuck with old NML
17:47:36 <andythenorth> FWIW, this situation makes me really grumpy
17:47:52 <andythenorth> I hate these confusing docs
17:48:31 <andythenorth> NMLC is not a particularly good software project :P
17:48:44 <andythenorth> I only moved to it because FIRS got moved by the other collaborators
17:49:17 <nielsm> nml docs should be part of nml, because it's not an append-only spec
17:49:37 <nielsm> so each nml version should have shipped with the spec it implemented
17:49:38 <andythenorth> .md and sphinx then?
17:49:52 <andythenorth> just like NoGo and NoAI docs, except we can't autogenerate the content
17:50:14 <andythenorth> have I just volunteered to move the entire wiki to .md, by hand? :o
17:50:16 <andythenorth> oof
17:51:03 * andythenorth great regret
17:51:46 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro approved pull request #7361: Change: Use default value for invalid settings instead of clamping to min or max value. https://git.io/fjvmZ
17:52:11 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro merged pull request #7361: Change: Use default value for invalid settings instead of clamping to min or max value. https://git.io/fhhdL
17:52:33 <Alberth> peter: adding it to newgrf spec only has very little meaning, most grf authors don't code nfo
17:52:49 <Alberth> I'd be happy to give a hand andy
17:52:50 <peter1138> Alberth, I don't think that's true.
17:53:33 <Alberth> we can simply ditch nml?
17:53:37 <peter1138> No :)
17:53:50 <peter1138> In the same way we can't simply ditch NFO.
17:54:57 <peter1138> Most grf authors probably care coding NML, yes.
17:55:04 <peter1138> But there are still lots using NFO.
17:55:16 <peter1138> (or variants like m4nfo)
17:56:06 <andythenorth> YANML
17:56:25 <Alberth> noml :-)
17:56:25 <LordAro> random idea: don't compile NML to NFO, make OTTD read it directly
17:56:56 <andythenorth> oof
17:57:01 <peter1138> NFO is basically NewGRF in text-form.
17:57:07 <andythenorth> at startup LordAro ?
17:57:10 <Alberth> with the random sprite sheets and what not?
17:57:35 <LordAro> andythenorth: yeah
17:59:00 <peter1138> Ooof, I managed to make the sloping part of a lock a docking tile :p
18:00:06 <andythenorth> peter1138: sounds ideal
18:00:10 <andythenorth> probably looks nice
18:00:22 <andythenorth> LordAro: 5 min startup times? o_O
18:01:03 <LordAro> andythenorth: not necessarily
18:01:52 <peter1138> Ok
18:03:01 <peter1138> Should I make new docking-tile rules be configurable? I'm going to go with NO.
18:03:27 <andythenorth> NO YES NO
18:04:11 <peter1138> http://fuzzle.org/~petern/ottd/docks6.png
18:04:13 <peter1138> ^ new rules
18:04:15 <nielsm> peter1138: make it configurable whether it's configurable!!
18:04:21 <peter1138> nielsm, haha
18:04:49 <peter1138> (And yes, half-tiles need to be valid for existing maps)
18:04:50 <nielsm> looks like a better idea overall
18:05:17 <peter1138> nielsm, plan is for new-style dock tiles to be simple one-tile affairs
18:05:26 <peter1138> and any adjacent tile becomes a docking tile
18:05:49 <peter1138> Or you can build out on to water, similarly to newobjects.
18:05:56 <andythenorth> gah that ship sprite is bad
18:05:58 <andythenorth> delete pls
18:06:04 <peter1138> andythenorth, stfu, it looks great.
18:06:31 <peter1138> "similarly to newobjects" is another reason to use the object-tile layout stuff.
18:06:35 <peter1138> newobject docks exist.
18:06:43 <andythenorth> ok so the dock, any of the 4 adjacent is a docking tile?
18:06:52 <andythenorth> (if water)
18:06:53 <peter1138> if they support the same tile layout spec, it's easier to convert them to actual docks.
18:06:59 <peter1138> andythenorth, yes.
18:07:04 <andythenorth> awesome
18:07:11 <andythenorth> best idea so far
18:07:26 <peter1138> No need to place specific docking tiles
18:07:48 <peter1138> Heh, I have a ship docked on that little corner piece right now :D
18:09:11 <peter1138> I think there could be a rule for "dock tile on water" must be adjacent to an existing dock tile
18:09:24 <peter1138> So that you can't just have docks floating out to sea with no land connection.
18:10:02 <peter1138> MB calls docks "moles"
18:10:04 <peter1138> Is that a thing?
18:10:26 <peter1138> Well they're not really "docks" they're sea barrier type things, I guess.
18:11:13 <andythenorth> it's a thing
18:11:20 <andythenorth> kind of breakwater that you can dock. to
18:11:54 <peter1138> Ah, ISR/DWE Objects: Water based tiles
18:11:58 <peter1138> and Dock overlapping tiles
18:12:15 <peter1138> Convert those to dock tiles and... YAY WOO.
18:12:39 <peter1138> Fucking pretty docks
18:12:42 <peter1138> Er, what
18:12:48 <peter1138> I actually meant to write functional :/
18:13:12 <peter1138> Errrrr
18:13:25 <andythenorth> someone made FIRS objects too
18:13:41 <peter1138> So we don't have 90 turns for ships...
18:13:54 <peter1138> Erm, 90 prohibited I mean
18:14:44 <peter1138> https://tinychat.com/room/openttd
18:15:30 *** frosch123 has joined #openttd
18:15:51 <peter1138> I wonder how it got stuck there :/
18:16:49 *** Thedarkb-T60 has quit IRC
18:17:07 <peter1138> Hmm, oilrigs busted :D
18:18:28 <peter1138> Ahhh
18:19:54 <peter1138> Oh ah.
18:35:12 <DorpsGek_II> [OpenTTD/nml] stormcone opened pull request #24: Fix: Add missing parameter in industry and airport tiles in RandomAct… https://git.io/fjvmS
18:35:34 <peter1138> !
18:35:57 <peter1138> Black and white mints own me now :/
18:36:12 <glx> nice, someone fixing nml
18:41:12 *** gelignite has joined #openttd
18:44:06 <peter1138> Ok, so the Nocab save gets a bit slower with multitile docks.
18:44:13 <peter1138> But ... do I care? It has 5000 ships on it...
18:44:31 <peter1138> Or something like that.
18:44:57 <Samu> i'm testing a solution, force test the max_no_competitors
18:45:11 <Samu> hope it works
18:46:51 *** Thedarkb-T60 has joined #openttd
18:47:56 <Samu> hmm i can't return CMD_ERROR
18:48:22 <Samu> let's return CommandCost() instead
18:49:18 <peter1138> andythenorth, oh yeah, and my dock plan, by allowing single-tile docks, allows for docks along rivers.
18:49:24 <Samu> great, it "works"
18:49:41 <Samu> kinda faking an error as a success, but it works
18:49:54 <Samu> gonna submit pr
18:50:12 * peter1138 prepares the close-pr button
18:50:13 <andythenorth> peter1138: Best Feature Ever
18:50:27 <peter1138> andythenorth, no, that'd be allowing custom colours...
18:50:45 <peter1138> I have too many boring test saves :(
18:50:50 <peter1138> Maybe I should just delete everything
18:52:07 <peter1138> Right, well oilrigs work again.
18:53:24 <LordAro> Samu: remember to justify your PR - what are you fixing, why it deserves fixing, etc
18:53:36 * andythenorth deletes peter1138
18:53:46 <LordAro> free(andythenorth);
18:55:38 <peter1138> x/win 36
18:55:59 <LordAro> that's a lot of windows
18:57:55 <peter1138> That's only half-way.
18:58:12 <peter1138> Why does removing docks check for vehicles on the dock tiles?
18:58:18 <Samu> oops :( commited as master :(
18:58:20 <Samu> what to do now to revert
18:58:25 <peter1138> git reset HEAD~1
18:58:34 <peter1138> You'll even keep the changes.
18:58:46 <Samu> ok
18:58:49 <peter1138> Once you've done that, just create a branch and recommit.
18:59:12 <peter1138> (Or you can create a branch now, and then reset master)
19:00:19 <Samu> doesn't look like i can :(
19:00:40 <peter1138> What do you mean?
19:00:52 <andythenorth> peter1138: but why does it check that?
19:01:06 <peter1138> andythenorth, IKR
19:02:02 <peter1138> Hmm, removing a dock crashes. Cool.
19:03:29 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick opened pull request #7376: Fix: Enforce the max_no_competitors test before creating an AI compan… https://git.io/fjvY8
19:03:38 <Samu> ok, test plz
19:07:00 <Samu> I wonder about the CMD_ERROR before
19:07:14 <Samu> at line 886
19:07:34 <Samu> has it been tested?
19:10:44 *** criador15 has joined #openttd
19:10:49 <criador15> hey o/
19:11:07 *** Thedarkb-T60 has quit IRC
19:11:44 <criador15> if you would receive a vehicle in game, you prefer choose the type, value and its att, or a random vehicle its surprisely and better?
19:11:57 <criador15> your responde matters to me
19:12:18 <Alberth> likely it depends on the person playing
19:12:35 <criador15> i know it
19:12:54 <criador15> what about you?
19:13:05 <criador15> what you prefer? surprise or choose?
19:13:20 <Alberth> simple mode is to let the player pick one, so he/she can pick a favorite, or one that fits the terrain for example
19:13:38 <criador15> i want to know what i develop first
19:13:47 *** Thedarkb-T60 has joined #openttd
19:13:58 <Alberth> I can see the fun in both
19:14:00 <criador15> can you please just choose?
19:14:06 <criador15> lol
19:14:48 <Alberth> I think best is to let the player pick one; it avoids getting vehicles that are useless
19:15:12 <criador15> and i need one help, there is a way to know the price of every cargo unit?(like the price of one coal transported to the industry?)
19:15:36 <Alberth> there is no price for a cargo unit
19:15:52 <Alberth> you don'y buy the cargo, you only transport it and get paied for that
19:15:56 <Alberth> *paid
19:16:18 <criador15> yep, the GS have acess to the value paid?
19:16:48 <criador15> surprisely yes GetCargoIncome
19:16:53 <criador15> wow :o
19:17:07 *** Thedarkb-T60 has quit IRC
19:17:07 <Alberth> no idea if you can obtain that, at least you don't get a notice of a delivery
19:17:48 *** Thedarkb-T60 has joined #openttd
19:17:51 <peter1138> Hmm, should I remove the dock tile removal rules for all docks?
19:18:17 <peter1138> So you can have single-tile docks with the current graphics.
19:18:37 *** Thedarkb-T60 has quit IRC
19:19:01 *** Thedarkb-T60 has joined #openttd
19:19:58 <criador15> its kinda weird a square dock without "ocean corner"
19:20:21 <criador15> like its just a floor, dont apear be a dock
19:21:06 *** Thedarkb-T60 has quit IRC
19:22:35 <peter1138> http://fuzzle.org/~petern/ottd/docks7.png
19:22:44 <peter1138> ^ Wedwood Docks is probably the thing to avoid more :p
19:23:25 <Samu> time to play patch of exile
19:23:31 *** criador15 has quit IRC
19:23:54 <peter1138> https://www.youtube.com/watch?v=vbLndV_f_vo
19:23:57 <peter1138> ^ best version of Exile.
19:24:10 <TrueBrain> thought it was called Diff of Exile
19:24:54 *** criador15 has joined #openttd
19:25:40 <peter1138> ^^ that game runs in 32KB RAM. And that RAM is shared with video.
19:25:45 <criador15> cool graphcs
19:26:09 <peter1138> full screen on that video mode is 20KB. Not a lot left for the game.
19:26:21 <Samu> stupid kitava killed me in that rune blast... 1.7k life gone damn game doesn't forgive any mistake
19:26:36 <criador15> good bye people o/
19:26:45 <peter1138> criador15, it pains me to see modern games being made with "8 bit" graphics which are clearly not 8 bit style at all.
19:26:46 *** criador15 has quit IRC
19:26:49 <peter1138> Just low resolution.
19:27:19 <peter1138> andythenorth, should I fix this? :p
19:27:47 <andythenorth> peter1138: dunno
19:27:48 <andythenorth> probably?
19:28:26 <Alberth> Westwood Docks is great for exchanging goods between ships at sea
19:28:47 <andythenorth> yeah but do we want new default sprites for it?
19:28:58 <peter1138> andythenorth, no.
19:29:01 *** Thedarkb-T60 has joined #openttd
19:29:10 <peter1138> I don't think the sprites look bad :p
19:29:22 <peter1138> Some replacement stuff might.
19:29:40 *** Thedarkb-T60 has joined #openttd
19:29:41 <andythenorth> the NE face looks horribly truncated to me :D
19:29:48 <andythenorth> also it could have been a lighthouse or something :P
19:29:48 <peter1138> I suspect deleting old docks should follow the current rules.
19:30:14 <peter1138> Do newobjects have a spec for multiple tiles in one go?
19:30:24 <peter1138> Oh
19:30:30 <peter1138> Industries certainly do.
19:30:37 *** Thedarkb-T60 has quit IRC
19:31:13 *** Thedarkb-T60 has joined #openttd
19:33:13 *** Supercheese has joined #openttd
19:33:53 <peter1138> http://fuzzle.org/~petern/ottd/docks8.png
19:33:56 <peter1138> ^ FIRS industries...
19:34:28 <andythenorth> super
19:34:47 <andythenorth> so do I stop providing dock tile? o_O
19:34:57 <peter1138> Nope.
19:35:12 <peter1138> That would come later, I'm not changing spec.
19:35:12 <andythenorth> I wouldn't mind, it has some issues
19:35:31 <peter1138> It still needs an actual station tile for the station.
19:35:42 <andythenorth> player can build their own?
19:35:51 <andythenorth> no more helicopter fishing :P
19:35:51 <peter1138> eh?
19:36:15 <peter1138> Oh, you mean making it a regular industry, not a neutral industry.
19:36:18 <andythenorth> yes
19:36:24 <peter1138> Player places "dock" to do fishing.
19:36:28 <andythenorth> no built in dock, player builds what they want
19:36:28 <peter1138> Well
19:36:40 <peter1138> Currently you can't place docks on water, heh.
19:36:44 <andythenorth> the lolz
19:37:03 <andythenorth> floating crane for dock sprite?
19:37:05 <andythenorth> lightship?
19:37:09 <andythenorth> tug boat?
19:37:32 <nielsm> also that somewhat goes against "no serving industries with neutral stations" setting just added :P
19:37:37 <andythenorth> oil storage platform? o_O https://en.wikipedia.org/wiki/Seawise_Giant
19:37:51 *** Thedarkb-T60 has joined #openttd
19:40:12 *** Thedarkb-T60 has joined #openttd
19:40:37 *** Thedarkb-T60 has quit IRC
19:41:47 <peter1138> Hmm, I better squash this. It has lots of WIP commits.
19:42:09 <glx> https://github.com/glx22/OpenTTD/commits/cmake_api <-- finished
19:42:36 <peter1138> Nice!
19:42:40 <peter1138> I can drop my branch :D
19:55:22 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 commented on pull request #7376: Fix: Enforce the max_no_competitors test before creating an AI compan… https://git.io/fjvO3
19:59:56 <andythenorth> oof I should make some new boats or something
20:03:37 *** supermop_Home has joined #openttd
20:03:56 <supermop_Home> hello
20:04:48 <Supercheese> no botes
20:04:50 <Supercheese> zellepins
20:04:54 <Supercheese> or maybe
20:04:58 <Supercheese> zellepin-botes
20:15:20 <Samu> because it asserts
20:17:09 <nielsm> answer that with an update to the comment in your code
20:17:31 <nielsm> // cannot return CMD_ERROR here as it will cause an assert <whereever>
20:17:50 <nielsm> or maybe fix the place that assumes the creation can't fail
20:20:09 <Samu> it can't be fixed :(
20:20:10 <peter1138> So.
20:20:26 <peter1138> Chilli is on for a simmer.
20:20:28 <Samu> it's queued into the network packet command thing
20:20:39 <peter1138> Going to have chilli nachos, instead of a healthy meal :p
20:20:51 <peter1138> Might have a side-salad, I suppose.
20:22:48 <Samu> in test mode it always returns CommandCost
20:22:56 <Samu> no matter if it fails
20:23:51 *** ookfof[m] has joined #openttd
20:24:18 <Samu> my bit packing stuff is wrong :| got to fix it anyway
20:24:49 <Samu> it's not 2 bits, only 1
20:29:09 <Samu> bool enforce = (bool)GB(p2, 0, 1); is this legitimate code?
20:30:12 <michi_cc> Samu: Use HasBit()
20:30:28 <Samu> ok
20:33:10 <Samu> bool enforce = HasBit(p2, 0);
20:36:32 <Samu> hmm this command is also executed on clients, right?
20:36:59 <Samu> do they have the same max_no_competitors value?
20:38:32 <Alberth> they should
20:43:43 <Samu> assert(res.GetCost() == res2.GetCost() && res.Failed() == res2.Failed()); // sanity check
20:45:13 <Samu> gonna try do this in a different manner
20:45:31 <Samu> oh wait... I think i can't
20:47:11 <peter1138> Okay, time for Genesis.
20:47:52 <peter1138> Oh right, I need to squash all of this branch down as the initial "let's separate this into chunks" stuff is now irrelevant :p
20:48:18 <Samu> need to test, I doubt this works, but
20:48:56 <Samu> im doing the test before the EXEC
20:49:13 <Samu> oh, it worked... strange
20:49:42 <Samu> it's weird
20:49:47 <Samu> this is called 3 times
20:50:11 <Samu> 1st test is DC_NONE
20:50:17 <Samu> it's queued
20:50:27 <Samu> 2nd test is executing the queue, DC_NONE
20:50:41 <Samu> 3rd test is executing it as DC_EXEC
20:51:14 *** sla_ro|master has quit IRC
20:51:28 <Samu> so it's possible, apparently, lol
20:51:41 <peter1138> Important question. How wide do you have your tabstops? :D
20:52:14 <Samu> my what?
20:52:30 <peter1138> tabstops.
20:52:40 <peter1138> Indentation width.
20:53:00 *** Progman has joined #openttd
20:53:14 <Samu> no idea
20:54:54 <Samu> I still wonder about line 886
20:55:01 <Alberth> factory default :p
20:55:12 <Samu> if CMD_ERROR asserts for my test
20:55:20 <Samu> why wouldn't it assert for that?
20:55:47 <peter1138> Why do I find navigating the code in Visual Studio so hard?
20:55:54 <peter1138> vim shouldn't be easier, right?
20:58:42 <Samu> somebody explain me what is line 886 supposed to do? I find it... strange
20:59:07 <Samu> the blame tool, brb
20:59:10 <peter1138> line 886 of what file?
21:00:01 <Samu> company_cmd.cpp
21:00:16 <Samu> i find strange that CMD_ERROR there doesn't assert
21:00:23 <Samu> cus it did assert for me
21:00:31 <Samu> on my test
21:01:23 <Alberth> the assert you showed compares 2 command results for being equal (both are ok or both fail)
21:02:05 <Samu> unless there is no test mode
21:02:20 <Samu> usually commands have a test mode before an exec mode
21:02:49 <Samu> that one seems ... to only work if there is no test mode, it's exec'ed immediately
21:04:44 <Alberth> CMD_ERROR is not a program error, it means the user cannot do something
21:04:44 <Alberth> ours have that too, there is an exec flag
21:09:12 <Samu> if (!(flags & DC_EXEC)) return CommandCost();
21:09:23 <Samu> in test mode it returns CommandCost()
21:09:32 <Samu> in exec mode, it could return CMD_ERROR
21:09:45 <Samu> and then the assert would happen
21:10:04 <Samu> CMD_ERROR isn't a program error... hmmm
21:12:05 <glx> that's the issue, your test is done only in exec mode, but it should be done for all modes
21:12:18 <nielsm> for example if two players try to build on the same tile in the same tick, one of them will succeed and one will fail, the player that fails receives a CMD_ERROR for his attempt
21:12:26 <nielsm> that's indication "what you tried was not possible"
21:12:58 <nielsm> (and will show as a "cannot build thing here, another thing in the way" red error box)
21:13:29 <Samu> in my opinion, line 886 should be placed before 884, isn't it?
21:13:45 <Samu> but i'm not too sure what's it supposed to be doing
21:14:46 <Alberth> if test suceeded, exec should also work
21:15:31 <Alberth> the point of test is that you test whether the command can be done. If yes, you perform the command
21:15:34 <glx> line 886 checks company_id validity
21:15:55 <glx> it's weird it does it in exec mode only
21:16:33 <Samu> I moved my enforce test to before line 884, and i can now return CMD_ERROR
21:16:55 <Samu> so I was wondering if that line 886 should be moved as well
21:26:19 <glx> this line was added 10 years ago, but I guess noone ever tried to use a wrong company id
21:27:10 <glx> https://github.com/OpenTTD/OpenTTD/commit/f548a1b3b3c054957b421e88e2122f6f455bf9fc
21:27:23 <peter1138> Weird, ships taking ages to load.
21:27:33 <peter1138> As if it's too long for a platform... huh...
21:32:43 <nielsm> large ships need large docks to load at full speed!!
21:37:39 <nielsm> and container ships need docks fitted with container cranes, and tanker ships need docks equipped with pumping systems
21:37:50 <nielsm> do it!
21:38:06 <andythenorth> ships don't load fast
21:44:35 <peter1138> He's such a fine dancer.
21:45:21 <peter1138> Well, dinner was nice.
21:45:35 <peter1138> Chilli "nachos" indeed.
21:45:55 <peter1138> And then a banana split.
21:49:50 <andythenorth> nice
21:50:24 *** Thedarkb-T60 has joined #openttd
21:53:32 *** andythenorth is now known as Guest3434
21:53:32 *** andythenorth has joined #openttd
21:54:02 *** Supercheese has quit IRC
21:54:24 *** Supercheese has joined #openttd
21:58:09 *** Guest3434 has quit IRC
22:01:33 *** supermop_Home has quit IRC
22:01:55 <andythenorth> hmm tanks
22:01:58 <peter1138> Ships.
22:02:02 <peter1138> NRT
22:02:09 <peter1138> NDT
22:02:18 *** Alberth has left #openttd
22:05:22 <andythenorth> NDT!
22:05:28 <andythenorth> moles!
22:05:34 <andythenorth> I my dock set can be called moles
22:10:03 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7376: Fix: Enforce the max_no_competitors test before creating an AI compan… https://git.io/fjvY8
22:27:40 * andythenorth is bored
22:27:54 <peter1138> Pfft
22:28:32 <andythenorth> played tanks a lot
22:28:38 <andythenorth> might do the washing up and go to bed
22:33:48 <andythenorth> so have you got a dock patch I should test?
22:37:06 *** Thedarkb-T60 has quit IRC
22:37:26 *** Thedarkb-T60 has joined #openttd
22:56:36 *** gelignite has quit IRC
22:59:22 <andythenorth> off 2048 is dull
23:10:13 <peter1138> Hmm?
23:10:26 <peter1138> The puzzle game that was all the rage about 5 years ago?
23:11:47 <peter1138> Our Engine GRF was split to Steam, Electric and Diesel parts.
23:11:58 <peter1138> Well that seems kinda pointless, but what do I know? :p
23:13:56 <peter1138> Hmm, multitile docks probably needs OPF to gone.
23:19:29 <Eddi|zuHause> that was 5 years ago?
23:22:02 <peter1138> 2048.
23:22:06 <peter1138> Probably :p
23:22:09 <peter1138> Maybe more?
23:22:11 <peter1138> I don't remember
23:22:37 <peter1138> Web: 9 March 2014
23:22:39 <peter1138> Well!
23:22:45 *** synchris_ has quit IRC
23:26:10 <peter1138> rebase master is not the same as rebase upstream/master :p
23:27:35 <peter1138> bchangelog.txt:- Remove: OPF for RVs and NTP for trains; both the oldest path finders (r18362)
23:27:39 <peter1138> Hmm, that was a while ago.
23:28:17 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN approved pull request #7245: Remove: OPF https://git.io/fjvs6
23:29:32 *** nielsm has quit IRC
23:30:14 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN merged pull request #7245: Remove: OPF https://git.io/fhd3e
23:31:58 <LordAro> :o
23:32:04 <LordAro> rip OPF
23:32:08 <peter1138> YOU DID IT
23:32:13 <peter1138> IT@S YOUR FAULT
23:32:17 <peter1138> OMGH NO
23:32:19 <peter1138> ARAGHUHGSDUHSUGRHSHRHGZSFhg
23:32:27 <LordAro> lol
23:32:31 <Eddi|zuHause> YOU MONSTER!
23:32:50 <peter1138> Eh, well...
23:36:17 <Wolf01> :D
23:38:06 *** drac_boy has joined #openttd
23:38:15 <drac_boy> hi there
23:39:16 <LordAro> peter1138: NTP? new train pathfinder?
23:40:22 <peter1138> Heh
23:40:28 <peter1138> Yes.
23:40:46 <glx> oh good bye OPF ;)
23:40:49 <peter1138> Hmm, ok, default setting fails ;(
23:41:06 <Eddi|zuHause> that's one of the primary rules of naming: never name anything "New" because it's gonna be old pretty quickly
23:41:09 <drac_boy> so just curious if I maybe got an idea right or not .. could you have a single factory that would happily accept STEL all the times, and you could unload WOOD too but only if STEL stockpile is present otherwise the wood wouldn't even get processed at all?
23:41:27 <Eddi|zuHause> yes
23:41:36 <glx> Eddi|zuHause: after "New" there's "Yet Another"
23:41:45 <drac_boy> eddi heh yeah too true :) I still remember the pre-48x cdrw drives, claims for best/fastest but umm of course
23:41:55 <peter1138> And after that, there's "No"
23:43:08 <Eddi|zuHause> drac_boy: an industry can both define how the stockpile gets reduced, and what will be accepted at stations
23:43:36 <peter1138> Ah, default-setting doesn't fail.
23:43:43 <peter1138> Old savegame conversion ;(
23:43:54 <peter1138> "/* Convert old PF settings to new */"
23:44:11 <drac_boy> eddi thanks, just wanted be sure I wasn't looking at anything wrong
23:45:03 <LordAro> peter1138: ono
23:45:46 * drac_boy still needs to clean up my tracking table .. at a slow rate :-s
23:49:39 <drac_boy> oh and not exactly related top industries but would a food-requiring town industry probably conflict with the town engine or not so much? (re both house and industry requiring food that is) .. this is for arctic/tropic populations yes
23:49:50 <drac_boy> top? I mean to... silly keyboard -_-
23:50:52 <peter1138> I need to make NPF not crash :D
23:51:01 <peter1138> (In my branch, not master)
23:56:20 <peter1138> Ok, one-line fix.
23:59:16 *** frosch123 has quit IRC