IRC logs for #openttd on OFTC at 2023-02-16
01:04:58 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
01:07:14 *** KiriDore_ has joined #openttd
01:13:37 *** KiriDore has quit IRC (Ping timeout: 480 seconds)
01:55:12 *** Wormnest has joined #openttd
02:06:48 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
02:07:12 *** WormnestAndroid has joined #openttd
02:23:22 *** _aD has quit IRC (Quit: leaving)
02:23:23 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
02:26:13 *** WormnestAndroid has joined #openttd
02:37:14 <DorpsGek> [OpenTTD/OpenTTD] glx22 updated pull request #10483: Codechange: [Script] Don't expose static buffers outside of ScriptText
02:47:53 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
02:50:38 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
03:25:31 *** Wormnest has joined #openttd
03:46:18 *** godbed has joined #openttd
03:49:37 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:14:03 *** TROILUS1 has joined #openttd
04:18:15 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
04:19:55 *** TROILUS has quit IRC (Ping timeout: 480 seconds)
04:19:56 *** TROILUS1 is now known as TROILUS
04:21:17 *** WormnestAndroid has joined #openttd
04:23:08 *** keikoz has joined #openttd
04:41:33 *** Flygon has joined #openttd
04:55:54 *** Wormnest has joined #openttd
05:22:12 <bigyihsuan> wacky question idea: if you could completely overhaul and break backwards-compatibility 1 system in the game, what would you change?
05:23:06 *** Olionkey has joined #openttd
05:23:06 <Olionkey> multi thread the game
05:24:01 <bigyihsuan> personally: a complete redo of the tile system to allow for curved bridges, rails on roads/street running/unifying train and tram rails, sheer cliff faces (no slope between elevations)
05:24:49 <Olionkey> as nice as that would be still think multi threading the game would be the thing to fix
05:25:29 <Olionkey> Would fix the performance issues you get late game
05:26:02 <Olionkey> might not be a 100% fix I think it would be a pretty major one
05:48:38 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
05:52:21 *** Wormnest has joined #openttd
06:06:44 *** keikoz has quit IRC (Ping timeout: 480 seconds)
06:29:37 *** EmperorJake has joined #openttd
06:29:37 <EmperorJake> bigyihsuan: And proper underground networks
06:35:42 *** KiriDore has joined #openttd
06:41:57 *** KiriDore_ has quit IRC (Ping timeout: 480 seconds)
06:45:28 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
07:00:43 <Gwyd> I don't think that an elevated/subterrain track and road system would necessarily have to break backwards compatibility
07:00:48 <Gwyd> Steeper cliffs would be cool though
07:03:40 <dP> None of these features require breaking compatibility.
07:10:54 <dP> What I'd do is replace newgrf format probably. And remove old junk in general (in settings, savegame format, etc.)
07:15:22 <kamnet> dP: What would you put in its place?
07:22:32 *** Wormnest has joined #openttd
07:23:49 <dP> Something WASM based
07:23:50 <dP> Though in the context of compatibility problem is not as much in the format itself but the fact that so much of the game behaviour got poorly specced and now can't be changed.
07:48:36 *** sla_ro|master has joined #openttd
07:55:33 *** Merni has joined #openttd
07:55:33 <Merni> Gwyd: Including underground stations?
07:55:38 <Merni> that would be so cool
08:15:13 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
08:15:15 <Pruple>
08:15:15 <Pruple> Openttd is completely broken, trains ignore signals and crash. And there's nothing suspicious at all about that grey station sign, nope... 🤔
08:33:47 *** gebik has joined #openttd
08:33:47 <gebik> Pruple: also the pink station name...
08:33:47 <gebik> They might be just playing JGRpp with long day length and that looks like a former road stop
08:36:21 <pickpacket> Pruple: I don't know all the signals by heart, but the signals closest to the station at least aren't block signals
08:44:10 <Pruple> regardless of what kind of signals people are using, trains should never crash unless you're either removing signals or building track in front of them - it'd be a pretty major bug if "trains arriv[ing] at the signal block at the same timestep" were both allowed to enter and crash, which is what the author of that thread is claiming (and getting upvoted for).
08:45:02 <andythenorth> The upvotes are just my sock puppets
08:45:32 <andythenorth> Most of openttd reddit is just an elaborate performance art scam by me
08:46:12 <andythenorth> bigyihsuan: GameScript is the obvious candidate
08:46:44 <Pruple> remove gamescript?
08:46:53 <andythenorth> “Kinda”
08:47:27 <andythenorth> Just change the implementation, the execution model, and the design constraints…
08:47:37 <andythenorth> And the goal
08:53:57 *** Wormnest has joined #openttd
09:44:25 *** moll has quit IRC (Ping timeout: 480 seconds)
09:56:15 <LordAro> "I belive what happened is that both trains arrived at the signal block at the same timestep, so both signals checked the block, found it empty, and allowed the train to proceed."
09:56:19 <LordAro> cute
09:57:49 <pickpacket> Pruple: what's suspicious about the grey sign?
09:58:16 <LordAro> pickpacket: suggests a station has been removed
09:58:31 <LordAro> which could well screw with reservation blocks if there's a train already in one
09:59:08 <pickpacket> Yeah, I understand that it's removed but I don't understand how it would screw with reservation blocks
10:00:38 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
10:00:51 <LordAro> perhaps not the station itself, but it does mean they've recently done some construction
10:01:08 <LordAro> if a signal has been removed, reservation blocks will have been "merged", possibly with multiple trains within it
10:01:47 <Pruple> or just a piece of track / station tile... remove it, lets the trains in from both sides, replace it, they're now on a collision course
10:25:20 *** Wormnest has joined #openttd
10:30:17 *** tokai has joined #openttd
10:30:17 *** ChanServ sets mode: +v tokai
10:31:31 <dP> rebuilding station doesn't explain other commenters having the same issue in 12.3 😜
10:36:25 <petern> It's nearly always due to rebuilding.
10:36:32 <petern> Perhaps not even nearly.
10:38:23 *** Samu has joined #openttd
10:41:38 <petern> More bike bits purchased, such expensive cheap hobby...
10:59:29 *** godbed is now known as debdog
11:18:00 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
11:46:46 *** moll has joined #openttd
11:54:23 <kamnet> dP: Crazy idea.... what if the devs stopped working on OpenTTD 1.14, and instead worked on making a better version from the ground-up?
11:55:17 <andythenorth> Like Voxel Tycoon?
11:55:28 *** Wormnest has joined #openttd
11:57:55 <petern> Urgh.
11:58:06 *** KiriDore has quit IRC (Remote host closed the connection)
12:00:27 <kamnet> Voxel Tycoon doesn't sound like a better and improved OpenTTD to me.
12:00:41 <JGR> The Second System Effect should not be underestimated
12:03:13 <pickpacket> kamnet: what would you propose that a "better version" entails?
12:04:18 <JGR> Scrapping something that works in favour of a grand new system which will be ready any time real soon now often doesn't end well
12:04:52 <petern> My work did it, and it worked out 😄
12:05:34 <pickpacket> petern: many of my workplaces have done so too with successful results. And substantial man hours spent 🤪
12:05:58 <petern> Of course it was totally different prospect.
12:07:53 <pickpacket> yeah
12:08:37 <pickpacket> Openttd has 26,877 commits. And I'm guessing some history was lost when it moved from svn (was it?)
12:08:51 <pickpacket> imagine the hours involved in replacing that
12:08:53 <petern> No history was lost in that conversion.
12:09:14 <petern> There was some history lost with a crashed SVN repo in 2004? though.
12:10:48 <kamnet> JGR: Oh I'm not proposing something actually be ready within a year. Rather, since we have a somewhat functional team here that is experienced enough to know what's limiting them, experiment with creating a base that removes those limits.
12:11:30 <petern> It's not the existing codebase that limits us 🙂
12:11:50 <JGR> It easy to spend a huge amount of time/effort for a fairly modest gain doing that dirty of thing
12:11:58 <JGR> Sort of*
12:12:13 <pickpacket> kamnet: when you say "better version", do you mean in terms of features or in terms of betterment of the codebase?
12:12:35 <petern> "new map array!" 😄
12:15:40 <kamnet> @pickpacket, I'm going off of dp's statement, " in the context of compatibility problem is not as much in the format itself but the fact that a lot of the game behaviour got poorly specced and now can't be changed."
12:15:40 <kamnet> What would OpenTTD look like if those things could be changed?
12:16:04 <pickpacket> ah
12:17:39 <EmperorJake> we could focus all the effort on OpenLoco instead, give it things like bigger maps and path signals and it could replace OTTD
12:18:28 <JGR> There's nothing stopping people working on OpenLoco at the moment
12:18:58 <kamnet> (other than the time that they're currently giving to OpenTTD and other stuff)
12:20:03 <kamnet> Which might not be a bad idea either - how much of a jump in improvement would OpenLoco had if it had the group effort of OpenTTD devs for a year?
12:20:27 <JGR> Dev time is not really fungible like that
12:31:12 <andythenorth> “Functional team” is kinda true
12:31:14 <andythenorth> By results
12:31:27 <andythenorth> But it’s not particularly a team
12:31:32 <petern> NFT - Non-Functional Team
12:32:11 <andythenorth> Sell me some NFT
12:33:04 <andythenorth> Is it beer time?
12:33:21 *** reldred has joined #openttd
12:33:21 <reldred> Newgrf controllable farm paddocks. NewFarmTypes
12:33:24 <andythenorth> Half term holiday innit
12:33:34 <reldred> NFT’s in OpenTTD. Sky is falling.
12:34:01 <andythenorth> Paddocks is just a WASM function embedded in the tile
12:34:33 <andythenorth> Or a specific loop over tiles in a region…
12:34:37 *** urdh has quit IRC (Ping timeout: 480 seconds)
12:34:51 <reldred> You’re just a WASM function
12:35:22 <andythenorth> Possibly yes
12:35:38 <andythenorth> High probability of that
12:35:41 <andythenorth> Just a sim
12:36:38 <andythenorth> Too early for beer then
12:37:30 <petern> Do it.
12:37:35 <petern> As long as you don't need to drive later.
12:41:10 *** urdh has joined #openttd
13:07:24 <FLHerne> kamnet: problem is that if you break grfs, you're not making a new OpenTTD version anymore so far as much of the player base cares
13:07:37 <FLHerne> and particularly the vocal dedicated part
13:08:34 <pickpacket> OpenLoco?
13:10:23 <FLHerne> Locomotion was Chris Sawyer's sequel to TTD
13:10:30 <andythenorth> BeerVariants?
13:10:32 <FLHerne> it had curves and things
13:10:43 <andythenorth> BeerVariant name callback?
13:10:47 <FLHerne> some people are doing the open-source-clone thing to it
13:11:05 <pickpacket> did it have anything that improved gameplay?
13:11:56 <petern> Nope.
13:13:03 <petern> Everything was dreary grey/brown, and usability of the nice features like bendy bridges and tunnels was bad.
13:14:57 <FLHerne> and the signals were somehow worse than the original
13:15:12 <FLHerne> building complex track layouts was a pain too
13:15:28 <FLHerne> isometric might not look pretty, but six track directions covers everything
13:16:03 <FLHerne> (four if you don't count the parallel ones)
13:20:50 <andythenorth> Maybe we should remake Dwarf Fortress instead of OpenTTD?
13:21:27 <andythenorth> Peter: 1138 Open Granny’s Garden?
13:21:52 <petern> They're probaby still selling that to schools...
13:22:21 <andythenorth> I was thinking of using a framework for it
13:22:37 <petern> Unity?
13:22:42 <andythenorth> GS
13:22:50 <andythenorth> Story pages
13:23:12 <petern> Oh no.
13:23:16 <andythenorth> Can we embed a WASM BeebEm?
13:28:48 <petern> You might hit your op code limit soon.
13:29:33 <andythenorth> Oh yes 😞
13:30:00 <petern> Silly gitea, giving me a 404 not found instead of unauthorised/login page.
13:32:02 <FLHerne> If wasm content interface, could the GRF API then be implemented in WASM instead of random hooks all through the code?
13:32:14 <FLHerne> that would be nice
13:33:29 <FLHerne> I wonder how caching would work
13:34:09 <FLHerne> with current grf API it's fairly obvious to statically determine which outputs depend on which inputs
13:34:43 <FLHerne> wasm would seem to make that quite a bit harder, because it's actual procedural code and not a bunch of switches
13:37:13 <petern> Good luck :p
13:37:51 <andythenorth> One API to rule them all
13:38:01 <andythenorth> Grf, GS, AI
13:38:10 <JGR> Using wasm doesn't by itself make complexity go away
13:39:15 <andythenorth> Does WASM provide anything beyond “forked Squirrel is very dead?”
13:39:26 <andythenorth> Plus it’s an interesting project…
13:40:08 <JGR> It's not too hard to analyse sprite chains/etc, it probably wouldn't be that difficult to do the same wasm
13:43:23 <FLHerne> JGR: yeah, I was just thinking it would concentrate the weird grf in one place
13:43:28 <FLHerne> *grf complexity
13:43:44 <JGR> I don't really see that it would
13:44:14 <JGR> In order for a mod to do anything useful it must interact with the rest of the game
13:44:44 <JGR> That interface has a large surface area
13:48:03 <Samu> my AI achilles' hills or whatever
13:48:07 <Samu> is large towns
13:49:37 <Samu> takes too much time to search for a suitable location for an airport, delaying execution of everything else, I end with vehicles 12 years awaiting in depot for a replacement
13:49:45 <FLHerne> Quite a bit of the current GRF code complexity is (a) interpreting action chains and (b) pointless legacy weirdness like all the different speed units
13:50:13 <FLHerne> for (a) wasm is at least as complex but some library devs' problem
13:53:58 <FLHerne> from what frosch was saying, I think the proposed wasm API would have a lot less role-specific surface than GRF
13:54:02 *** HerzogDeXtEr has joined #openttd
13:54:23 <FLHerne> rather than a hundred callbacks to
13:55:13 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
13:57:38 <FLHerne> *to determine what each vehicle looks like, give it an API to query the world state and have one "what sprites would you like to draw now" callback per train
13:58:24 <petern> Interpreting action chains is just an on-load thing, and it's done.
13:58:39 <FLHerne> evaluating action chains, then
14:00:30 <JGR> The GRF bitstream format is wacky and suboptimal, but there is a lot of existing infrastructure to read/write it
14:00:55 <JGR> Varaction2 evaluation is really not much code at all
14:01:24 <JGR> The main problem is again the strange bitstream format, and not enough operators
14:02:41 <JGR> Using wasm seems a big hammer to me
14:03:12 <andythenorth> I think it’s a question of what else could replace squirrel?
14:03:20 <andythenorth> Squirrel 3?
14:03:24 <andythenorth> Lua?
14:03:40 <andythenorth> Nobody ever embeds python
14:03:47 <JGR> Realistically squirrel/AI/GS is not that important
14:04:18 <JGR> NewGRF is though
14:04:42 <andythenorth> Self-fulfilling prophecy IMHO
14:04:53 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
14:05:00 <kamnet> FLHerne: Oh, no doubt there would be some vocal users against that. I would hope that devs would not feel that they're being held hostage and prevented from exploring ideas which would be a positive benefit overall.
14:05:19 <andythenorth> Our script language is a very limited version with bad docs and poor discoverability
14:05:55 *** WormnestAndroid has joined #openttd
14:05:56 <andythenorth> And we forked it… because that’s what projects do 😛
14:07:55 <dP> GS is limited by design, if you make it useful it'll interfere with newgrfs
14:08:22 <andythenorth> Good
14:08:34 <andythenorth> That’s my intent 🦄
14:10:04 <andythenorth> Weird content API is weird 😛
14:10:12 <dP> at that point it's more reasonable to redo it all with wasm
14:10:34 <andythenorth> Horse has left the stable 🙂
14:10:54 <andythenorth> Wonder which grfs and GS will be lost on the way 🙃
14:11:01 <petern> All of them.
14:13:33 <petern> So I was digging steps down to create a mine and hit sculk sensors... scared.
14:17:25 <gebik> petern: /difficulty peaceful 😛
14:22:56 <andythenorth> Go North
14:25:19 *** sergbloim has quit IRC (Quit: User went offline on Discord a while ago)
14:25:42 *** Wormnest has joined #openttd
14:36:18 <petern> Fitting 3 new tyres...
14:36:52 <petern> Although I think the inner tubes are a bit fat now, forgot about them.
14:37:39 <petern> 20x1.75 tubes in 20x1.35 tyres, oops.
14:39:08 <andythenorth> What could go wrong?
14:39:36 <petern> More chance of pinching it I think? Dunno
14:40:28 <andythenorth> Buy the 1.35s then leave them on a shelf
14:40:42 <petern> £80 so no 🙂
14:40:52 <andythenorth> The 1.75s won’t pinch flat ubtil your 30 miles from home, in the rain
14:41:08 <andythenorth> Character building
14:41:23 <petern> Ooh, 55-95 psi instead of 30-65psi, that's gonna be hard.
14:41:35 <andythenorth> Every pebble
14:41:47 <petern> I've got 3 spare tubes, unfortunately all 1.75...
14:41:47 <andythenorth> The speed though
14:42:21 <andythenorth> Ok another beer, or design HEQS 2?
14:43:03 <andythenorth> Will probably finish HEQS 2 just in time for WASM to obsolete it
14:43:14 <petern> Yes
14:43:16 <andythenorth> NotGRF
14:43:35 <petern> Use WASM to inject pixels into the frame buffer.
14:43:41 <andythenorth> Ideal
14:43:49 <andythenorth> What happened to webGL?
14:46:27 <FLHerne> It's happened, everyone uses it
14:46:51 <FLHerne> soon to be obsoleted by WebGPU maybe
14:47:46 <andythenorth> Port OpenTTD
14:48:11 <andythenorth> Our 3D rendering will be much faster
14:59:08 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
14:59:25 <Samu> what is {RAW_STRING}
14:59:39 *** WormnestAndroid has joined #openttd
15:09:56 <Samu> this is quite repetitive
15:09:58 <Samu> local rail_infrastructure_count = GSInfrastructure.GetInfrastructurePieceCount(company, GSInfrastructure.INFRASTRUCTURE_RAIL);
15:10:33 <bigyihsuan> is it even possible to compile ottd to wasm?
15:12:14 <LordAro> yup
15:12:22 <LordAro> that's what the preview builds are
15:17:18 *** nielsm has joined #openttd
15:24:14 <bigyihsuan> ~~ottd in the web browser when~~
15:25:31 <TallTyler> Already exists, but missing some features like actually saving to a useful place (browser storage currently, which is easy to wipe)
15:28:20 <Samu> hey TallTyler i found the cause of river gen stalls
15:28:36 <Samu> i updated the issue
15:41:20 *** Smedles_ has joined #openttd
15:45:35 *** Smedles has quit IRC (Ping timeout: 480 seconds)
15:58:59 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on issue #10477: [Bug]: Build bridge window truncates speed and cost
15:59:10 *** Smedles has joined #openttd
16:01:45 *** supermop_toil has joined #openttd
16:06:38 *** Smedles_ has quit IRC (Ping timeout: 480 seconds)
16:08:42 <andythenorth> Should vehicle info text include railtype (etc)?
16:13:44 <Xarick>
16:13:44 <Xarick> too much information, and it's using too much cpu
16:14:57 <andythenorth> Has your script got a sleep in the main loop?
16:15:10 <glx[d]> Samu: {RAW_STRING} something broken in GSText, it has been disabled by <> (but looks like a side effect), and if I re-enable them they are enclosed with quotes
16:16:11 *** TROILUS4 has joined #openttd
16:17:01 <Samu> no sleep
16:18:11 <glx[d]> it should sleep
16:18:40 <glx[d]> well there's a sleep after each command call
16:18:59 <Samu> maybe this information is not that important
16:19:40 <glx[d]> but you don't have to constantly update the league window if there's no change
16:19:52 <Samu> it's the number of stations that have a vehicle heading to it / total number of stations of that type
16:20:06 <Samu> then the %, for each vehicle type, for all 15 companies
16:20:13 *** TROILUS has quit IRC (Ping timeout: 480 seconds)
16:20:13 *** TROILUS4 is now known as TROILUS
16:20:40 <glx[d]> expensive data it seems
16:21:00 <Samu> it has to create lists, and valuate
16:21:22 <Samu> lists + valuate make it fast, but uses much cpu
16:21:30 <Samu> cpu spikes
16:22:59 <Samu> local vehicle_list = GSVehicleList_Station(station); i suspect this one is costly
16:23:18 <Samu> and i iterate over all stations, 4 times per company
16:23:36 <Samu> i could perhaps make it iterate 1 per company with a bit of boring code
16:24:17 <Samu> let me show
16:24:25 <dP> it would be nice to have RAW_STRING working in GS
16:24:41 <glx[d]> it's supposed to work in the doc 🙂
16:24:43 <dP> it's kinda ridiculous that it's not able to display any string that's not in lang file
16:25:38 <Samu>
16:26:13 <Samu> i repeat that code 4 times in the function, and then the whole function is iterated over all 15 companies
16:26:18 <Samu> :(
16:35:36 <glx[d]> ah I think I know why RAW_STRING are disabled, if GS messes up its parameters it crashes openttd
16:36:08 <glx[d]> string args handling is not very safe
16:44:56 *** keikoz has joined #openttd
16:56:16 <dP> yeah, openttd doesn't keep the argument type so can't distinguish string from integer later
16:56:55 <dP> to do the safety check
17:27:14 <Samu> got a weird crash
17:29:51 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick opened issue #10486: [Crash]: Loaded savegame, crashed
17:30:59 *** TROILUS has quit IRC (Read error: Connection reset by peer)
17:31:25 *** TROILUS has joined #openttd
17:38:48 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #10486: [Crash]: Loaded savegame, crashed
17:41:43 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
17:42:38 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick commented on issue #10486: [Crash]: Loaded savegame, crashed
17:47:02 <Samu> i didn't wanna upload the script, it's not finished :(!
17:58:59 <Samu>
17:59:13 <Samu> now it's slighly less spiky, but it's still slow
17:59:47 <Xarick>
18:00:33 <LordAro> Samu: uploading a GS to an issue is not the same as publishing it...
18:00:53 <LordAro> your only other option is to cut it down to a minimal example
18:06:45 <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on issue #10486: [Crash]: Loaded savegame, crashed
18:09:07 <glx[d]> but the dumps seems to show it's not related to the GS itself, ai_debug_company is 0
18:09:44 <Samu> let me try here
18:11:25 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick commented on issue #10486: [Crash]: Loaded savegame, crashed
18:12:32 <Samu> show_company = OWNER_DEITY (18 '\x12')
18:12:38 <Samu> it's the GS for me
18:13:53 <glx[d]> I just use the info available in dmp (it's not always correct)
18:15:13 <Samu> ah, it's iterating over all companies
18:15:37 <Samu> that's somewhat wrong indeed
18:15:52 <Samu> SelectValidDebugCompany
18:19:01 <Samu> i think it's initializing the debug window and selecting whatever comes first
18:19:16 <Samu> so it begins with AIs first
18:20:16 <Samu> then i guess the code that was meant to come after, was to point the GS error, which didn't execute, it already crashed openttd
18:20:39 <glx[d]> oh for GS to be valid it has to have an instance, but for AI instance is not required, and I think it's a bug
18:21:04 <glx[d]> checking is_ai is not enough
18:23:07 <glx[d]> company 0 is an AI but IIRC the GS is started before AIs
18:24:06 <Samu> lookg at game_instance.cpp ShowErrorMessage
18:24:20 <Samu> that was when it would switch to GS in the window
18:24:26 <glx[d]> the bug comes from StartScripts()
18:24:42 <Samu> it didn't reach there, it crashed during initialization
18:24:46 <glx[d]> AI companies are not yet started
18:24:51 <Samu> i guess
18:25:02 <Samu> they needed to be
18:25:06 <glx[d]> but the window assumes they are
18:26:03 <glx[d]> move starting of GS to after starting of AI
18:26:03 <Samu> what if it initialized directly as DEITY?
18:26:10 <Samu> would it crash?
18:29:22 <glx[d]> it's not the problem, when you open the window it shows the first valid log
18:30:19 <glx[d]> but in this exact situation the loading is not fully finished, and some states are not yet valid
18:31:52 <glx[d]> SelectValidDebugCompany() is not fully correct because it assumes is_ai == an AI is fully started
18:34:11 <Samu> i just tried GS
18:34:16 <Samu> being tested first
18:34:27 <Samu> still crash, because GS is dead, and is skipped
18:34:46 <Samu> so it tests AIs again, crashes on initializing it
18:35:47 <Samu> nevermind, i failed to use return
18:37:00 <Samu> it worked!
18:37:53 <glx[d]> but as I said reordering in StartScripts() should work
18:38:10 <Samu> tested this
18:38:34 <Samu> what if it was an AI that crashed during load first?
18:38:50 <Samu> let me force an AI crash
18:39:51 <glx[d]> if the first AI crashes on start, the instance exists
18:40:00 <glx[d]> so no issue
18:41:35 <Samu> crashed again
18:42:18 <Samu> commented out the if (Game::GetInstance() != nullptr) { } part
18:42:35 <Samu> and created a mistake in one of the AIs, it crashed in the same manner
18:42:55 <Samu> oh wait, i need a different save
18:43:00 <Samu> my bad
18:43:42 <Samu> actually i need to fix the GS first, no new save needed
18:44:26 <Samu> no crash! you're right
18:44:48 <Samu> I'm possibly being unhelpful :o
18:46:40 <glx[d]>
18:46:53 <glx[d]> this should be enough
18:47:09 <andythenorth> My dream
18:47:25 <andythenorth> Is an interactive GS interpreter in game
18:47:41 <andythenorth> Then we could crash it live without saveload faff 😛
18:47:56 <Samu> that also works
18:50:41 <DorpsGek> [OpenTTD/OpenTTD] glx22 opened pull request #10487: Fix #10486: [Script] Debug window requires AIs to be started before GS
19:01:21 <andythenorth> Hmm Web Inspector, but for the game?
19:01:45 <andythenorth> Read/modify any tile, in place?
19:02:04 <andythenorth> “What could go wrong?”
19:08:56 <michi_cc[d]> Map hex editor? 🙂
19:20:51 <andythenorth> Mutable tile props
19:21:04 <supermop_toil> anyone remember that ini editor or something for c&c
19:21:12 <andythenorth> michi_cc[d]: Nah, do it by setting actual bits
19:21:14 <supermop_toil> where you could give the orca grenades etc
19:24:53 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
19:35:47 *** FaraloMACHINEOFWAR has joined #openttd
19:35:47 <FaraloMACHINEOFWAR> BRO
19:38:34 <andythenorth> Ha per-tile bit setting, but you have to write raw WASM to do it
19:38:44 <Samu> could i create a function in openttd to get date of last visit of some station?
19:39:29 <Samu> it would be much less cpu intensive, as the value is already cached
19:39:46 <LordAro> do players get access to such information?
19:40:00 <Samu> probably not, but this is a gs
19:40:06 <Samu> not ai
19:40:14 <LordAro> hmm
19:40:18 <LordAro> maybe then
19:41:32 <Samu> i can think of other ways of achieving the same, but they're all cpu hogs
19:43:01 <Samu> is this piece of statistical data even important
19:45:32 <Samu> who would wanna know
19:52:50 <andythenorth> What if GS could dynamically include c++ functions?
19:53:06 <andythenorth> Monkey patch the game 🙀
19:53:27 <FLHerne> Samu: it sounds more useful than some of the other stuff you wanted to add
19:53:47 <FLHerne> andythenorth: I'm sure that wouldn't make the backwards-compatibility nightmare any more nightmarih
19:54:47 <andythenorth> “Probably fine”
19:56:23 <andythenorth> We break backwards compatibility frequently anyway according to the playerbase 🙃
19:59:30 *** Wolf01 has joined #openttd
20:00:04 *** Arastais has joined #openttd
20:00:04 <Arastais> andythenorth: Even better: What if GS was 100% C++ 😲 no more squirrel?
20:01:43 <Samu> can i detect which window is open?
20:01:56 <Samu> which of my GSTable windows is open
20:02:13 <dP> Arastais: that's citymania server xD
20:02:29 <Samu> so that I only run the statistics when the windows are open
20:02:40 <Samu> when they're not, the statistics are skipped
20:03:33 <dP> dP: and it's been almost two weeks already of me merging 13.0 into it...
20:03:49 <Arastais> dP: yea but thats not using the actual gs api right, its just a server patch essentially?
20:04:05 <glx[d]> Samu: GSWindow.IsOpen
20:04:16 <dP> it kinda has it's own api
20:05:34 <Samu> hmm, are the windows numbered somehow?
20:05:51 <Samu> i'll check this
20:07:37 <Arastais> dP: does it just parse the C++ files or does it actually compile and run them like a plugin?
20:11:02 <dP> no, it just compiles along with the server, but the interaction with the openttd codebase is mostly through an interface like this:
20:14:19 <dP> I was considering adding wasm into the mix just so I can write it in rust
20:14:28 <dP> but it's not really worth the effort
20:16:53 <andythenorth> Arastais: Well that would make the coin miner much easier to include
20:18:08 *** Samu_ has joined #openttd
20:19:00 <glx[d]> <> <-- so nice
20:19:41 <glx[d]> and of course nightly failed for the same reason
20:20:32 <frosch> every day this week some nightly failed for some other reason 🙂
20:21:37 *** Samu has quit IRC (Ping timeout: 480 seconds)
20:22:29 <frosch> oh, if one target fails, none are published?
20:22:39 <frosch> i wanted to test the generic linux build
20:28:02 <glx[d]> yes it's all or nothing
20:30:13 <Xarick>
20:30:13 <Xarick> too much information on a single window
20:30:54 <frosch> well, i downloaded the artifact from the action
20:30:56 <Xarick> and the rating is still 0
20:31:07 <andythenorth> CI is time-saving automation 🙂
20:31:35 <frosch> "Fontconfig error: Cannot load default config file: No such file: (null)" <- that is new
20:37:41 *** WormnestAndroid has joined #openttd
20:40:24 <DorpsGek> [OpenTTD/OpenTTD] glx22 updated pull request #10487: Fix #10486: [Script] Debug window requires AIs to be started before GS
20:41:09 <frosch> zlib version did not change between yesterday and today
20:41:14 <frosch> so who knows what changed :p
20:41:20 <frosch> maybe it works tomorrow then
20:42:41 <andythenorth> Sun spots
20:42:47 <andythenorth> Magnetic bees
20:42:55 <andythenorth> Cosmic rays
20:46:22 <glx[d]> yesterday it used 20230205.1 image, but today it's 20230214.1
20:46:37 <glx[d]> maybe they removed pkg-config without telling
20:47:48 <glx[d]> oh and eints failed again
20:48:13 <glx[d]> something changed with branch protection
20:48:47 <glx[d]> remote: error: GH006: Protected branch update failed for refs/heads/master.
20:48:47 <glx[d]> remote: error: At least 1 approving review is required by reviewers with write access. 10 of 10 required status checks are expected.
20:56:20 <TrueBrain> Owh, my bad
20:58:18 <TrueBrain> Fixed for tomorrow
21:04:20 <DorpsGek> [OpenTTD/OpenTTD] glx22 opened pull request #10488: Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS
21:05:28 <glx[d]> but <> doesn't mention pkg-config
21:07:21 <glx[d]> I can see an update of homebrew from 3.6.20 to 3.6.21 though
21:07:28 <Samu_> what does {CARGO_LIST} do?
21:07:54 <glx[d]> cargo1, cargo2, cargo3,...
21:08:10 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #10488: Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS
21:08:21 <frosch> TrueBrain: generic build worked, it found the certs 🙂
21:08:22 <Samu_> hmm how can i use it in a GS
21:08:56 <TrueBrain> frosch: W00p!!! 😄
21:09:08 <TrueBrain> Getting there .. almost secure :p
21:10:06 <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on pull request #10488: Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS
21:21:49 <DorpsGek> [OpenTTD/OpenTTD] glx22 updated pull request #10488: Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS
21:22:34 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain approved pull request #10488: Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS
21:32:12 <petern> Wibble
21:32:53 <LordAro> petern: have you got underpants on your head?
21:34:08 <glx[d]> this question with the "BOT" marker is funny
21:34:42 <petern> No but I do have a trike...
21:35:56 <DorpsGek> [OpenTTD/OpenTTD] glx22 merged pull request #10488: Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS
21:36:24 <DorpsGek> [OpenTTD/OpenTTD] glx22 updated pull request #10487: Fix #10486: [Script] Debug window requires AIs to be started before GS
21:37:47 <andythenorth> Goes it throw out 256 action 2 IDs?
21:43:01 <petern> Hmm, where's my retropie SD card...
21:43:27 <Arastais> andythenorth: well, to have C++ source files for GSs and whatnot, (iirc) OpenTTD could
21:43:27 <Arastais> - load plugins/libraries through C linkage
21:43:27 <Arastais> - distribute the source files themselves and have them compiled by a c++ compiler when they are downloaded. (probably the easiest solution but obviously requires everyone to have a C++ compiler)
21:43:27 <Arastais> - just parse it like any other scripting language (jank)
21:48:30 <Samu_> how do these work {CARGO_LONG}, {CARGO_SHORT}
21:48:36 <Samu_> {CARGO_TINY}
21:48:50 <andythenorth> As long as we can exec arbitrary filesystem code, I’m sure everyone will be happy 😊
21:48:56 <Samu_> it gets jammed
21:49:17 <andythenorth> Jammed Samu?
21:49:24 <Samu_> jiggerish
21:49:42 <Samu_> displays random stuff
21:53:36 <Arastais> Samu_: this might help you
21:53:51 <Samu_> so i wanted to display the cargo type, not the amount of cargo type :(
21:54:14 <Samu_> but what comes after gets gibberish
21:54:41 <Samu_> gonna try raw_string
21:54:42 <Arastais> Samu_: what about `{CARGO_NAME}`?
21:55:07 <Samu_> i think that doesn't exist for gs
21:55:39 <Samu_> nop, thats for grf
21:57:53 <frosch> you use CARGO_LIST in scripts
22:00:40 <glx[d]> {RAW_STRING} doesn't work in GS 😉
22:01:51 <glx[d]> I'm looking into parameters type validation at ScriptText level
22:02:19 <frosch> i thought RAW_STRING also works for gs
22:02:26 <glx[d]> no it's disabled
22:03:02 <glx[d]> because there's no validation so if you pass the wrong parameter you crash openttd
22:03:13 <frosch> there are plenty of GS using it in my content_download folder
22:03:49 <glx[d]> you can use raw string in API calls, but not in GSText
22:04:16 <glx[d]> {RAW_STRING} will be empty
22:07:01 <glx[d]> and I think all parameters will be off by one after each {RAW_STRING}
22:10:49 <frosch> are you telling me that is just dead code?
22:11:45 <glx[d]> string handling in openttd is not the safest, it works fine with our strings because we manage english.txt and the parameters, but stuff coming from GS is totally unsafe, so without proper validation some potential crash are prevented
22:12:00 <glx[d]> it's half dead 🙂
22:12:24 <glx[d]> raw string args are encoded, but not used
22:13:26 <glx[d]> anyway their decoding was incorrect <>
22:13:35 <glx[d]> the quotes are not removed
22:13:57 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:30:58 <Xarick>
22:30:58 <Xarick> the 3rd table is created!
22:31:07 <Xarick> rail infrastructure efficiency
22:32:19 <Xarick> i should be more explicit with the description, it's for trains only
22:33:46 <Samu_> i will make a road, canal and airport too
22:33:50 <Samu_> separately
22:34:29 <andythenorth> Can you print it to excel via admin port also? 🙂
22:34:39 <Samu_> i have no idea
22:34:55 <andythenorth> I have no idea about admin port <-> GS 🙂
22:34:57 <Samu_> if only i knew how to use the admin port
22:36:32 <glx[d]> <> from GS side it's "easy"
22:37:03 <Samu_> oh, i just send the whole table? lol
22:38:05 <Samu_> i have some arrays in the table
22:38:12 <Samu_> will that be sent ?
22:38:34 <andythenorth> 1459 byte limit
22:38:38 <Samu_> also, it's a table with other tables inside, a mess
22:38:46 <Samu_> ah, that won't be enough i guess
22:38:54 <andythenorth> Slightly over 1KB
22:42:02 <Samu_> unless i split the info
22:52:31 <Samu_> i am trying to send a table that is too large to the admin port :=)
22:52:39 <Samu_> no data sent
22:53:30 <Samu_> at least it seems the data i'm trying to send is valid, it's a mix of table and array
22:58:55 <Samu_> well, what to do now that i made the data sent, how am i supposed to receive it?
23:06:00 <Samu_> GSAdmin.Send({ league_name =, company = c_id, league_val = GetLeagueVal(, c_id) });
23:06:16 <Samu_> you lucky andythenorth , it fits
23:06:25 <Samu_> but i get no idea how to receive it
23:09:42 <Samu_> this link doesn't work
23:17:34 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:19:48 *** Samu_ has quit IRC (Quit: Leaving)
23:19:57 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
23:21:19 *** nielsm has quit IRC (Remote host closed the connection)
23:24:36 <petern> openttdcoop is dead, long live openttdcoop.
23:24:44 *** sla_ro|master has quit IRC ()
23:48:16 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
23:48:21 *** WormnestAndroid has joined #openttd