IRC logs for #openttd on OFTC at 2019-01-28
⏴ go to previous day
00:01:04 <Samu> besides, it wouldn't cause any problem, they don't have a start_date parameter, nor are they randomly started
00:01:17 <Samu> random ai, to be precise
00:06:06 *** FLHerne has joined #openttd
00:12:56 <peter1138> Ok, C++ lambda function allows me to reduce code reuse in a modern way. Maybe ugly :p
00:13:15 <nielsm> code reuse should be increased, usually? :)
00:13:39 <peter1138> Redude code replication?
00:13:44 <peter1138> Increase code reuse.
00:13:48 <nielsm> reduce repetition yeah
00:14:24 <peter1138> Slightly ugly in that it's a function that sits in the middle of another function.
00:14:49 <Samu> an update was in due time
00:22:27 <peter1138> diff isn't the easiest to read, heh.
00:24:17 <peter1138> My alternative was to create a new list filled with either livery schemes or groups, but that was... massive.
00:28:32 <peter1138> Hmm, split-diff view is a little easier to grok in that case.
00:36:16 <Samu> are these blog-kind of updates worth it?
00:42:10 <Samu> i'm totally unsure how am I gonna split all of this into multiple pr's, as you requested
00:43:06 <Samu> it's just that I didn't code with that in mind
00:43:47 <Samu> have to dismantle code manually to make it into PRs
00:45:22 <nielsm> usually the hard part is to get a strong enough understanding of the problem to make a good solution, after you understand the problem, solving it becomes trivial
00:57:50 <peter1138> Adding 445 lines, removing 143. That's quite a lot.
00:58:59 <peter1138> So in terraform_gui.cpp, you invalidate the AI options window.
01:06:57 *** ChanServ sets mode: +v tokai
01:09:09 <Samu> terraform_gui.cpp is about the option that removes all company owned stuff in the scenario editor
01:09:19 <Samu> naturally that includes AIs
01:09:59 <peter1138> Removing company owned stuff does what to AI options?
01:10:11 <Samu> updates icons, button states
01:11:11 <glx> displaying options depends on terraformed stuff ?
01:13:31 <Samu> the AI's are then removed
01:13:37 <Samu> so i have to update the window
01:14:55 <Samu> if i dont update, it's gonna reflect them as being active, with the green smiles for a while, until i drag the window around
01:15:53 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 updated pull request #7106: Fix #7089: close NewGRF textfile windows when their data are invalid https://git.io/fhKuB
01:17:37 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 commented on pull request #7106: Fix #7089: close NewGRF textfile windows when their data are invalid https://git.io/fhivU
01:26:45 <Samu> it's aligned, surprisingly
01:27:02 <Samu> I had many doubts in this part
01:32:36 <peter1138> uint text_right = rtl ? text_left + text_width : text_left + text_width
01:32:43 <peter1138> Samu, so tell me what that line does, Samu?
01:35:57 <peter1138> But yeah, it's all wrong.
01:36:03 <peter1138> You already know the area where you can draw text.
01:36:09 <peter1138> And you know the size of the images.
01:36:14 <peter1138> You do not need to get the width of the text.
01:40:07 <Samu> thats the AI List window
01:41:01 <peter1138> As in the list of available AIs?
01:41:17 <Samu> list of available AIs, yes, that one
01:41:29 <Samu> bad screenshot, let me take it out
01:41:36 <peter1138> Then you don't need to do anything special as there's no icons in there.
01:42:09 <peter1138> And even then, you still don't need to get the width of the text.
01:42:12 <Samu> sec im posting a new screenshot
01:43:37 <peter1138> Sure. Why do you think you need to mess about getting string width?
01:44:24 <Samu> I don't know, honestly, i'm not sure it would fit before hitting the scrollbar
01:45:02 <peter1138> You just need to draw the text within the limits.
01:45:26 <peter1138> Again, check how other windows do this. None of them need to get the width of the text.
01:45:41 <glx> DrawString() takes care of RTL stuff IIRC
01:47:32 <glx> see how it's done for NewGRFWindow
01:48:15 <glx> only sprite size is used to determine text starting position
01:48:25 <glx> no need to get string size
01:48:33 <peter1138> Yup. Depending on rtl, you apply that width to either the left or right side.
01:49:10 <glx> string width is needed only when you want to draw something after the string
01:49:42 <Samu> i draw the newspaper icon
01:49:59 <glx> but even then it's easier to just base the position on the widget edge and don't care about the string
01:50:50 <peter1138> Samu, please, look at how other windows do it. That is not right.
01:51:00 <peter1138> Just because it seems to work, it is not right.
01:51:37 <Samu> gonna look at newgrf, brb
01:53:23 <glx> oh and NewGRFWindow even draw 2 sprites in front of the string
01:53:53 <glx> all that without the string width
01:55:09 <glx> always check how it's done in other windows, don't need to reinvent the wheel ;)
02:18:18 <Samu> uint text_left = rtl ? r.left + WD_FRAMERECT_LEFT : r.left + rai.width + 10;
02:18:33 <Samu> uint text_right = rtl ? r.right - rai.width - 10 : r.right - WD_FRAMERECT_RIGHT;
02:19:11 <Samu> i totally forgot about the r.
02:19:24 <glx> of course it's unused, it's not needed
02:21:48 <Samu> wasn't sure how the 'r.' would help me
02:22:42 <peter1138> + 10 is probaly not right.
02:23:07 <Samu> isn't it the empty space between the icon and the text?
02:23:18 <peter1138> You've lost WD_FRAMERECT_LEFT
02:23:52 *** Thedarkb-X40 has joined #openttd
02:25:51 <Samu> r.left + WD_FRAMERECT_LEFT + rai.width + 10; ?
02:26:20 <Samu> oh great, visual studio decided to hang
02:29:39 <Samu> uint rai_left = rtl ? r.right - WD_MATRIX_RIGHT - rai.width : r.left + WD_MATRIX_LEFT;
02:30:44 <Samu> uint square_left = rtl ? r.right - square.width - 5 : r.left + 5; of newgrf
02:31:19 <peter1138> newgrf hardcodes 5 for some reason.
02:31:51 <peter1138> Your line is right.
02:32:15 <Samu> uint text_left = rtl ? r.left + WD_FRAMERECT_LEFT : r.left + rai.width + 10;
02:32:33 <Samu> is this wrong? got the impression something's wrong here
02:35:37 <Samu> yeah, the first one, (random) is slightly misaligned
02:37:17 <peter1138> uint text_left = r.left + WD_FRAMERECT_LEFT + (rtl ? 0 : rai.width + 10); would work.
02:38:09 <peter1138> Neither needs text width, heh.
02:42:20 <Samu> right to left looks misaligned
02:42:29 <Samu> left to right looks fine
02:44:43 <Samu> looking at Available AI list
02:46:03 <Samu> maybe text_right is wrong
02:46:08 <peter1138> Are you sure you have the same code for that first line?
02:47:58 <Samu> sorry, the string i was working on is RandomAI
02:48:11 <Samu> the others with the actual icons have not been fixed yet
02:51:50 <Samu> looks like I can avoid repetition
02:51:59 <Samu> will simplify this part of the code
02:52:23 <peter1138> Yes, text_left & text_right won't change.
02:53:45 <peter1138> You just set them up once and then draw all the strings.
02:54:14 <Samu> i have a question regarding the use of static_cast
02:54:27 <Samu> Alberth didn't like that
02:54:31 <Samu> if (this->slot != OWNER_DEITY && static_cast<AIInfo *>((*it).second)->UseAsRandomAI()) DrawSprite(SPR_AICONFIG_RANDOM, PAL_NONE, rai_left, y + rai_y_offset);
02:54:55 <peter1138> Why do you need to cast it?
02:54:56 <Samu> can't recall why exactly
02:55:36 <peter1138> Dereferencing second should give you the right type.
02:56:33 <Samu> maybe because GS doesn't have UseAsRandomAI
02:56:48 <glx> unless it's a ScriptInfo I think
02:57:38 <peter1138> Hmm, is this OWNER_DEITY test used to determine if it is AI or GS then?
02:57:56 <glx> IIRC in this area, we sometime use a generic ScriptInfo container to store the derived objects
02:59:46 <glx> ScriptInfoList::const_iterator it = this->info_list->begin(); <-- I'm right ;)
03:00:17 <glx> so cast needed to call derived member functions
03:01:22 <Samu> GS's can't be randomized
03:01:38 <peter1138> Yes, we understand that.
03:02:21 <glx> I think it's more like GS don't have UseAsRandomAI() ;)
03:03:06 <glx> hence the cast when you're sure it's an AI
03:04:49 <Samu> at that point in the code, yes, i certified it is dealing with an AI
03:05:30 <Samu> so, static_cast is being correctly used?
03:05:37 <Samu> or do i have to change this
03:08:42 <glx> if you look in the next widget case, you'll see the same is done to draw the info details
03:09:43 <glx> hmm wait not the same window maybe, but still
03:12:32 <Samu> it's the AI Settings window, right?
03:12:42 <Samu> that one is much more complex
03:13:05 <Samu> have to fix the text_left, text_right stuff in there too
03:13:45 <glx> case WID_AIL_INFO_BG, you'll see a static_cast there too
03:14:20 <Samu> interesting, i missed it
03:14:27 <Samu> i didn't touch that part
03:19:50 *** snail_UES_ has joined #openttd
03:21:29 <glx> hmm the info panel is nasty, it assumes an AIInfo even for GameInfo
03:21:58 <glx> luckily only common fields from ScriptInfo are used
03:28:08 <glx> funny, AIInfo and GameInfo both declare their own GetAPIVersion() with local storage
03:29:10 <glx> oh it's because libraries
03:49:40 <Samu> I don't think I need DeleteWindowByClass(WC_QUERY_STRING); on the AI List anymore
03:50:44 <Samu> the AI Settings window will handle if it's needed to close
03:53:37 <Samu> InvalidateWindowClassesData(WC_AI_SETTINGS); is also wrong, i can be cirurgic about it
03:55:11 <Samu> InvalidateWindowData(WC_AI_SETTINGS, slot);
03:57:04 <Samu> one less windows closure!
03:59:25 <Samu> oh snap, i forgot to add the fixes to textfile window
03:59:41 <Samu> thought i had them already
05:06:14 <Samu> i'm attempting to simplify DrawWidget for AIConfigWindow
05:06:44 <Samu> now that I got more experience, I know what to do
05:09:29 <Samu> gonna sleep, cyas goodnigh
05:15:09 *** Thedarkb1-X40 has joined #openttd
05:24:31 *** snail_UES_ has joined #openttd
07:32:18 *** sla_ro|master has joined #openttd
08:23:00 *** andythenorth has joined #openttd
08:58:27 <andythenorth> Pikka: the strayan contingent need help with 64 cargos :)
08:59:56 <Pikka> is it that his NML is out of date and doesn't allocate more than 32 ids?
09:00:29 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #7108: Feature: Group liveries, and livery window usability enhancements. https://git.io/fhK9F
09:00:34 <Pikka> that was my first thought, but I don't use NML so I wouldn't know
09:02:50 <peter1138> Maybe it doesn't work ;p
09:03:07 <andythenorth> I did test it :P
09:03:10 <andythenorth> maybe I did it wrong
09:03:24 <andythenorth> Pikka: so are you the last remaining nfo coder? :)
09:08:13 <Pikka> maybe... who knows, maybe coding industries will convince me to switch :)
09:17:02 <andythenorth> we should preserve pikka for the nation
10:01:41 *** andythenorth has joined #openttd
10:35:41 <andythenorth> draw a new website pikka? o_O
10:44:31 <nielsm> birds, making confetti from newspapers...
10:44:39 * nielsm has taken two days off work
11:09:32 <Samu> why is this so confusing
11:09:50 <Samu> aligning text with images
11:10:21 <Samu> can you tell me if the alignment on AI SETTINGS is ok?
11:10:46 <Samu> hold on, i'll link to code directly
11:12:01 <Samu> uint cid_right = rtl ? cid_left + widest_cid : cid_left + widest_cid;
11:12:18 <andythenorth> did anyone release a new Horse yet?
11:12:25 <peter1138> Because you're selecting the same value regardless of rtl.
11:12:45 <Samu> the value is defined just above
11:12:48 <nielsm> andythenorth, aren't horses usually kept in captivity?
11:13:16 <peter1138> Samu, how is it different from"uint cid_right = cid_left + widest_cid; ?
11:13:23 <Samu> cid_left is not the same value for rtl than ltr
11:13:26 * andythenorth is actually listening to 'runaway horses' by pure coincidence
11:13:44 <Samu> uint cid_left = rtl ? rai_left - 10 - widest_cid : rai_left + rai.width + 10;
11:14:01 <peter1138> But you're setting cid_right on the line you showed, not cid_left.
11:14:21 <Samu> but cid_left is defined above
11:14:31 <peter1138> How is that relevant?
11:18:13 <Samu> uint cid_right = rtl ? r.right - WD_MATRIX_RIGHT - widest_icon - 1 - rai.width - 10 - widest_cid + widest_cid : r.left + WD_MATRIX_LEFT + widest_icon + 1 + rai.width + 10 + widest_cid;
11:18:22 <Samu> with everything expanded
11:18:36 <peter1138> Why would you "expand" it?
11:18:45 <nielsm> when layouting in RTL, you do exactly the same as when layouting in LTR mode, except you start from the right-hand edge and subtract lengths, instead of starting from left-hand edge and adding lengths
11:19:08 <peter1138> uint cid_right = rtl ? cid_left + widest_cid : cid_left + widest_cid;
11:19:21 <andythenorth> do we handle that explicitly every time we draw text?
11:19:24 <peter1138> cid_left and widest_cid are the same values regardless of rtl, within that line.
11:19:40 <andythenorth> it's not just a widget tree, and we run reverse order?
11:20:41 <peter1138> Yeah, it's a bit shitty when we have text and icons mixed.
11:20:59 <peter1138> By mixed I mean drawn within the same widget.
11:21:14 <nielsm> andythenorth, the window layout stuff does handle most of that automatically
11:21:32 <nielsm> except for self-drawn things, like list items combined from text and graphics
11:21:45 <nielsm> those aren't layouted automatically, but "owner-drawn"
11:23:08 <Samu> uint cid_right = rtl ? cid_left + widest_cid;
11:23:39 <Samu> uint cid_right = cid_left + widest_cid
11:23:55 <peter1138> I wrote exactly that line earlier.
11:24:07 <Samu> ok, let me fix that already
11:25:17 <peter1138> I'm glad it took 10 minutes to resolve that.
11:25:26 <Samu> done, but i'm still wondering... if everything else is correct
11:25:49 <peter1138> I'm not saying the rest is right.
11:25:53 <peter1138> But that is obviously wrong.
11:26:17 <peter1138> I'm busy at the moment, tbh.
11:26:48 <Samu> i've edited it so far to try avoid repetition
11:27:15 <Samu> i'm only wondering if i have the rlt stuff correct
11:27:23 <andythenorth> IRL narrow gauge is probably too small for ladle wagons
11:27:39 <Samu> it's the part I have most difficulty
11:28:19 <nielsm> Samu, get some graph paper and try working out the layout calculations for LTR and RTL separately, with pen and paper
11:29:59 <nielsm> draw how the window _should_ look, and work backwards from that to figure out how to calculate the dimensions and positions of things
11:32:22 <Samu> that's actually a good idea
11:32:22 <nielsm> TrueBrain: how about building a docker of the dedicated server along with the nightlies?
11:42:50 <Samu> dang, the counting of image widths is what's confusing me in the right to left approach
11:44:06 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh updated pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fh6im
11:48:57 <Samu> sprites are drawn from left to right only?
11:49:20 <nielsm> they are drawn at the position you give
11:49:37 <nielsm> they are never mirrored on screen, and the screen coordinate system is always left edge as zero
11:49:52 <nielsm> with X values increasing towards the right
11:51:15 <andythenorth> usually flipping things is just a transform, with faff
11:51:23 <Samu> so I see they're only drawn left to right
11:51:31 <Samu> hence the whole confusion
11:51:46 <Samu> trying to apply them on a right to left text
11:52:32 <nielsm> you can maybe think of it as arranding a bunch of boxes in a row, in RTL the order of the boxes is reversed, but the contents of each box is not
11:52:55 <nielsm> (except that the text is drawn from the right edge of the box in RTL mode, but that's beside the point)
11:53:15 <nielsm> s/arranding/arranging/
11:55:27 <Samu> wondering if i needed to measure company id string
11:55:42 <Samu> the 1-15 text being displayed
12:01:21 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh updated pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fh6im
12:04:27 <peter1138> You can measure just "99"
12:05:16 <Samu> i measured all numbers from 1 to 15
12:05:25 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fhizx
12:05:53 <Samu> this was much easier to visualize with pen and paper, kudos
12:06:15 <Samu> and peter1138 too, much thx
12:06:18 <peter1138> Samu, back in the day, pen and paper was used to figure out the program logic too.
12:07:32 <nielsm> in 2003 and 2004 the exams I took in computer science included pen-and-paper coding problems, no textbooks, computers, or even pocket calculators, allowed
12:08:01 <Samu> everything is correct, the only exception being uint cid_right = rtl ? cid_left + widest_cid : cid_left + widest_cid; which i fixed
12:08:21 <Samu> which isn't wrong per se, but ... just ... meh, nvm
12:08:22 <peter1138> I mean, it wasn't "wrong" but it was pointless.
12:08:40 <peter1138> But now, is it correct and simple, or is it correct and complex?
12:09:03 <peter1138> Can o' worms there.
12:10:58 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fhi29
12:11:22 <nielsm> okay I think that patch is done now
12:20:03 <planetmaker> meh... cc1plus: error: unrecognized command line option "-std=c++11"
12:20:04 <planetmaker> make[1]: *** [string.o] Error 1
12:20:04 <planetmaker> make[1]: *** Waiting for unfinished jobs....
12:20:04 <planetmaker> cc1plus: error: unrecognized command line option "-std=c++11"
12:20:04 <planetmaker> cc1plus: error: unrecognized command line option "-std=c++11"
12:20:04 <planetmaker> make[1]: *** [alloc_func.o] Error 1
12:20:06 <planetmaker> make[1]: *** [strgen_base.o] Error 1
12:20:08 <planetmaker> make[1]: Leaving directory `/home/openttd/git-publicserver/objs/lang'
12:20:10 <planetmaker> make: *** [all] Error 1
12:20:12 <planetmaker> [root@publicserver-new git-publicserver]# gcc --version
12:20:14 <planetmaker> gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
12:21:39 <planetmaker> so... what gcc do I need?
12:31:04 <Samu> unrelated, I am wondering if it's okay to let ai settings be editable in SE if the instance is active and alive
12:31:30 <Samu> for some reason, I decided it was not okay
12:32:00 <andythenorth> planetmaker: clang? o_O
12:32:18 <planetmaker> not on that version of centos
12:33:35 <planetmaker> centos has astonishing long lifetime... but stuff gets old nonetheless
12:33:56 <Eddi|zuHause> well, you might want a version that is less than 7 years old
12:34:14 <planetmaker> 2.6.32-042stab130.1 #1 SMP Tue May 22 09 <-- probably :)
12:34:30 <planetmaker> EOL is next year for that distro
12:36:31 <LordAro> planetmaker: i think 4.9 will work, still
12:39:22 <planetmaker> I must upgrade the HV this year :|
12:42:28 <nielsm> Samu, don't change settings behind an already started AI, they probably won't be coded to assume settings can change under their feet
12:44:41 <andythenorth> based on my limited experience coding GS I would strongly concur
12:47:32 <Samu> the issue is this: I save a game with ais. I rename .sav to .scn and i open it in the editor
12:47:57 <Samu> what can be allowed and what can't be allowed on ais
12:48:15 <Samu> what will happen once i save the scenario and play it
12:48:51 <nielsm> don't change settings behind the back of an already started AI, but feel free to add or remove players?
12:49:41 <Samu> that's apparently my current decision, was only trying to remember why I did it this way
12:50:19 <nielsm> this is why documenting your software and keeping the documentation updated is a good idea :)
12:54:31 <planetmaker> devtoolset seems to be a centos/rhel thing to get newer tools...
12:57:22 <Samu> what will be saved in relation to AI data when the save is done in the scenario editor
12:57:35 <Samu> something that i must explore
13:04:41 <peter1138> planetmaker, wow, that's an ancient machine.
13:08:36 <Samu> /* Save the data that was just loaded. */
13:09:50 <Samu> that partially explains why I'm not letting its settings to be altered in SE
13:13:41 <Samu> I could improve this part a bit, though. Currently, I'm simply disabling the Settings window.
13:13:59 <Samu> Perhaps I could access the window, but have everything grayed out
13:14:10 <Samu> at least I could see how they are atm
13:17:53 <planetmaker> peter1138, yep. As long as there's security updates and it works... no need to upgrade ;)
13:21:33 <Eddi|zuHause> well, i think the time has come where one of those things doesn't apply anymore :p
13:25:08 <peter1138> Grr, my monodevelop is not updating references or whatever it is properly.
13:35:22 <peter1138> Is there another URL that does similar? I'm sure I saw one that had current info on it.
13:56:14 <Arveen2> word on the internet is nightly builds are back ?
13:57:18 <peter1138> Cos TrueBrain is a magician.
13:57:39 <Arveen2> I tried to build a recent version on VS like 2 weeks ago and it failed when trying to use the ottd useful 6.0 package
13:57:58 <peter1138> Don't need to use that any more.
13:58:08 <peter1138> Latest build instructions use vcpkg.
13:58:33 <Arveen2> i didn't notice there was a change
13:59:47 <Arveen2> seems like it's time to get some ottding going tonight, heh
14:03:43 *** D-HUND is now known as debdog
14:04:48 <nielsm> I kinda want to set up a server running nightly, and auto-upgrading at some point a few hours after each new build
14:07:15 <planetmaker> such server used to exist... maybe it should be revived :)
14:07:58 <planetmaker> coop always used manual updates, usually between games. But there was for a time a server by dihedral which updated every day.
14:08:44 <planetmaker> Seeing that about no-one plays on coop servers regularily anymore... maybe a good idea to put it to such use
14:10:01 <nielsm> I'm thinking writing a small GS that sends newspapers/other messages to players when the daily update is about to be installed so they can get ready
14:10:25 <nielsm> then pause the game for the last 5-10 minutes before kicking everyone off and installing the new version
14:11:10 <planetmaker> I don't think it needs a GS for that purpose. You can send to ingame via admin port which you need anyway
14:11:44 <nielsm> well could do silly things like putting the latest changes in the storybook? :D
14:12:20 <planetmaker> or adding an extended tutorial script as GS... hm... OpenTTD tutorial server
14:13:05 <nielsm> ask players starting a new company "do you want a tutorial?" and if they do, it finds route suggestions and shows what to do?
14:13:19 <planetmaker> something like that, yes
14:13:28 <peter1138> Who needs a GS when you can just make AIs cheat!
14:14:43 <peter1138> Hmm, shall I work on group liveries some more? Like making this hierarchy thing work.
14:14:48 <peter1138> It's kinda a pain :/
14:15:33 <Arveen2> i'd play coop again without hesitation if there would be a new game
14:15:50 <peter1138> Cos at the moment "scheme not in use" means use-the-default-vehicle-type-specific scheme, rather than use-the-parent-group scheme.
14:15:55 <Arveen2> i was playing frequently but you are right, seems not much is going on there
14:16:13 <peter1138> OpenTTDCoop was never my build style.
14:16:29 <Eddi|zuHause> peter1138: needs more OOP?
14:16:59 <Eddi|zuHause> LiveryResolver object
14:17:09 <peter1138> Eddi|zuHause, no, it's just, which is preferable, use type-specific or parent?
14:17:31 <peter1138> it could possibly even be either, "default" or "inherit"
14:17:33 <planetmaker> Arveen2, it needs people who actually help with running that
14:17:34 <Eddi|zuHause> peter1138: spontaneously i'd say parent
14:18:08 <planetmaker> I'm about the only person currently who is somewhat around and has access to the servers. But it needs people playing. Moderating ingame,... updating the server
14:18:17 <planetmaker> not difficult. Not much to do. But needs doing
14:18:40 <planetmaker> I'm happy to grant access to people who want to carry on with that
14:18:50 <planetmaker> "the old people" seem to have gone mostly
14:18:50 <Eddi|zuHause> peter1138: say, i'm making tram networks, and one group per line in a town, then it might be useful to have a parent group for each town that handles the livery
14:19:02 <Arveen2> the last couple of games it was already hard to get a plan going
14:19:29 <nielsm> peter1138: vehicle is asked for its livery, vehicle asks its group for livery, group asks parent group for livery, etc., until vehicle receives a group livery configuration, and then it applies default liveries for its types for any "default" values in the group livery config?
14:19:30 <peter1138> planetmaker, they moved on to that other game on steam?
14:19:48 <planetmaker> Maybe it needs to be handled a bit different than before... dunno. Making a plan... could be done alone, if need be
14:19:54 <peter1138> the one V is involved in
14:20:00 <planetmaker> peter1138, factorio? Possibly. It's addictive :P
14:20:01 <nielsm> and the same group livery check could be used to draw the default values in the livery config window
14:20:18 <planetmaker> and they have nice MP servers, too
14:21:20 <peter1138> Are we going to try to put OpenTTD on Steam?
14:21:42 <peter1138> Was it you talking about it?
14:21:47 <planetmaker> Not making progress on getting 'openttd' as username. But will go forward with another
14:22:09 <peter1138> I dunno, Steam's social aspect is useful.
14:22:19 <peter1138> "$Friend is now playing OpenTTD, click to join!"
14:22:37 <nielsm> that would imply adding some steam api stuff into the game
14:22:43 <peter1138> planetmaker, openttd already gone? :/
14:22:43 <planetmaker> Not using that really much myself... but possibly.
14:22:59 <planetmaker> some guy has it ... and wasn't online for 4 years... but yeah
14:23:08 <peter1138> nielsm, maybe. You get a notification starting just a shortcut in steam as well.
14:23:22 <peter1138> Send a tweet to Gabe himself lol
14:23:24 <planetmaker> but username != display name I think
14:23:48 <peter1138> Yeah, can we just set up an openttd developer account
14:24:06 <planetmaker> nielsm, maybe it would imply that... but it could be a special steam version... like --with-steam-api on config
14:24:06 <peter1138> Hmm, is it actually single-user or some kinda of organisation system? Never looked of course.
14:24:32 <planetmaker> peter1138, yes, that's why I wanted openttd. But will openttd.org or so
14:24:41 <nielsm> peter1138, if we want "click here to join their game" there would need to be something that announces to steam that you have started/joined a network server and what its address is
14:25:13 <nielsm> also possibly a way to convert a singleplayer game to multiplayer in "one click"?
14:25:16 <peter1138> Anyway that's a long way off
14:25:21 <peter1138> First step is just get it on Steam.
14:25:25 <nielsm> i.e. not save, quit, reload on multiplayer mode
14:25:27 <peter1138> I know people have asked for it for years.
14:25:49 <planetmaker> opinion used to be quite against it, I think. But... seems to have changed
14:26:52 *** snail_UES_ has joined #openttd
14:28:26 <peter1138> Hmm, of course if the app needs some kind of key (credentials) to access features on the platform then that's kinda awkward.
14:29:28 <nielsm> peter1138, that's basically a compile-time option right?
14:29:56 <peter1138> Means user-compiled builds won't work?
14:31:01 <planetmaker> wtf... "Ihr Account konnte nicht eingerichtet werden. Versuchen Sie es bitte später noch einmal." could not create account. Try again later
14:33:08 <nielsm> someone requested a while ago a feature to broadcast "joined network game" etc to discord/similar too, that could maybe be wrapped in similar code
14:34:28 <Eddi|zuHause> nielsm: i suggested to them to try an admin port wrapper
14:34:49 <nielsm> does a network client have an admin port?
14:37:25 <planetmaker> nielsm, coop runs an admin port to irc bridge for OpenTTD. That same could easily be done with discord as well
14:37:38 <planetmaker> and all joins etc are broadcast as well as ingame chat
14:38:10 <nielsm> yeah but this is about a player connecting their client to a server they do not control, and have their client tell a local application about which server they joined
14:39:19 <planetmaker> admin port is currently only available for... servers
14:39:40 <peter1138> That was nielsm's point :)
14:40:15 <planetmaker> sorry, read it as question
14:45:02 <peter1138> Oh. My Jenkins isn't running. Odd.
14:45:31 <peter1138> That explains why the CI isn't running I suppose.
14:49:00 <peter1138> r154352009-08-09extra/pngcodec
14:49:07 <peter1138> Is pngcodec relevant at all?
14:49:35 <peter1138> All those extras seem pretty out of date.
14:54:44 <DorpsGek_II> [OpenTTD/OpenTTD] paulcobbaut opened issue #7126: custom font settings in openttd.cfg seem to be ignored https://git.io/fhiS6
14:55:32 <planetmaker> uh... no. pngcodec is the old 32bpp era, not the current
14:56:17 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on issue #7126: custom font settings in openttd.cfg seem to be ignored https://git.io/fhiS1
14:56:17 <planetmaker> grfcodec is actually correct
14:56:28 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on issue #7126: custom font settings in openttd.cfg seem to be ignored https://git.io/fhiSM
14:56:33 <planetmaker> and catcodec probably, too
14:56:33 <peter1138> planetmaker, that's what I thought.
14:57:17 <nielsm> oh shit, if ottd gets on steam people are going to demand achievements!
14:57:17 <planetmaker> open??x ... checking :D
14:57:30 <planetmaker> nielsm, not a bad thing, is it?
14:57:47 <planetmaker> opengfx is a bit out-of-date
14:58:11 <DorpsGek_II> [OpenTTD/OpenTTD] paulcobbaut commented on issue #7126: custom font settings in openttd.cfg seem to be ignored https://git.io/fhiS7
14:58:14 <nielsm> "enemy of nature: raise 100 sea tiles to land in one operation"
14:58:41 <planetmaker> openmsx and opensfx are ok
14:58:58 <peter1138> Any Mac OS users around? :D
14:59:01 <planetmaker> nforenum is also ok
14:59:05 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on issue #7126: custom font settings in openttd.cfg seem to be ignored https://git.io/fhiSj
14:59:56 <nielsm> (the problem with achievements is that you need to litter checks for them around the code everywhere)
15:00:54 <planetmaker> so in summary: everything in finger.o.o is fine - except OpenTTD nightlies. And somewhat OpenGFX, but no big deal there.
15:01:45 <milek7> steam api stuff could be incompatible with GPL
15:02:18 <planetmaker> I checked. It should be ok
15:02:32 <nielsm> the api is public, nothing is secret about it
15:02:48 <peter1138> If it's just a web api, then no.
15:03:26 <nielsm> the game integration is a dynamic library you link and call into, which does IPC with the running steam client
15:03:27 <planetmaker> well... yes. no. The SDK has some NDA included
15:03:58 <planetmaker> but going to check that carefully
15:04:15 <peter1138> Then strictly speaking, yeah, that's not usable.
15:05:43 <planetmaker> Not sure that is needed, though. At least not for bringing it on steam in the first place
15:06:17 <nielsm> yeah no, not needed to just be published
15:06:28 <nielsm> only for the integration with "join my server" etc
15:08:44 <milek7> hm, i thought GPL extended also to dynamic libraries
15:09:32 <nielsm> yeah technically you're violating GPL by making a binary that depends on an external library that isn't GPL compatible
15:09:48 <nielsm> (unless that library is arguably part of the operating system)
15:10:13 <peter1138> Hence the C runtime on Windows is "okay".
15:10:19 <nielsm> because you're not allowed to infect the proprietary code with GPL
15:10:46 <nielsm> then your own code becomes a license violation
15:12:48 <nielsm> the way I understand it, a single chunk of GPL code in a loaded and running binary "infects" all other code in that same process with GPL-ness, and if that would be a violation of the license of any of that other code, then that original chunk of GPL code is used without permission
15:13:38 <nielsm> i.e. if you write an in-process COM server for windows file explorer shell API, then it can't actually run because it's not allowed to be loaded in the explorer process
15:13:56 <planetmaker> "Generally, any license that has a so-called “copyleft” element will be problematic when combining code with the Steamworks SDK. The best-known example is GPL."
15:14:11 <planetmaker> the SDK is not the web API, though
15:14:53 <nielsm> I've seen that argument used for a foobar2000 plugin integrating FFTW, fb2k itself it closed software, the plugin SDK is BSD 2-clause or 3-clause license (iirc), and FFTW is GPL
15:15:16 <nielsm> and the author of FFTW, or maybe it was a resampling library?, claimed it was illegal use
15:16:01 <planetmaker> fftw = fastest fourier transform of the west?
15:16:12 <nielsm> actually it was probably not that
15:16:28 <peter1138> That would be a violation, yes.
15:16:40 <peter1138> But ergh, we don't need to discuss that :)
15:24:31 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 opened pull request #7127: Fix #7112, fef8b831a9: incorrect precondition check https://git.io/fhiQB
15:25:44 *** supermop_work has joined #openttd
15:39:01 *** Mahjong has joined #openttd
15:39:50 *** Mahjong has joined #openttd
15:46:22 <planetmaker> indeed. I think we all know what GPL allows and what not :) And make decisions according to that wrt steam
15:47:44 <Samu> IsConsideredDead is repeated, just wondering if there's a way to not have it twice
15:48:35 <glx> Samu: you may want to add parenthesis around your || and && groups, it's easier than trying to remember the evaluation order
15:49:05 <Samu> oh, right, i keep forgeting
15:50:17 <glx> IIRC it's first && then || but may be the other way
15:52:26 <peter1138> Always specify the order you want, heh.
15:52:28 <nielsm> no, that can't be simplified with regard to IsConsideredDead
15:53:23 <glx> _game_mode == GM_NORMAL && (IsConsideredDead(this->slot) || (config_item.flags & SCRIPTCONFIG_INGAME) != 0) <-- you really mean (normal && dead) || flags ?
15:54:07 <glx> oups forget it, wrong reading :)
15:54:18 <glx> too many parenthesis for me
15:54:28 <peter1138> Problem is it may not be right ;)
15:54:51 <Samu> in a normal game do this check: IsConsideredDead(this->slot) || (config_item.flags & SCRIPTCONFIG_INGAME) != 0
15:54:51 <nielsm> it's a really complex condition and should not be a single line to begin with
15:55:03 <nielsm> write it as a function that accepts/rejects via early returns
15:55:06 <Samu> in main menu, do check in line 1
15:55:17 <Samu> in scenario editor, do check line 3
15:58:02 <Samu> IsConsideredDead isn't flexible enough to deal with scenario editor :|
15:58:21 <glx> maybe split in "editable |= ...;" lines hoping the compiler optimises "true |= ..." stuff
15:58:44 *** andythenorth has joined #openttd
15:58:51 <nielsm> is how I read the condition
15:58:58 <nielsm> and that's easier to read and argue about
15:59:21 <nielsm> it won't win contests for being short, but we're not here to code golf, we're here to write bug-free code
15:59:50 <glx> indeed the function is self explain
15:59:51 <Samu> if (!IsValidAiID(slot)) return true; is only for non deity
16:00:15 <nielsm> Samu I don't know, your code is not clear because you're not using enough parentheses
16:00:51 <nielsm> ?: conditional expressions are another place there operator precedence rules are really difficult to remember
16:01:18 <nielsm> and you should really not use ?: expressions with anything but simple values or singular conditionals in each slot
16:01:44 <glx> indeed ?: has less priority than ||
16:01:50 <nielsm> (foo == bar || foo == baz) ? (x+5) : (y*6)
16:04:19 <glx> so (a ? b : c || d) is (a ? b : (c || d)) when you may want it to be ((a ? b : c) || d)
16:04:40 *** andythenorth has joined #openttd
16:05:22 <glx> that's why it's better to use parenthesis, ensure it does what you want
16:05:48 <nielsm> or just split up conditionals into multiple statements
16:06:02 <nielsm> a modern compiler is probably going to generate identical code
16:06:17 <planetmaker> yep... the ternary operator is... too complex with anything bigger than very simple stuff
16:06:33 <planetmaker> not reader-friendly. And compilers...are good enough, I guess, too
16:06:35 <peter1138> ternary is okay for rtl ? ;-)
16:06:44 <peter1138> (That was not a question)
16:07:17 <glx> when it's not in the middle of some complex stuff it's ok :)
16:07:19 <planetmaker> rtl = read_from_left ? no : yes
16:08:09 <glx> but mixing || and && is already complex enough to not add ?: in it
16:08:42 <glx> but it was not doing what you expected I think
16:08:45 <Samu> just wanted to make it simpler, i guess
16:09:00 <Samu> no, it was doing as I intended
16:09:15 <nielsm> well, we couldn't figure out what you intended
16:09:26 <glx> even (this->slot == OWNER_DEITY ? Game::GetInstance() == NULL : !IsValidAiID(this->slot) || Company::Get(this->slot)->ai_instance == NULL) ?
16:09:34 <Samu> hehe, the game did understand
16:09:49 <glx> ah yes you really wanted (c || d)
16:10:18 <nielsm> the compiler does exactly what you tell it to, even when you misspeak
16:10:26 <nielsm> (then it just doesn't do what you intended)
16:11:45 <glx> hehe like using if (a = b) instead if (a == b)
16:11:46 <Samu> a && (b ? (c) : (d || e))
16:12:01 <glx> it's valid but not what you usually want
16:12:27 <Samu> becomes a && (c), or a && (d || e)
16:12:51 <planetmaker> Samu, in that case I very much prefer a && IsThisFunctionTrue(b,c,d,e)
16:13:43 <glx> hey use a lamba function ;)
16:13:59 <Samu> something like the private that glx used to fix the widgets?
16:14:29 <planetmaker> I'm not exactly on good terms with lambda functions :P
16:15:10 <Samu> i call it circumflex accent
16:16:01 <peter1138> planetmaker, better review my group-livery PR then ;)
16:16:32 <nielsm> ^ is not involved in C++ lambda syntax
16:16:44 <nielsm> (it's just the bitwise xor operator)
16:17:20 <peter1138> Oh yes, hierarchy. Hmm.
16:17:36 <glx> but a normal function is ok too
16:17:36 <peter1138> Maybe I can lambdaise that and make it generic.
16:18:38 <Samu> "Constructs a closure: an unnamed function object capable of capturing variables in scope. " not english enough for me
16:20:07 <glx> btw Samu I guess your editable calculation happens for DrawWidgets and OnClick
16:20:45 <Samu> yes, that which you fixed recently
16:20:58 <glx> so indeed you should use an external function
16:21:30 <glx> that way you'll be sure draw and click are similar
16:21:50 <glx> even if the conditions are changed later
16:22:28 <glx> and with the external function it's possible to get rid of the expression complexity
16:23:24 <glx> I didn't in my fix, but for your complex stuff it's needed
16:26:02 <glx> the return line can be spit in 3 if (...) return true, then a final return false, so 4 lines instead of 1, but easier to follow
16:27:32 <planetmaker> Samu, and the function itself: it is much more readable in the form which niels suggested earlier: early returns instead of one complex expression
16:28:45 <planetmaker> if _game_mode == GM_MENU return true;
16:29:00 <glx> indeed, once something in ... || ... || ... is true it won't change
16:29:21 <planetmaker> if (this->slot != OWNER_DEITY) && !Company::IsValidID(this->slot) return true;
16:29:51 <planetmaker> if (config_item.flags & SCRIPTCONFIG_INGAME) != 0 return true
16:30:03 <glx> hey that's my stuff ;) (and yes I could have split it)
16:30:34 <planetmaker> sorry. was it you? Ok, Sam u, take glx' advice :)
16:32:01 <glx> and this one is not that complex, but indeed as it's in a function it's easy to split it to simplify the reading
16:32:51 <peter1138> 45 minutes later...
16:34:13 *** Wormnest has joined #openttd
16:34:19 <nielsm> nullptr is the same as NULL
16:34:26 <nielsm> except it's a pointer type
16:34:42 <glx> and if you see nullptr you failed somewhere ;)
16:34:43 <nielsm> while NULL is a #define'd constant
16:35:18 <nielsm> new C++ code should use nullptr instead of NULL or 0 when working with pointer types
16:35:46 <glx> but in openttd we still use NULL
16:35:53 <Samu> hmm it was working with NULL, not sure I'd change to nullptr
16:36:21 <nielsm> they're functionally identical
16:37:20 <nnyby> openttd seems to follow a more C-like style which I kinda like cause I don't know too much C++ >_<
16:38:10 <planetmaker> well... OpenTTD cannot deny its C heritage
16:38:39 <planetmaker> its style guide works extremely well, IMHO
16:39:07 <crem2> nullptr is safer than NULL. nullptr cannot be converted to integer. So if `int *p;`, you cannot mistakenly do `*p = nullptr`, but can `*p = NULL`.
16:40:34 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh updated pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fh6im
16:42:08 <planetmaker> is there a way to re-trigger the CI?
16:42:13 <crem2> There once was this particular typo which caused some very large outage in one of major services of one of well-known software companies. :)
16:42:41 <peter1138> Probably needs TB to log in again. Shitty azure :/
16:42:58 <planetmaker> or should I simply merge that commit and hope it compiles? :P
16:43:15 <peter1138> Well you can test it locally.
16:43:28 <glx> ah yes #7106 is stuck too
16:43:42 <Samu> oh crap, i need to actually enable the configure button too
16:44:08 <Samu> enabled in one place, left it unenabled in the other
16:44:10 <planetmaker> the CI seems somewhat unreliable :|
16:44:47 <planetmaker> the other didn't cost us anything either ;)
16:45:07 <planetmaker> (but time / maintenance)
16:45:23 *** sla_ro|master has joined #openttd
16:46:11 <peter1138> Need TB to login on a cron, heh
16:46:31 <peter1138> Or maybe just get logins for other devs so they can do it.
16:46:43 <planetmaker> a bot checking issues to have completed and re-trigger a built, if not
16:46:50 <planetmaker> like the stale issue checker
16:47:14 <Samu> this->SetWidgetDisabledState(WID_AIC_CONFIGURE, this->selected_slot == INVALID_COMPANY || GetConfig(this->selected_slot)->GetConfigList()->size() == 0);
16:47:20 <nielsm> some more people with login-access to the azure org would help too
16:47:25 <Samu> this->SetWidgetDisabledState(WID_AID_SETTINGS, ai_debug_company == INVALID_COMPANY || GetConfig(ai_debug_company)->GetConfigList()->size() == 0);
16:47:41 <nielsm> I don't think you even need any special permissions for it, just ability to log in as a member of the org to "keep it alive"
16:47:46 <Samu> it's funny, in one place it's called settings, in the other it's called configure, and yet they refer to the exact same window
16:48:17 <planetmaker> do we have some keepass database with login & stuff? Would make sense IMHO
16:48:34 <peter1138> Don't think it needs to be a single login, in this case.
16:48:35 <nielsm> just add more members to the org?
16:48:49 <planetmaker> also true probably, yes
16:49:01 <planetmaker> always need 2 with complete access to every service
16:49:32 <peter1138> Or, we could pay for it?
16:49:56 <nielsm> I think paid accounts have the same rule
16:50:06 <Samu> i need a GS with no parameters, for testing
16:50:12 <peter1138> Ah, right, this page I'm looking at is 5 years old :/
16:50:13 <nielsm> unless you pay for your own azure build hosts
16:52:20 <glx> it's often easier to write an "empty" script than to search for one matching your test case
16:52:38 <peter1138> Urgh, now I have to invalidate colours when changing a group's parent.
16:52:46 <planetmaker> Samu, tutorial-GS?
16:54:34 *** andythenorth has joined #openttd
17:00:21 <peter1138> And traversing parents is easy, but children not so much.
17:01:46 <peter1138> Maybe I should just not support group heirarchy :p
17:05:22 *** WWacko1976-work has quit IRC
17:09:01 <Samu> interesting, just found a bug
17:09:13 <Samu> if the parameter is DEVELOPER
17:09:21 <Samu> the list of settings isn't empty
17:09:34 <Samu> it's not considering whether they're visible or not
17:10:14 <Samu> technically, the list has items, but since they're hidden...
17:10:27 <Samu> it should disable the button
17:11:55 <glx> if nothing is displayed, disabling makes sense I guess
17:11:57 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh approved pull request #7127: Fix #7112, fef8b831a9: incorrect precondition check https://git.io/fhPUN
17:16:21 <DorpsGek_II> [OpenTTD/OpenTTD] planetmaker merged pull request #7127: Fix #7112, fef8b831a9: incorrect precondition check https://git.io/fhiQB
17:24:23 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh approved pull request #7101: Fix #6636: Airplanes could be sent to helicopter station depots https://git.io/fhPkv
17:24:36 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh merged pull request #7101: Fix #6636: Airplanes could be sent to helicopter station depots https://git.io/fhKfk
17:31:52 <nielsm> I think that's the result of savegame version incrementing past that I used in another branch :)
17:44:06 <Samu> GetConfig(ai_debug_company)->GetConfigList()->size() == 0
17:44:27 <Samu> this check isn't enough to determine whether Settings button is to be enabled or disabled
17:44:42 <Samu> need another private function?
17:45:07 <Samu> and it's used both for AI Congig and AI Debug
17:45:20 <Samu> hmm so... can't be private?
17:45:50 <Samu> something a-la IsConsideredDead, I suppose
17:46:05 <andythenorth> we need a mac-in-cloud for testing :P
17:46:20 <andythenorth> currently I have to be mac-in-cloud personally, it's getting demoralising :D
17:47:03 <peter1138> But do your fonts work?
17:47:45 <andythenorth> I would never use a weird font
17:47:50 <andythenorth> so now I have to learn how to do that
17:48:31 <glx> you just have to set fonts in the config
17:50:59 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7081: Change: [Linkgraph] Pause the game when linkgraph jobs lag (#6470) https://git.io/fhPtQ
18:01:39 <nielsm> it's annoying testing things that really need a release/optimized build for performance
18:01:50 <nielsm> since those take rather long to make
18:04:38 <Samu> I am inventing ^_^static bool IsGUIConfigListEmpty(CompanyID slot)
18:05:15 <Samu> mostly copy pasting code around into it
18:08:19 <andythenorth> my browser brings it down in about 500ms, uncached
18:11:03 <andythenorth> the openttd website is 100ms
18:15:32 <LordAro> nielsm: neither of those are fast
18:17:23 <nielsm> I don't see any particular improvement in this scene at least
18:21:33 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7083: Codechange: [Linkgraph GUI] Replace line visibility detection algorithm https://git.io/fhPOu
18:27:20 *** frosch123 has joined #openttd
18:32:36 <TrueBrain> nielsm: cool idea for nightly docker. we first need a template for that .. interested? :)
18:33:01 <nielsm> I'd have to learn those things from the ground up first then
18:34:27 <Samu> hmm, is it okay to close the window on me if there are no more visible settings when I set ai_developer_tools off?
18:34:37 <Samu> would I like that to happen?
18:36:33 <Samu> i wouldn't mind, because i know there are no more visible settings anymore, but what if someone doesn't know of this?
18:36:45 <nielsm> whatever is easier to do
18:37:12 <nielsm> it's such a rare occurrence it really doesn't matter, as long as you don't crash
18:38:53 *** synchris has joined #openttd
18:40:37 <Samu> ok, gonna close it on me
18:40:55 <Samu> behave similar to textfile, also closes on me when there's nothing to display
18:43:35 <TrueBrain> nielsm: bah :P So we need to find someone to contribute a Dockerfile :D
18:43:38 <TrueBrain> as it really is a good idea
18:44:38 *** Progman has joined #openttd
18:46:49 <Samu> crap, the debug window is also relevant, i keep forgetting it exists :p
18:50:04 <TrueBrain> okay, Azure Pipelines is really annoying. It really has to be a logged-in user to dequeue the builds ..
18:50:28 <TrueBrain> it also fails to cancel jobs because newer versions are available
18:50:30 <TrueBrain> (which it normally does)
18:50:34 <TrueBrain> so it really is buggy
18:52:19 <TrueBrain> CPython uses the old-style Azure Pipelines webhook .. possibly that is more stable or something
18:57:20 <andythenorth> new website design then?
18:58:36 <andythenorth> probably not right now imho
18:58:43 <peter1138> When you buy too much veg to fit in your fridge...
18:59:53 <peter1138> nielsm, might see more of a difference with a 32bpp blitter.
19:05:16 <nielsm> peter1138 ah good idea
19:06:22 <nielsm> force_full_redraw = false <- flip that?
19:10:58 <Samu> how to check if a window is open
19:11:27 <Samu> need to re-open to refresh widgets plane
19:11:48 <Samu> debug window is a big buggy
19:12:01 <peter1138> BringWindowToFrontById() will return the window pointer if it's open, and highlight it.
19:12:05 <peter1138> Might not be what you want.
19:12:37 <Samu> i guess invalidatedata would be more appropriate, but it involves hidden widgets
19:12:46 <Samu> dont know how to do this
19:12:47 *** tokai|noir has joined #openttd
19:12:47 *** ChanServ sets mode: +v tokai|noir
19:13:36 <Wolf01> So, I just asked to activate FTTH up to 200M (my area isn't covered by the 1000M), let's see how much they take to do it
19:14:45 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh approved pull request #7083: Codechange: [Linkgraph GUI] Replace line visibility detection algorithm https://git.io/fhPcn
19:15:25 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh merged pull request #7083: Codechange: [Linkgraph GUI] Replace line visibility detection algorithm https://git.io/fh2PV
19:15:40 <LordAro> Wolf01: that's a bit better than you've currently got, i think? :p
19:15:49 <Wolf01> Just a little boost from 4M
19:16:21 *** andythenorth has joined #openttd
19:19:51 <TrueBrain> peter1138: I keep looking for ways to automatically log myself in every hour or so .. but for that it first needs to stall, so I can check if my fix works :P But yeah, it would help if one or two of you also got an account so you can dequeue if I am not here
19:20:32 <TrueBrain> I have two more attempts lined up .. we will see tomorrow if either one works :)
19:21:02 <peter1138> What sort of account does one need?
19:23:12 <peter1138> It needs to be outside because it's the return type.
19:23:17 <Samu> and why can't it be static?
19:23:27 <TrueBrain> peter1138: euh .. I think orudge can sign you up on your @openttd.org email, I guess
19:23:27 <peter1138> What can't what be static?
19:23:41 <TrueBrain> but you have to signup to Azure Pipelines
19:23:46 <TrueBrain> (right top corner, Sign Up)
19:23:51 <peter1138> Hmm, I can probably add that to my existing account.
19:23:59 <Samu> im only using it for ai_gui.cpp file
19:24:09 <glx> a typedef is always static
19:24:40 <peter1138> a typedef does not have any storage, so it can't be static.
19:24:46 <TrueBrain> peter1138: easiest is the @openttd.org address, as that keeps the Team simple and clean
19:25:21 *** Thedarkb-T60 has joined #openttd
19:25:48 <Samu> im gonna need the function for some of the windows'es
19:26:08 <Samu> AI Settings, AI Debug, AI Config
19:26:34 <nielsm> (btw "windows" is already plural, it doesn't need any 'es suffix or otherwise)
19:27:21 <Samu> it was an exclusive of AI Settings
19:27:32 <Samu> but i realized i need it outside of it
19:28:07 <Samu> to determine some widgets enableness
19:37:13 <andythenorth> that UI is horrid
19:38:20 <andythenorth> too many things to fix andythenorth :P
19:42:26 <Samu> visible_settings.clear();
19:42:27 <Samu> visible_settings.swap(BuildVisibleSettingsList(this->slot));
19:42:36 <Samu> is swap what i really want?
19:42:59 <Samu> i want to transfer the items from a list to the other, and then discard it
19:43:20 <Samu> swap doesn't seem to be what i want
19:45:18 <peter1138> Damn, I really should remove stashes when I'm done with them.
19:47:15 <andythenorth> git stash apply oops
19:47:25 <andythenorth> git stash unapply :P
19:47:59 *** HerzogDeXtEr has joined #openttd
19:48:36 <DorpsGek_II> [OpenTTD/OpenTTD] George-VB commented on issue #6907: Cargo capacity should be recalculated on TRIGGER_VEHICLE_NEW_LOAD https://git.io/fhPl7
19:50:04 <peter1138> git stash drop, etc
19:50:40 *** gelignite has joined #openttd
19:51:01 <peter1138> Capacity can only be changed in a depot, right?
19:53:46 <andythenorth> station trigger, possibly others
19:53:55 <andythenorth> wiki is vague, and I didn't read the trigger code
19:54:04 <andythenorth> being candid, fuck knows
19:54:22 <andythenorth> I am having sense of humour failure about newgrf stuff :P
19:54:24 <peter1138> Don't need to read the code, is it *meant* to do what he wants, heh
19:54:41 <peter1138> I've never used autorefit, and don't know where it even came from.
19:54:49 <andythenorth> it was a nice misguided idea
19:55:51 <andythenorth> on the plus side I rarely use the refit GUI any more, just set station refit order
19:55:56 <andythenorth> on the negative side, spiders
19:56:06 <peter1138> Hmm, newgrf cache is invalidated before and after the trigger is done.
19:57:50 <peter1138> Ok, so the trigger happens, and then the cache is invalid.
19:57:59 <planetmaker> autorefit... is that the refit which you can tell a train to do at a station?
19:58:15 <planetmaker> so you can ship wood to a factory and the same train ships back a few supplies?
19:58:30 <planetmaker> advanced, but useful stuff
19:58:46 <TrueBrain> andythenorth: I understand you jump to 'bootstrap' in the news-post-topic, but realise it is a solution, instead of telling the requirements. You limit the possible solutions immediately, without clear benefits. Possibly it is good to rethink it to something like: well-known-and-established framework which has no dependencies on javascript
19:58:54 <TrueBrain> that would be much more preferred to me
19:59:08 <TrueBrain> (as if someone makes a Bootstrap site with Javascript bla, I am not going to be really happy about it)
19:59:36 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on issue #6907: Cargo capacity should be recalculated on TRIGGER_VEHICLE_NEW_LOAD https://git.io/fhP4l
20:00:01 <TrueBrain> havent used Bootstrap in years; but I guess it is easy to make good websites which have all the modern solutions
20:00:12 <TrueBrain> just ... not depending on Javascript is much more valuable, in my opinion :)
20:00:14 <andythenorth> dunno, can we talk about it another day
20:00:19 <andythenorth> I am having sense of humour failure
20:00:21 <TrueBrain> (and you can make Bootstrap not depend on Javascript :P)
20:00:22 <andythenorth> about my OpenTTD jobs list
20:00:41 <TrueBrain> sense of humour failure?
20:01:43 <andythenorth> too many things I need to sort out, and everything seems to be an argument :P
20:01:57 <andythenorth> need to reset perspective :P
20:02:43 <andythenorth> specifically to Bootstrap, I agree with your wording
20:02:54 <andythenorth> but FFS, we already shipped all this in eints, and nobody commented
20:03:10 <andythenorth> eints possibly has jquery in it pointlessly even, and nobody checked
20:03:22 <planetmaker> andythenorth, sounds like the point at which I felt like ~2...3 years ago where I basically needed to take a break... scaling things down
20:03:40 <andythenorth> so does that 100ms really matter enough that we have to throw out all possibility of ever using a framework
20:03:45 <andythenorth> seems a bit not-invented-here
20:04:22 <andythenorth> pointless jquery load on eints ;)
20:04:35 <andythenorth> I can't remember if it's used, but I don't know what would use it
20:05:09 <TrueBrain> ah; I am not too fuzzed about the loading times etc
20:05:16 <TrueBrain> and eints can use Javascript, that is fine
20:05:21 <TrueBrain> just our main page is loaded by non-javascript geeks
20:05:29 <TrueBrain> it should not break because someone didnt load javascript :)
20:05:35 <TrueBrain> different set of requirements :)
20:05:43 <andythenorth> just these irrational fears people have
20:05:46 <andythenorth> same BS every time
20:05:55 <andythenorth> anyway, let's put my smiley face on :)
20:06:11 <andythenorth> fucking css coders who insist on hand-crafted BS
20:06:26 <andythenorth> but don't even know what a macro is
20:07:07 <andythenorth> so things I am supposed to be doing
20:07:21 <andythenorth> - fixing whatever is broken with 64 cargos for GarryG, who I like
20:07:24 <TrueBrain> there, I wrote a tiny list of requirements with why we want it :)
20:07:36 <andythenorth> - testing the mac scrollwheel stuff, which I never use, so I don't know what's correct there
20:07:54 <andythenorth> - testing mac font regression, which I don't understand, cos I use the pixel font, instead of weird things
20:08:38 <TrueBrain> but yeah, to reiterate what was said by planetmaker, I guess, paraphrased: don't make this your second job, plz :)
20:08:47 <TrueBrain> we all tried that :P
20:08:53 <andythenorth> - making a test grf for 5006, because if I don't who will, despite that george will keep demanding it
20:09:07 <andythenorth> err actually that's it
20:09:33 <peter1138> George is usually good with test GRFs
20:09:48 <andythenorth> well I'm going to wait and see then :P
20:09:50 <TrueBrain> just 4 things? you slacker! :P
20:10:01 <peter1138> Usually it's a massive GRF containing everything and no instructions on what is meant to happen.
20:12:38 <andythenorth> if we could have more of a newgrf maintainer, that would be super
20:12:44 <andythenorth> but that's not how open source works :D
20:13:19 <TrueBrain> we can at least make it more accessible
20:14:19 <planetmaker> andythenorth, they look superb. And I can't help to feel reminded on V's rainbow snails :)
20:15:49 <andythenorth> actually the thing that is bugging me most is the new industry / cargo / house stuff
20:16:03 <andythenorth> it will probably be shipping in 1.9.x, but we don't have the nml support or docs
20:16:07 <andythenorth> that's kinda lame imo :)
20:16:26 <andythenorth> feels like I should fix it, but not sure I can alone
20:19:16 <planetmaker> do you have merge rights with NML?
20:20:27 <andythenorth> I did, not sure right now
20:20:30 <peter1138> Is it just NML isn't updated?
20:20:35 <peter1138> Shouldn't it give an error? :D
20:20:56 <peter1138> kk, group livery inheritance sort of working.
20:21:50 <andythenorth> I get 47 cargos in the game with 47 cargo FIRS
20:21:58 <peter1138> The guy might just be using an old version?
20:22:00 <andythenorth> think it's just user error
20:22:11 <andythenorth> Garry has a brain injury and it's 41 degrees in Oz east coast
20:22:21 <andythenorth> so he might benefit from some help, he's a nice guy
20:22:33 <andythenorth> he has so much fun making this stuff
20:22:46 <planetmaker> well, yes, he has.
20:22:53 <planetmaker> but ... what's the issue?
20:23:52 <andythenorth> could move his post to graphics forum, and make a thread about 64 cargo stuff?
20:24:28 <planetmaker> hm, yes, I shall do that
20:25:44 <Wolf01> Ok, so it's not FTTH but FTTC, there is one FTTH 100/100 which costs an eye
20:25:59 <Wolf01> Still not bad, but certified for 80M
20:26:21 <Wolf01> I was hoping for a true FTTH
20:26:47 <peter1138> Gosh, this actually works.
20:27:01 <peter1138> Wolf01, "fibre broadband" is a lie, yes.
20:27:07 <Samu> start_date parameter is evil, evil!!! still getting crashes
20:28:45 <andythenorth> peter1138: works? o_O
20:28:49 <Wolf01> 200/20 still better than 4/0.2
20:29:37 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh approved pull request #7117: Fix group hierarchy not being visible in RTL languages. https://git.io/fhP0C
20:29:45 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh merged pull request #7117: Fix group hierarchy not being visible in RTL languages. https://git.io/fh6gK
20:38:26 * andythenorth wonders if George has cdist in that game
20:38:43 <andythenorth> probably unrelated, but there was a run of cdist issues with autorefit and capacity
20:39:40 <andythenorth> " Force the train to refit to some other cargo, that is not available on both stations, and back to the required cargo on loading. "
20:41:30 <Samu> when im trying to reset the settings of an AI that was switched to Random AI, I am getting a crash
20:41:31 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh requested changes for pull request #7049: Fix #6599: Can still click on buy button in vehicle selection window even if no vehicle is selected https://git.io/fhPEV
20:41:47 <Samu> because AI Info does not exist
20:44:00 <andythenorth> and the comment above that conditional
20:46:20 <Samu> AI Info really does not exist for Random AIs... i need another approach for the reset button
20:46:43 <Samu> i was basing on the existance of an AI Info in every case...
20:48:47 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fhPum
20:49:27 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fhPu3
20:53:52 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fhPua
20:55:47 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7121: Fix #7021: Better revision strings for network and gamelog https://git.io/fhPuM
20:57:24 <LordAro> nielsm: currently trying a s/NULL/nullptr/, just for funsies
20:57:57 <peter1138> #define NULL nullptr
20:58:03 <peter1138> Expect it not to work.
20:58:31 <milek7> i think it is already defined this way
20:58:33 <nielsm> that's honestly not a bad approach
20:58:36 <DorpsGek_II> [OpenTTD/OpenTTD] andythenorth commented on issue #6907: Cargo capacity should be recalculated on TRIGGER_VEHICLE_NEW_LOAD https://git.io/fhPub
20:58:53 <LordAro> milek7: depends on platform & compiler, i suspect
20:59:00 <LordAro> seemed to compile fine :)
20:59:46 <frosch123> just don't add STR_nullptr :p
21:08:41 <LordAro> did s/\bNULL\b/nullptr/, should be fine
21:29:50 <nielsm> should I clone his branch into mine and make a new PR, or abuse github power to push to his branch and modify the PR?
21:30:17 <TrueBrain> can you write in his branch?
21:31:07 <nielsm> yes, that's a flag you can set when creating a PR, allowing users with enough permissions in the receiving repository to push to your branch
21:31:29 <nielsm> and it defaults enabled
21:31:38 <nielsm> but I'll make a new PR :)
21:33:30 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN updated pull request #7108: Feature: Group liveries, and livery window usability enhancements. https://git.io/fhK9F
21:34:04 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on pull request #7108: Feature: Group liveries, and livery window usability enhancements. https://git.io/fhPar
21:39:54 <peter1138> Ok, I don't think I need mercurial in my Jenkins install :p
21:40:04 <peter1138> Ah, you can't remove it.
21:44:04 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh opened pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhPV0
21:44:26 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #6973: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhPVu
21:44:27 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh closed pull request #6973: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fplSS
21:44:38 <nielsm> hmm should we maybe have a tag for PRs that affect savegame version?
21:44:52 <LordAro> doesn't seem like a bad idea
21:47:29 <peter1138> We should start using enums too, to avoid having to fix numbers everywhere.
21:48:56 <peter1138> When you rebase, the only part that conflicts is the current savegame version, so you have to check to make sure you got all the SL_COND stuff updated.
21:49:27 <peter1138> I encountered difficulties due to some savegame versions covering a range of commits :p
21:49:51 <LordAro> i don't like the `SLV_FOO - 1`, perhaps the latter parameter could be exclusive?
21:49:51 <peter1138> We don't need to back date it as such, but we could start to do it going forwards.
21:50:33 <glx> #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif
21:50:57 <peter1138> LordAro, that means we need to change every SL_COND line in one go. Not an issue.
21:51:33 <peter1138> The enum naming is crap too, of course.
21:51:40 <peter1138> I was just making it work :D
21:52:02 <peter1138> Need to see how everyone else feels?
21:52:13 *** andythenorth has joined #openttd
21:52:24 <Samu> nielsm dont forget about scenario saves
21:52:50 <Samu> doesn't even ask if i want to overwrite
21:53:17 <Samu> you're working on savegames, aren't you
21:53:27 <LordAro> glx: interestingly, i can't find any definition of NULL in mingw, other than redefinitions in SDL & ICU
21:53:32 <nielsm> oh, does it carry the savegame unique id over from scenario to game when you start a new game from scenario?
21:53:34 <LordAro> ICU defines as nullptr :)
21:53:48 <andythenorth> peter1138: so which branch? o_O
21:54:12 <nielsm> Samu: I just imported someone else's patch and updated it to compile on current master
21:54:51 <Samu> oh, i didn't look at it in detail, just hoping he didn't forget about scenario editor
21:55:03 <Samu> saving a scenario always defaults to UNNAMED
21:55:08 <peter1138> andythenorth, ah. yes. That one.
21:56:43 <glx> #ifndef NULL #ifdef __cplusplus #ifndef _WIN64 #define NULL 0 #else #define NULL 0LL #endif /* W64 */ #else #define NULL ((void *)0) #endif #endif
21:57:06 <glx> there's this one in crtdgb.h
21:59:37 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhPwE
21:59:59 <peter1138> LordAro, so this doesn't attempt to solve the savegame version issue with lots of patch packs and all that bollocks
22:00:08 <peter1138> LordAro, just make things a little easier to maintain.
22:01:00 <peter1138> I'm willing to go through and convert (most) previous versions if this is acceptable.
22:01:54 <LordAro> i wouldn't be unopposed
22:02:24 <LordAro> should probably be `enum SaveLoadVersion : uint16`
22:02:33 <LordAro> i wouldn't be opposed*
22:04:24 <peter1138> Can be tricky working out what each entry name should be :)
22:04:36 <glx> and the same preprocessor block in locale.h, minwindef.h, ntdef.h (also defining NULL64)
22:04:51 <peter1138> I guess, step 1, make COND exclusive, not inclusive.
22:07:38 *** Wormnest has joined #openttd
22:07:59 <peter1138> * @param version_to Highest version number that falls within the range.
22:08:05 <peter1138> Hmm, how do you reword a comment like that :p
22:15:33 <Samu> visible_settings.swap(BuildVisibleSettingsList(slot));
22:16:00 <Samu> is swap what I'm looking for?
22:16:40 <Samu> it makes a swap, but what happens to the discarted list?
22:16:59 <Samu> i dont need it for anything
22:19:04 <Samu> VisibleSettingsList visible_settings;
22:19:26 <nielsm> the object itself is destroyed when it goes out of scope, but if the object is a pointer then the pointed-to object is not touched
22:22:44 <Samu> out of scope means, outside the brackets?
22:23:30 <peter1138> LordAro, hmm, maybe converting to exclusive before-hand is a bit error prone :/
22:24:10 <peter1138> Ah, old_station_desc
22:24:32 <peter1138> I thought we were still "reserving" space for a second.
22:26:06 <Samu> i have the function outside the big one, which is where it's called
22:26:37 <Samu> line 35 initiates visible_settings;
22:26:39 <milek7> Samu: vector will be destroyed after swap call
22:26:42 <DorpsGek_II> [OpenTTD/OpenTTD] RoqueDeicide commented on pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhPoF
22:26:57 <milek7> but is it valid code? (it doesn't complain about passing non-const temporary reference?)
22:27:53 <Samu> is where i made the swap, i don't know i want to use swap command or some other command
22:28:09 <Samu> because i only need to update visible_settings
22:28:49 <milek7> you could just use copy assignment, visible_settings = BuildVisibleSettingsList(slot);
22:29:09 <Samu> unless it likes it now, let me test
22:29:46 <Samu> visible_settings = BuildVisibleSettingsList(slot);
22:29:53 <Samu> funny... it wasn't working the first time
22:31:39 <peter1138> LordAro, "git diff --word-diff-regex=." is magic!
22:32:31 <peter1138> Actually in this case, "git diff --word-diff-regex=[0-9]+" works better.
22:34:38 <peter1138> Ok, that blew it up :D
22:38:34 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhPKd
22:42:44 <peter1138> Oh god there's all the settings too :(
22:42:59 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhP6I
22:46:51 <peter1138> Hmm, still doesn't load.
22:47:50 <peter1138> Ah, another test. Sigh.
22:47:55 <peter1138> Code duplication, eh?
22:48:16 <LordAro> who would do such a thing
22:50:59 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh updated pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhPV0
22:51:30 <peter1138> I'm not joking about that comment. I have no idea how to reword it.
22:52:10 <LordAro> "Exclusive savegame version upper bound. SL_MAX_VERSION if no upper bound" ?
22:54:58 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhP6h
22:57:22 <peter1138> Ok, then s/settings/list/
22:57:54 <peter1138> I don't know the change does.
22:58:18 <peter1138> But it looks like it'll close the window if the slot is a valid AI.
22:58:41 <Samu> yes, that window is called when a company starts
22:58:49 <Samu> that invalidate command*
22:59:06 <Samu> if it's human, no need to close
22:59:15 <Samu> if it's ai, then yes, must be closed
22:59:33 <Samu> can't risk changing the ai config list into another
22:59:51 <andythenorth> nice group hierarchy \o/
23:00:00 <andythenorth> I made a group called 'The Rainbow'
23:03:14 <andythenorth> peter1138: if I have a child group with 'default', AND the parent has different value to company AND I then move child out of parent, 'default' doesn't update to the one set in company
23:04:20 <andythenorth> also same if I move the child into parent
23:04:59 <peter1138> Maybe I broke it when simplifying :(
23:05:12 <andythenorth> or is it just the 2nd CC
23:05:26 <peter1138> Oh. 2CC might be a bit odd :/
23:05:52 <andythenorth> I can't repro now
23:05:59 <andythenorth> but I repro-ed it twice before
23:06:02 <andythenorth> maybe I am wrong
23:06:18 <andythenorth> nope got a repro again
23:06:52 <nielsm> it's not printing the warning text in the save window info pane
23:07:21 <andythenorth> peter1138: dunno, it's a savegame from previous version of patch, making a clean one
23:07:24 <andythenorth> might be stale data
23:09:11 <andythenorth> can't repro on fresh game
23:12:41 <DorpsGek_II> [OpenTTD/OpenTTD] andythenorth commented on pull request #7108: Feature: Group liveries, and livery window usability enhancements. https://git.io/fhPP4
23:14:19 <peter1138> LordAro, that effort ;(
23:15:54 <peter1138> I just ate a jam doughnut. It was not satisfying. It was 2 days old :/
23:22:24 <Samu> settings.cpp has a much more complex methodology of syncronizing parameters
23:24:25 *** Supercheese has joined #openttd
23:24:38 <peter1138> nielsm, nice. That's separate to the unique-id stuff, right?
23:26:55 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhPXa
23:30:29 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh updated pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhPV0
23:30:57 <Samu> besides, in the Config window it's called Configure, in the AI Debug window it's called Settings, and they're openning the exact same window
23:33:44 <DorpsGek_II> [OpenTTD/OpenTTD] RoqueDeicide commented on pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhP1t
23:34:10 <peter1138> LordAro, making big progress currently converting numbers to SLV_numbers
23:34:28 <peter1138> once that's done a few little one liners can convert the numbers to something meaningful.
23:35:49 <Samu> tell me what to do peter1138
23:36:39 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7128: Add: Unique ID to savegames to prevent accidental overwriting https://git.io/fhP1R
23:37:36 <andythenorth> Samu: is it a pre-existing inconsistency?
23:40:38 <Samu> but it's non functional, doesn't change anything, it's just what to display
23:43:47 *** Wormnest has joined #openttd
23:50:01 <Samu> alright, i'm going to revert those
23:50:13 <Samu> less work needed from translators
23:50:21 <Samu> if it ever gets accepted
23:50:32 <andythenorth> string consistency is a nice issue to handle separately
23:51:35 <andythenorth> someone very experienced might just change the string and it's all fine
23:51:56 <andythenorth> but you need to keep the changeset for your patches as small as you can, to aid reviewing
23:52:18 *** andythenorth has left #openttd
23:52:49 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 opened pull request #7129: Add: allow opening of one TextfileWindow per type https://git.io/fhPMP
23:53:20 <Samu> something like revert but keep the changes
23:53:26 <Samu> ok, i think i can do that
23:59:55 <glx> and while testing that I noticed GameOptionsWindow doesn't close textfile window when it's closed
continue to next day ⏵