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

Powered by YARRSTE version: svn-trunk