Times are UTC Toggle Colours
10:40:51 <DorpsGek> [OpenTTD/OpenTTD] George-VB opened issue #10371: [Bug]: Different display of additional_text for vehicle, that is vehicle group in depot https://github.com/OpenTTD/OpenTTD/issues/10371 10:43:15 *** Samu has joined #openttd 10:58:45 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick updated pull request #10227: Fix 3c047b1: AIGroup.GetProfitLastYear could get values different than those displayed in GUI https://github.com/OpenTTD/OpenTTD/pull/10227 11:13:05 <andythenorth[d]> LordAro: last I recall frosch was -1 to renum, but that might be false memories 11:18:27 <Samu> question 11:18:59 <Samu> the returns values are slightly strange https://github.com/OpenTTD/OpenTTD/blob/58014427800685a4fbaf7b7a242841a78e4ae70c/src/script/api/script_order.cpp#L373-L380 11:19:24 <Samu> there are two sources of CT_NO_REFIT 11:20:48 <Samu> CargoType::CT_NO_REFIT 11:21:11 <Samu> SpecialCargoID::CT_NO_REFIT 11:21:32 <Samu> they all happend to have the same value, but still looks strange 11:41:10 <dP> Pruple: grf-py decompile is quite readable ;) 11:42:27 <dP> but ofc not at the level of hand-written code 11:42:53 <dP> though some hand-written nfo is worse :p 11:45:40 <CplBurdenR3294> I find its one of those truisms that no matter how bad machine written code is, you can always find a human who chooses to code in an even sloppier style π 11:45:59 <CplBurdenR3294> It takes human ingenuity to really foul things up π 11:46:34 <petern> Hmm, 60 seconds to restore packages before compiling. Maybe I should pre-cache those... 11:46:52 <petern> On the other hand, it's not that much, and reproducible builds are nice. 11:47:53 <dP> in my latest attemps at decompiling sbb I managed to make it look like this: https://pastebin.com/pYJ8Ucj5 11:56:33 <petern> > The HTTP request to 'GET https://api.nuget.org/v3-flatcontainer/system.reflection.emit.ilgeneration/index.json' has timed out after 100000ms. 11:56:37 <petern> Well, that took extra long... 12:17:32 <andythenorth[d]> ok let's try partitioning all tiles into various regions, in GS 12:17:36 <andythenorth[d]> for the whole map 12:17:41 <andythenorth[d]> 'what could go wrong'? 12:27:53 <LordAro> how hard can it be? 12:34:47 *** WormnestAndroid has joined #openttd 12:41:21 <glx[d]> andythenorth[d]: It's already possible to build a straight section in one call 12:42:01 <glx[d]> As user can drag to build 13:02:08 *** JustANortherner has quit IRC 13:10:35 <Samu> regression doesn't test many things, and yet it's still does a lot already 13:13:41 <andythenorth[d]> glx[d]: presumably this? https://docs.openttd.org/gs-api/classGSRoad.html#a7524232dae8b45554fad352a2c4df651 13:14:04 <andythenorth[d]> I have a regrettable idea to make a test / examples GS 13:14:28 <andythenorth[d]> one of the main reasons NML succeeded is that people wrote a *lot* of docs 13:14:38 <andythenorth[d]> like serious effort, writing docs is really hard and boring 13:14:53 <andythenorth[d]> that was a big achievement 13:15:47 <andythenorth[d]> lol 13:15:55 <andythenorth[d]> how in scope is the squirrel? 13:16:15 <andythenorth[d]> do we have access to actual squirrel lines of code in OpenTTD? 13:16:15 <andythenorth[d]> or is it all compiled to some bytecode or something? 13:19:53 <glx[d]> It's compiled to bytecode 13:20:21 <andythenorth[d]> I was thinking of - I don't know how exactly - but something like an example GS with a storybook 13:20:32 <andythenorth[d]> so you could go to the 'GSRoad' page of the storybook 13:20:37 <andythenorth[d]> and click 'build a road example' 13:20:41 <andythenorth[d]> and see what it does 13:20:53 <andythenorth[d]> but also have a window with the related squirrel 13:21:52 <glx[d]> Regression AI uses many parts of the API 13:22:04 <LordAro> and also not nearly enough 13:22:57 <andythenorth[d]> well the nice thing about regressions etc is that every little improvement is good π 13:23:01 <andythenorth[d]> and having anything beats having nothing 13:23:43 <andythenorth[d]> for that prospecting issue, what I _should_ have done is provide a quick example GS 13:23:51 <andythenorth[d]> to at least aid testing 13:24:48 <glx[d]> From GS POV prospecting was fine, the issue was with newgrf communication π 13:25:22 <andythenorth[d]> ok so maybe I should have provided both π 13:25:32 <andythenorth[d]> it looked to Tyler like a GS issue, so maybe the framing has to be better 13:26:32 *** WormnestAndroid has quit IRC 13:26:35 *** WormnestAndroid has joined #openttd 13:26:39 <andythenorth[d]> does regressions AI run on the CI? 13:28:47 <LordAro> yes 13:29:29 <andythenorth[d]> is there an equivalent regressions GS, or would that just be duplicating the same methods etc? 13:30:28 <Samu> * \li AIOrder::GetOrderDistance parameter order has changed to 'origin_tile, dest_tile, vehicle_type' 13:30:29 <Samu> * from 'vehicle_type, origin_tile, dest_tile', to make it useable with valuators. Now tests the 13:30:29 <Samu> * validity of the vehicle type, returning -1 for invalid vehicle types. 13:30:34 <Samu> is this good english? 13:31:56 <glx[d]> Hmm if you want to use it as valuator it's easy to write a wrapper and not change the function itself 13:32:22 <Samu> oh : 13:32:59 <Samu> didn't think about that :) 13:33:31 <Samu> undoing, brb 13:38:48 <Samu> how do i check how the doxygen document looks like? 13:39:39 <Samu> script_order.hpp 13:40:05 <Samu> this, but for my build https://docs.openttd.org/ai-api/classAIOrder.html#ae25118472500d3e2ca33512aec378dc7 13:40:19 <Samu> wanted to see how it ends up looking like 13:47:01 <andythenorth[d]> petern: https://www.theregister.com/2023/01/17/retro_tech_week_rool/?td=rt-3a 13:47:46 <petern> Bring back the OpenTTD port? 13:50:36 <petern> Hmm, can I run it on my A7000+? 13:51:43 <andythenorth[d]> I just want chocks away on a pi π 13:51:58 <petern> Best flying game. 13:52:01 <andythenorth[d]> steam deck would be even better 13:52:11 <andythenorth[d]> Andrew Hutchings probably lives near ish to you 13:52:20 <andythenorth[d]> Reading, Slough, M4 corridor somewhere 13:52:25 <andythenorth[d]> he does sound programming now 13:53:34 <andythenorth[d]> was it lunch? 13:59:50 <petern> Yes, you missed it. You'll have to wait for dinner time now. 14:03:50 <LordAro> i've denied the person who directly requested membership of the es_MX group 14:09:45 <andythenorth[d]> petern: might have a nap then 14:09:59 <petern> Might as well. 14:10:04 * andythenorth[d] stuck in a queue to get drains unblocked 14:10:34 <petern> Do I want to go MTB cycling at feels-like -3Β°C tonight? 14:10:42 <andythenorth[d]> it's apparently good for you 14:11:05 <andythenorth[d]> I wouldn't, but I'm an indoors type, and I've accepted I won't live 3 years longer 14:11:17 <andythenorth[d]> all weather cyclists live longer, on average 14:12:23 <andythenorth[d]> I'd find a reference link, but every result in google is just a cookie banner 14:12:26 <andythenorth[d]> glad about the internet 14:14:03 <LordAro> i wasn't planning on going road (well, flood lit circuit) cycling tonight in feels-like -4C 14:14:15 <andythenorth[d]> shall I stream this hold music in Discord? 14:14:46 <andythenorth[d]> is 'feels-like' accounting for wind chill at 20 mph? 14:14:55 <andythenorth[d]> and does it net off the heat gain from activity? 14:15:34 <LordAro> dunno where the number comes from, i was just taking it off BBC weather 14:16:02 <LordAro> i'm already at the point of shivering just sitting at my desk 14:16:08 * LordAro goes to find a jumper 14:16:35 <andythenorth[d]> I have 2 hoodies 14:16:38 <andythenorth[d]> and a hat 14:18:47 <petern> I also have my current excuse of "waiting for my new prescription cycling glasses so I don't ruin my Β£200 regular glasses" 14:24:30 <Samu> this looks ready for PR now https://github.com/OpenTTD/OpenTTD/compare/master...SamuXarick:OpenTTD:script-random-values 14:25:12 <Samu> regression is kinda lacking for the tests I wanted 14:25:30 <Samu> cus it never tests the compatibility nut files 14:27:56 <Samu> i searched the return values of all uint and int functions, found a few issues and fixed them 14:28:28 <petern> You can make more tests that test those. 14:29:34 <glx[d]> It should be possible to manually load compatibility files 14:34:22 <glx[d]> Run the tests, load compat_0.7, rerun the tests 14:36:57 <glx[d]> First time will need manual comparison of the results, but after that any diff in the output should be easy to catch 14:38:57 <glx[d]> Another option is to add another regression test which just set API version to 0.7 and compare output to the normal regression output 14:40:02 <glx[d]> Hmm no, can't work as output can be different for previous versions, that's why we add compatibility nut 14:43:07 <DorpsGek> [OpenTTD/OpenTTD] merni-ns commented on issue #10370: [Bug]: Too low length limit when renaming vehicles https://github.com/OpenTTD/OpenTTD/issues/10370 14:57:38 <Merni> merni-nsviaGitHub: JGRPP just increases the limit to 63 (similar to increasing station name length limits etc). I think that'd practically work for the majority of cases -- especially considering more than 63 letters are likely to be not visible in the purchase menu anyway (since there is no horizontal scrolling there). 14:59:07 <Merni> https://cdn.discordapp.com/attachments/1008473233844097104/1065284206692937738/Screenshot_2023-01-18_202849.png 14:59:07 <Merni> I got the issue because the Czech Railway Set uses a huge number of spaces to align text like this π€¦. This is even more than 63 chars 15:00:32 <Merni> https://cdn.discordapp.com/attachments/1008473233844097104/1065284563875659816/Screenshot_2023-01-18_202849.png 15:00:32 <Merni> There's also this example from the v4 CEE set which is more than 64 chars and doesn't fit in any way on my screen unless I reduce the text scaling π€¦ 15:00:57 <Merni> https://cdn.discordapp.com/attachments/1008473233844097104/1065284671308566548/Screenshot_2023-01-18_203045.png 15:02:15 <Merni> Come to think of it, why don't NewGRF strings have a length limit? 15:09:59 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick opened issue #10372: [Bug]: incorrect squared aircraft range multiplication https://github.com/OpenTTD/OpenTTD/issues/10372 15:26:02 *** nielsm has joined #openttd 15:29:32 <andythenorth[d]> Merni: I applaud the idea, that implementation sucks. petern separate suffixes? π 15:30:12 <FLHerne> All_Heil_Lord_Pepe: other thing is: if you only want to alter the graphics it's easy in any case 15:30:18 <Merni> Or just do icons, or non-aligned (), like every other set 15:30:20 <FLHerne> (see https://www.reddit.com/r/openttd/comments/davh7b/how_do_i_edit_grfs/f1x0q0e/ ) 15:31:31 <Merni> The offsets they've used are so huge that unless you make the window very *w i d e*, you just see "..." instead of that column 15:31:37 <andythenorth[d]> lol π 15:33:43 <Pruple> Merni: Or none of the above, and put it in the extra text just in case the player *really* needs to know "this is a diesel"... 15:34:24 <Merni> I would argue it's quite important to at least know whether something is electric or not 15:38:26 <andythenorth[d]> I just like the TTD style 15:38:57 <andythenorth[d]> I do find it noisy though 15:43:42 <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1065295428775592038/image.png 15:43:42 <andythenorth[d]> might be self-inflicted 15:44:26 <glx[d]> Samu: it's what we call an overflow 15:53:02 <petern> andythenorth[d]: Someone was going all out with suggesting callbacks and stacks... I have no idea. 16:16:48 <andythenorth[d]> some people are just wrong though 16:47:56 *** gelignite has joined #openttd 17:17:15 <frosch> some weird company which crawled our website, found it necessary to sent us a mail that it did so, and how it will process the data in compliance to the GDPR, including forwarding it to outside the EU 17:19:44 *** Wolf01 has joined #openttd 17:20:30 <andythenorth[d]> frosch: shall we consult legal counsel? 17:21:26 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick opened pull request #10373: Allow Scripts to convert returned uint32 values to int64 https://github.com/OpenTTD/OpenTTD/pull/10373 17:21:54 <frosch> is that you? 17:22:04 <andythenorth[d]> I hope not 17:22:13 <andythenorth[d]> 'armchair legal counsel' 17:22:18 <andythenorth[d]> I should update my linkedin 17:22:27 <frosch> backseat legal counsel? 17:48:31 *** Wormnest has joined #openttd 17:50:45 *** esselfe has quit IRC 17:50:55 *** Flygon has quit IRC 18:02:55 *** esselfe has joined #openttd 18:15:59 *** crem has joined #openttd 18:22:06 <andythenorth[d]> hmm timing GS 18:23:04 <andythenorth[d]> ah we have systemtime π 18:26:20 <andythenorth[d]> ah granular to seconds only 18:26:24 <andythenorth[d]> hmm 18:27:42 <andythenorth[d]> hmm are there limited free opcodes at game start? 18:27:59 <andythenorth[d]> my script ran a bunch of commands very fast, then suddenly stopped 18:28:03 <andythenorth[d]> until I unpaused 18:29:43 <andythenorth[d]> will be 2000 or more 18:44:05 <frosch> chatgpt labels each conversation with some title matching the subject 18:44:22 <frosch> i talked with it about newgrf, and it titled the conversation "new chat" π 18:45:16 <frosch> you never now when it is correct and when not 18:45:57 <frosch> anyway, when i pressured it into clarifying the details, which it got wrong, it gave up answering :/ 18:46:15 <frosch> it's like a sales person 18:46:24 <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/83d5e681fc133d2820aff3cf05159bce820e2b56 18:46:25 <DorpsGek> - Update: Translations from eints (by translators) 18:52:28 <andythenorth[d]> can it advise me on GS? 18:52:40 <andythenorth[d]> I think quite some part of this can be done already in GS https://wiki.openttd.org/en/Development/Design%20Drafts/Scripts/Area%20Control 18:52:46 <andythenorth[d]> just inefficiently and clunky 18:55:02 <frosch> it can talk better about things, which are often talked about on the internet 18:55:13 <frosch> the nml/nfo stuff was pretty bad 18:55:50 <frosch> if you ask it about ottd-addon design, most of the training data is probably andy chatting on irc 18:56:10 <frosch> so you could talk with your past self about gs design π 19:01:04 <andythenorth[d]> we asked it to redesign Horse, in another channel 19:01:17 <andythenorth[d]> it was not bad, but it was quite focussed on realism 19:01:25 <andythenorth[d]> or lies, presented as realism 19:01:45 <andythenorth[d]> it wasn't very keen on suggesting gameplay, and kept saying "it's your choice" 19:01:55 <andythenorth[d]> lawyer-induced liability clause maybe π 19:03:13 <frosch> i don't think lawyers are involved π it generally talks a lot without saying much, and repeating everything at least twice 19:04:55 <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1065346066272231454/image.png 19:04:55 <andythenorth[d]> am I GS correctly? 19:05:06 <frosch> it's actually annoying to talk to, it beats around the bush all long 19:06:34 <frosch> are you writing a GS which observes player's construction efforts and tries to block their progress by putting industries into their way? 19:06:57 <andythenorth[d]> no but that sounds good 19:07:39 <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1065346754318446592/image.png 19:07:39 <andythenorth[d]> I want to divide the map into 9 equal quadrants, then build n farms in each quadrant 19:07:56 <andythenorth[d]> I can't limit prospecting, so I'll have to reimplement a random tile search 19:08:08 <andythenorth[d]> but I can use the GS test mode somehow to prospect 19:08:23 <andythenorth[d]> I might want to detect sea tiles also, and adjust the placement attempts accordingly 19:08:55 <andythenorth[d]> an alternative project is to place a scrap yard in every town with more than x population 19:09:12 <andythenorth[d]> which will require walking all the tiles to find which town they belong to 19:09:25 <andythenorth[d]> GS is really interesting, dunno why it's so neglected π 19:10:24 <andythenorth[d]> I was hoping I could walk all the tiles in the free opcodes at game start 19:10:59 <andythenorth[d]> GS seems to have Init() or so which seems less restricted 19:11:13 <andythenorth[d]> if I don't exec any commands, am I unlimited? 19:11:52 <frosch> looks like you found your hammer to turn things into nails π 19:12:14 <andythenorth[d]> or to make everything look like a nail? 19:13:03 <frosch> "walk all tiles" sounds like something that is always wrong to do π 19:13:26 <andythenorth[d]> I am hoping (a) it works, (b) somebody agrees it's stupid and provides alternative methods / ideas 19:13:42 <andythenorth[d]> otherwise we just go around in hot air about GS vs everything else, like since 2012 19:13:44 <frosch> you could walk the towns instead 19:14:11 <andythenorth[d]> if we had actual areas, I could define an area per town? 19:14:31 <andythenorth[d]> I'd probably generate allowed areas for different industries by type or something 19:14:39 <andythenorth[d]> there are many use cases 19:15:14 <frosch> interesting, when i wrote the area-control thingie, i aborted it because i did not find any use case π 19:15:21 <andythenorth[d]> I can find many I think 19:15:59 <andythenorth[d]> also, if there's some common data structure, which GS can update, and grf can read as a var or something 19:16:18 <andythenorth[d]> then the 'GS is not a callback' problem disappears 19:16:54 <andythenorth[d]> areas do not generally need frequently updating, and if we lost 20% of the use cases because they're slow to update, then 80% is still good 19:17:23 <andythenorth[d]> GS -> for industry type X, these are the allowed tile indexes 19:17:34 <andythenorth[d]> grf -> read that as a var during cb 28 or friends 19:17:51 <andythenorth[d]> or a flag to delegate entirely to the area 19:18:25 <frosch> https://wiki.openttd.org/en/Development/Design%20Drafts/GS-NewGRF%20Communication%20via%20JSON <- look, that is from 2015 :p 19:18:26 <andythenorth[d]> it can't just be delegated as 'area' might be one of a number of conditions 19:18:39 <andythenorth[d]> I read that yesterday again π 19:19:15 <andythenorth[d]> I'm stumbling on why we actually need json, except that it's more arbitrarily extensible? 19:19:18 <andythenorth[d]> but yes 19:19:51 <andythenorth[d]> "NewGRF can query GS information, which has been set in advance by the GS." 19:20:57 <andythenorth[d]> "GS can then also not influence placement of initial industries etc." <- no but it could delete ALL of them π 19:21:04 <andythenorth[d]> and start again 19:21:40 <andythenorth[d]> I've already ruled out caring about performance on (1) very large maps (2) very large numbers of towns or industries 19:22:21 <dP> andythenorth[d]: well, you could do delaunay triangulation... 19:22:26 <dP> <https://en.wikipedia.org/wiki/Delaunay_triangulation#Relationship_with_the_Voronoi_diagram> 19:24:05 <andythenorth[d]> frosch: "GS/AI info query callback" <- can that be otherwise understood, as 'here is a templated query, please fill out the correct values', like a form π 19:24:10 * andythenorth[d] trying to understand 19:25:28 <frosch> yes, the newgrf contains a static template. then callbacks fill in the variables. and the gs gets a complete data structure 19:25:54 <DorpsGek> [OpenTTD/OpenTTD] CitrusWire opened issue #10374: [Bug]: Auto-distributed timetabled trains leave depot in order different from timetable requirements https://github.com/OpenTTD/OpenTTD/issues/10374 19:26:22 <frosch> for exchanging data dicts/lists/... are pretty common, and gs/ai also uses them for saveload data 19:26:32 <frosch> so the idea is to also use that for gs<->newgrf 19:26:44 <frosch> json is just one syntax (which ottd already uses in other places) 19:27:06 <DorpsGek> [OpenTTD/OpenTTD] CitrusWire commented on issue #10374: [Bug]: Auto-distributed timetabled trains leave depot in order different from timetable requirements https://github.com/OpenTTD/OpenTTD/issues/10374 19:27:09 <frosch> you could also use protobuf or whatever, but json is the easiest format of the non-ambiguous ones 19:27:32 <andythenorth[d]> sems fine π 19:27:40 <frosch> tb likes to use yaml, but it's really crap: https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell 19:27:58 <LordAro> shots fired 19:28:16 <frosch> though maybe that would make yaml a good fit for newgrf π 19:28:18 <andythenorth[d]> it's probably much more likely to get a PR now we've got a format war π 19:29:06 <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1065352149514600518/image.png 19:29:06 <andythenorth[d]> unrelated, but it would be helpful if news messages could be suppressed π 19:29:17 <andythenorth[d]> GS commands might not want to be newsworthy 19:29:55 <frosch> i guess events at game start are not newsworthy 19:30:14 <frosch> but otherwise they are relevant as the default industry spawn spam 19:30:19 <andythenorth[d]> yes 19:30:27 <andythenorth[d]> it would need selective suppression 19:34:03 <andythenorth[d]> I can probably reimplement prospecting in GS, but it would be helpful to just use game prospecting, restricted to an optional tile array or other area definition, 20:20:59 <andythenorth[d]> trying to find map size in GS π 20:21:08 <andythenorth[d]> doxygen search would be so helpful π 20:21:33 <andythenorth[d]> found it 20:24:33 <dP> GSMap.GetMapSizeX 20:25:15 <dP> I usually search source code xD 20:27:19 <supermop_toil> i could have sworn grasshopper could use regular expressions and a could write module* 20:27:24 <supermop_toil> but i guess noe 20:27:28 <supermop_toil> not 20:27:38 <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1065366881676034068/image.png 20:27:38 <andythenorth[d]> could we patch the errors to not be unreadable? 20:27:47 <andythenorth[d]> red on grey with black shadow 20:27:49 <andythenorth[d]> nope 20:29:05 <andythenorth[d]> can't see any string codes here `seprintf(buf, lastof(buf), "Your script made an error: %s\n", error);` 20:35:52 <andythenorth[d]> is the URL something I'm supposed to supply? 20:43:15 <andythenorth[d]> actually can't find the red π 20:43:46 <andythenorth[d]> found `STR_ERROR_AI_PLEASE_REPORT_CRASH` 20:44:29 <Pruple> they're less unreadable in a proper font... and yes, it will show the URL you provide in the info.nut iirc 20:47:14 *** TROILUS5 has joined #openttd 20:48:06 <andythenorth[d]> I don't want errors reported π 20:54:18 *** TROILUS has quit IRC 20:54:19 *** TROILUS5 is now known as TROILUS 20:55:33 *** Beer has joined #openttd 20:55:38 <andythenorth[d]> ErrorPrintFunc or something? 21:02:26 <andythenorth[d]> ok baffled, red string code must be injected somewhere 21:02:29 <andythenorth[d]> but I can't find it 21:07:53 *** Beer has quit IRC 21:08:04 *** Beer has joined #openttd 21:10:47 *** gelignite has quit IRC 21:17:13 *** Beer has quit IRC 21:17:29 *** Beer has joined #openttd 21:24:26 *** Beer has quit IRC 21:24:58 <petern> ai_gui.cpp:1168-1172 21:27:33 *** nielsm has quit IRC 21:31:24 <andythenorth[d]> thanks 21:35:12 <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1065383883832569946/image.png 21:35:12 <andythenorth[d]> so much better 21:52:27 <DorpsGek> [OpenTTD/OpenTTD] andythenorth opened pull request #10375: Change: improve legibility of AI/GS errors https://github.com/OpenTTD/OpenTTD/pull/10375 21:54:25 <DorpsGek> [OpenTTD/OpenTTD] andythenorth commented on pull request #10375: Change: improve legibility of AI/GS errors https://github.com/OpenTTD/OpenTTD/pull/10375#issuecomment-1396137747 22:00:49 <dP> why is this not doing `line.top += ...` like all other code? <https://github.com/OpenTTD/OpenTTD/blob/master/src/graph_gui.cpp#L971> 22:02:55 <TallTyler> andythenorth[d]: Is regular AI/GS console test always black, or can it be other colours? 22:03:28 <TallTyler> White on grey does look much better, as long as it stands out as an error against otherwise black text 22:03:37 <andythenorth[d]> there are classes of log message 22:03:49 <andythenorth[d]> LOG_WARNING is yellow 22:03:55 <andythenorth[d]> the other non-errors are black 22:04:14 <TallTyler> Oh I see in the code now π 22:04:56 *** keikoz has quit IRC 22:05:14 <TallTyler> It feels strange to me to have Warnings be more βhey look at meβ than Errors 22:05:51 <TallTyler> Perhaps a different colour could be used, maybe Gold or Orange, to be more scary looking than Yellow but more readable than Red 22:06:06 <TallTyler> Or warnings could change too 22:06:20 <andythenorth[d]> the script crashes anyway on error 22:06:23 <andythenorth[d]> so you have to look 22:06:27 <andythenorth[d]> and the window opens 22:06:32 <andythenorth[d]> so it's not like you have to spot them π 22:06:36 <andythenorth[d]> legibility is the priority 22:07:41 <andythenorth[d]> I still don't understand GS, this list is empty when printed 22:07:44 <andythenorth[d]> ` local tile_list = GSTileList(); 22:07:45 <andythenorth[d]> ` 22:23:12