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