IRC logs for #openttd on OFTC at 2023-01-08
โด go to previous day
00:03:31 <glx[d]> andythenorth: I don't see why it should not, it's using cmake
00:04:02 <andythenorth> grfcodec cmake seems to be looking for an XCode 12 SDK
00:04:22 <andythenorth> and the build wants some libs that are deprecated / missing
00:05:08 <andythenorth> every time I forget ๐
00:05:43 <glx[d]> (that should fix the sdk thing)
00:12:35 <petern> `#include"nforenum.h"`
00:12:44 <petern> Who writes code like that, with no spaces?
00:13:00 *** sla_ro|master has quit IRC ()
00:16:56 <petern> `if(_grfver<7&&lang&0x60&&(lang&0x7F)!=0x7F)IssueMessage(WARNING3,UNKNOWN_LANG_BIT,2,lang);`
00:25:06 <Pruple> start game > 1930, build "small airport", crash ๐
00:26:36 <petern> I was going to go to sleep...
00:27:37 <andythenorth> have important things to do tomorrow
00:27:41 <andythenorth> like get up, have coffee
00:27:44 <andythenorth> not feel like crap ๐
00:29:26 <glx[d]> petern: and that's one of the 2 different coding styles in the whole project
00:30:03 <petern> Pruple: Hmm, so the cost to build was different
00:31:05 <petern> 9300 in test, 9225 in exec.
00:38:16 <Pruple> oops, defined some tile locations overlapping. is that the problem? ๐
00:38:39 <petern> That... could be a problem.
00:40:18 <Pruple> that seems to fix it. ๐ panic over.
00:40:35 <Pruple> /me learn to count to 4
00:56:21 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
00:56:28 *** WormnestAndroid has joined #openttd
01:13:19 <reldred> vs code with the nml extension is very comfy
01:19:25 *** supermop_Home_ has quit IRC (Ping timeout: 480 seconds)
01:21:53 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
01:22:29 *** WormnestAndroid has joined #openttd
01:35:37 *** gelignite has quit IRC (Quit: Stay safe!)
01:39:48 <reldred> alright, multi tile buildings in NML, let's see how badly I stuff this up
02:06:46 <reldred> Hmm, converting multi tile building logic from objects to houses isn't quite so simple
02:07:56 <reldred> hmm maybe this doesn't need to be that complicated, I'm not doing randomization on these
02:51:03 <reldred> this nml stuff isn't too bad I suppose
02:58:11 *** Wormnest has quit IRC (Quit: Leaving)
03:28:03 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:49:27 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
04:16:00 *** TROILUS6 has joined #openttd
04:21:38 *** TROILUS has quit IRC (Ping timeout: 480 seconds)
04:21:38 *** TROILUS6 is now known as TROILUS
04:51:39 <reldred> I've gotten more done in about three sessions worth of nml'ing than I did in months of developing this same set in NFO ๐ณ
04:52:22 <reldred> I still need to sort out stats for the buildings, cargo acceptance, etc.
04:52:36 <reldred> min pop requirements, etc.
07:12:42 *** HerzogDeXtEr has joined #openttd
07:34:43 <pickpacket> reldred: do regular houses have cargo acceptance? Is that why it varies whether a city accepts passengers or not?
07:36:02 <reldred> not a lot of house sets implement accepting anything other than food or goods though
07:36:37 <reldred> I want this set to have rich commercial areas or light industrial areas so I'll get to play around with the cargo acceptance a bit
07:36:54 <reldred> ruin the careful balance of FIRS, and so forth
07:38:42 <pickpacket> I was about to ask about food, but I guess thatโs a FIRS thing
07:39:00 <pickpacket> Iโve only played vanilla + tea tea deluxe
07:39:04 <reldred> No food is a thing in sub arctic in vanilla ttd
07:39:25 <reldred> I canโt remember whether it is in sub tropic
07:40:05 <Merni> petern: That does look stupid but I've seen plenty of `#include<stdio.h>` and imo that looks less stupid
07:53:20 <dwfreed> #include"file.h" is a lot worse than #include<file.h>, but both are bad
08:08:27 <reldred> final stretch, just got a few shopping centres to code up then I can tweak stats
08:08:41 <andythenorth> goes it ruin FIRS
08:08:48 <andythenorth> that delicate cargo town balance
08:09:09 <reldred> andythenorth: absolutely
08:09:16 <andythenorth> Pruple: I am deleting most 2020 edition Horse wagons, subscribe?
08:09:24 <reldred> I'm going to give you reason to need to block my grfid
08:09:29 <Pruple> it's like taking a sledgehammer to a sledgehammer testing facility
08:09:32 <reldred> and then, I'll just change the grfid again
08:09:47 <andythenorth> Horse gen 6 is gen 5, with 4 tons more, and 3 different pixels
08:10:08 <reldred> tesco next to the kfc
08:10:14 <Pruple> andythenorth: I am generally in favour of fewer vehicles, less confusing for players and less to balance/draw ๐
08:10:20 <reldred> and a maccies just down the road
08:10:36 <andythenorth> Pruple: but there might be an increase in 1990 wagons ๐
08:10:47 <Pruple> 1990 is a lot of wagons ๐ฎ
08:10:59 <andythenorth> I suspect my unwritten goal is to never build the same train twice ๐
08:11:02 <reldred> future horse future horse
08:14:38 <andythenorth> reldred: enjoying the actual realism there
08:14:43 <andythenorth> you have modelled where I live
08:15:29 <reldred> but where's the maccies
08:17:18 *** sla_ro|master has joined #openttd
08:18:28 <andythenorth> they don't have one there
08:21:44 <reldred> two more sets of supermarkets
08:21:49 <reldred> and then I think I'm done
08:25:48 <andythenorth> 28 Horse wagons deleted so far
08:37:01 <reldred> Okay, how do these bitmasks in NML work? If I want availability mask to say for instance allow only two particular zones do I do [bitmask(TOWNZONE_CENTRE | TOWNZONE_INNER_SUBURB)] ?
08:38:51 <andythenorth> bitmask(CC_PASSENGERS, CC_MAIL, CC_ARMOURED)
08:39:05 <andythenorth> sometimes you have to & it with the var
08:39:40 <andythenorth> cargo_classes & bitmask(CC_PASSENGERS, CC_MAIL, CC_ARMOURED)
08:41:25 <reldred> nice, well that's the next task then, going through and giving all these buildings the correct stats
08:45:35 <andythenorth> Horse will be v3 then
08:45:40 <andythenorth> leave v2 alone I think
08:45:52 <andythenorth> then Reddit can be confused
08:47:12 <andythenorth> be confused on Reddit
08:47:16 <andythenorth> it's the special place for it
08:54:15 <reldred> andy woke up this morning and chose violence
08:57:42 <andythenorth> I suspect I made poor choices ๐
08:58:08 <andythenorth> went to sleep at 2am
08:58:14 <andythenorth> one of my kids woke up noisily at 6am
08:59:08 <andythenorth> on the plus side, if I delete one more engine, magic 150
08:59:58 <reldred> kids these days have it too easy, if I'd have woken my parents up at 6am I'd be thrashed within an inch of my life
09:01:15 *** WormnestAndroid has quit IRC (Remote host closed the connection)
09:21:39 <andythenorth> did I crash Bananas?
09:22:01 <andythenorth> nope, it just needed a think
09:41:14 <reldred> okay, basic stats and basic intro years done, now we watch the city grow on fast forward
09:44:42 <andythenorth> crashed it again ๐
09:44:52 <reldred> I need to put some minimum ages on these buildings
09:45:10 <reldred> dirty great block of flats goes up, and gets knocked down 2 minutes later
09:45:48 <Fairy> indecisive urban planners
09:45:58 <reldred> skyscraper got knocked down and replaced with a maccies
09:45:58 <Fairy> "You know what, no, I think it should go like, five meters to the left"
09:46:11 <Fairy> "Who needs homes when you can make money instead?"
09:48:39 <petern> Cool, seems like I have no broken that... yet.
09:51:12 <petern> Although maybe the list could be expanded widthwise.
09:51:17 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
09:53:13 <petern> Hmm, is this vinyl damaged or is the battery in the pre-amp running low...
09:53:48 *** gelignite has joined #openttd
09:57:56 <petern> Ah, gotta be the battery ๐ฆ
10:00:51 <reldred> Okay let's see how this behaves with min ages
10:02:40 <andythenorth> the crashes might be related to variants changing in the grf
10:02:47 <andythenorth> but only triggers with groups
10:03:04 <andythenorth> and is triggered either by opening autoreplace on the group, or switching autoreplace from engines to wagons
10:03:18 <andythenorth> deleting the groups and remaking them eliminates the issue
10:03:32 <andythenorth> does not trigger for 'all trains' or 'ungrouped trains'
10:03:52 <petern> Do you not get a backtrace when you get that error popup?
10:04:03 <andythenorth> I do but the mac backtrace is crap
10:05:38 <petern> Message: Assertion failed at line 750 of /Users/runner/work/OpenTTD/OpenTTD/src/widget_type.h: this->count <= this->cap ? (position == 0) : (position + this->cap <= this->count)
10:06:14 <petern> That tells me it's an issue populating scrollbar info.
10:07:46 <petern> Your stacktrace is mostly fine. The useless stacktraces of our builds were fixed by #10072.
10:08:51 * andythenorth behind the times
10:24:06 <LordAro> andythenorth: giv bug report
10:24:49 <andythenorth> remember the rules? ๐
10:25:30 <andythenorth> can't get a repro in a fresh game
10:25:51 <LordAro> well, still might be worth looking into
10:26:01 <LordAro> may be some "corrupt savegame" protection that could be added
10:26:15 <reldred> some of these random jobbies aren't working properly ๐
10:37:27 <reldred> Okay, got a curly one, if I do this:
10:37:27 <reldred> `` sprite: spriteset_tbs1_2((animation_frame + random_bits) % 3);``
10:37:27 <reldred> Or any other odd number, the randomization works
10:37:28 <reldred> If I do an even number:
10:37:28 <reldred> `` sprite: spriteset_tbs1_3((animation_frame + random_bits) % 4);``
10:38:35 <reldred> TBH, I don't even know why that animation frame bizzo is even in there, this is fridaemons newobjects nml I've converted to newhouses
10:40:58 <andythenorth> well let's see if I can crash it deliberately
10:46:30 <reldred> I'll try pseudo random bits instead of random bits
10:47:22 <andythenorth> ok seems that the crash requires reloading a grf that has actually been modified
10:47:27 <reldred> hmm, no, that doesn't work
11:14:05 <reldred> I don't get this, why, would random_bits % 4 work fine in a switch block but not in a sprite layout
11:14:20 <reldred> mod 3 or 5 or 9 works fine in a sprite layout,
11:15:30 <Samu> okay the problem is the widget selection. I wanna close WC_QUERY_STRING in a smart manner
11:20:43 <JGR> reldred: `% 4` only looks at the lowest two bits, if the "randomness" was all in other parts you could have issues?
11:24:01 <reldred> So the full line from fridaemons object set nml is this:
11:24:01 <reldred> `` sprite: spriteset_tbs1_2((animation_frame + nearby_tile_random_bits(0,0)) % 4);``
11:24:25 <reldred> is that just an inherit difference between how nearby_tile_random_bits(0,0) works?
11:24:40 <reldred> or is this relying on the animation frame to actually do something?
11:25:33 <reldred> but likewise I wouldn't get why % 3 would work but % 4 wouldn't?
11:26:47 <reldred> and random_bits % 4 works fine in a switch block
11:27:06 <JGR> Presumably this is to add an offset to your animation so they're not synchronised?
11:27:37 <reldred> These aren't even animated, it's just picking a random sprite
11:29:11 <reldred> I have a workaround now, oh well
11:31:12 <JGR> Could be that the original was doing something fancy, might be worth checking for other animation and random related things
11:32:17 <reldred> here we go, found these:
11:32:17 <reldred> `` anim_control: return CB_RESULT_NEXT_FRAME;
11:32:17 <reldred> anim_next_frame: return CB_RESULT_NEXT_FRAME;``
11:32:25 <reldred> in the graphics section of the item
11:33:28 <TonyPixel> What if write IDE for NML ๐ค
11:35:51 <petern> Hmm, type-safety but it's via templates, so the error is... very verbose.
11:36:15 <reldred> Nope, that did nothing
11:40:04 <JGR> Are you using random triggers?
11:40:33 <reldred> I barely know what I'm doing at this stage
11:40:53 <reldred> it's late and I've spent the whole day staring at NML ๐
11:41:01 <reldred> My brain is pickled at this stage
11:41:19 <andythenorth> animation is pissy because there are about 4 ways to do it
11:41:39 <andythenorth> so it always feels like you might have picked the wrong one
11:41:57 <andythenorth> * lots of ways is good, it's flexible
11:42:01 <reldred> I'm turning in for the night, later all
11:48:40 <andythenorth> hmm do we need Variant Categories? ๐
11:51:42 <andythenorth> or maybe icons in the vehicle list for each generation? ๐
11:57:39 <andythenorth> Specifically I want to make it easy to tell differen generations of vehicle apart in the buy menu. I try to draw them visually distinct but not always easy
11:58:27 <andythenorth> How about I overlay a tombstone icon when itโs near end of model life? ๐
11:59:15 <andythenorth> I mocked up a โnewโ sticker as well once, pretty sure frosch was going to code it, yez/no?
12:08:19 <Samu> InteractiveRandomRange is this multiplayer safe?
12:09:12 <Samu> AIs are started by the server
12:09:44 <Samu> so, i expect InteractiveRandomRange to not sync with clients, I think...
12:10:08 <Samu> otherwise, server runs a different course
12:19:38 <Samu> well ai_start_next is synced between multiplayer servers, it actually doesn't require sync if I think about it
12:20:00 <Samu> only the server can start AIs
12:23:22 <petern> Between servers? Have you federated them?
12:23:48 <Samu> between server and client
12:24:29 <Samu> InteractiveRandomRange is only run on the server, clients don't run it
12:24:36 <Samu> will it be cause for desyncs?
12:59:26 *** murr4y has quit IRC (Ping timeout: 480 seconds)
13:08:35 *** sla_ro|master has quit IRC ()
13:14:46 *** Samu has quit IRC (Ping timeout: 480 seconds)
13:39:56 <Samu_> it's been 1 hour, no desyncs
13:45:08 *** Samu_ has quit IRC (Quit: Leaving)
13:54:58 <Samu> got a crash, trying to load an old savegame
13:56:08 <Samu> ScriptObject::ActiveInstance::ActiveInstance(ScriptInstance *instance) : alc_scope(instance->engine)
14:03:57 <Eddi|zuHause> andythenorth: make the buy menu sprite depend on the current year?
14:05:44 <petern> Game could easily do it but we can't change anything
14:16:54 <andythenorth> Eddi|zuHause: Yup might try it
14:17:33 <petern> As intro date is randomized it'll be a big vague.
14:18:06 <Eddi|zuHause> i like to use "early retirement" to force them out of the buy menu
14:24:09 <Samu> emergency save also crashes, that's funny!
14:24:52 <petern> Does it crash in master?
14:27:37 <glx[d]> Loading of scripts in 12.2 was different, so test master and right before #9745 merge
14:35:12 <Samu> it's trying to broadcast news to other AIs, but their instances are nullptr
14:37:58 <glx[d]> The log says 2 human companies
14:52:51 *** gelignite has quit IRC (Ping timeout: 480 seconds)
15:08:26 *** WormnestAndroid has joined #openttd
15:11:34 <Samu> the "start_date" getting in the way of those crash reports
15:13:15 *** HerzogDeXtEr has joined #openttd
15:16:54 <michi_cc[d]> Any plans from anybody on a RC2 (or a .0)?
15:26:20 <andythenorth> petern: goes it a var for intro date? ๐
15:26:23 <andythenorth> maybe there is one
15:27:10 <andythenorth> 80+ vehicles var 02?
15:27:27 <andythenorth> or is it one of those 80+ vars that can't be trusted? ๐
15:28:02 <petern> `0x02: break; // not implemented`
15:28:44 <petern> Deliberately, it would be wonky for anything outside the original years.
15:28:46 <andythenorth> a var for 'is vehicle with ID X available || in exclusive preview'
15:28:57 <andythenorth> but that might have circularities or something, dunno
15:29:00 <andythenorth> there was probably a reason
15:29:16 <petern> I like the idea of just having extra info, either in the list or in the details.
15:29:27 <petern> (And not requiring NewGRF to have to do it)
15:30:06 <andythenorth> it's one of those things...all my suggestions are half-assed, based on little tweaks to the current spec
15:30:06 <petern> michi_cc[d]: Not me but I might have a look at some bugs.
15:30:31 <andythenorth> I'm only thinking of hacks on what we can do now, instead of what would be good
15:30:37 <petern> "But now it clutters the purchase list"
15:31:02 <Samu> how do i test an old version of openttd, trying to run openttd as of 6953df7b
15:32:20 <andythenorth> it's only this period of time when the wagons overlap that I find confusing
15:33:08 <andythenorth> it's fine when there's a big visual change
15:33:34 <petern> Make them variants ๐
15:33:38 <andythenorth> but some types have limited scope ๐
15:33:40 <andythenorth> yeah considered variants
15:34:18 <andythenorth> "Gen 5 Bulkhead Flat Wagon" or something
15:34:53 <andythenorth> or a filter that hides vehicles introduced > % of the model life
15:35:10 <andythenorth> or drawing them to look more different ๐
15:35:43 <andythenorth> engines just don't have the same visual difficulty
15:36:00 <andythenorth> RV trucks do have this issue though
15:42:50 <andythenorth> hmm what does buy menu look like in other train games
15:43:08 <petern> Not so many different choices :p
15:43:53 * andythenorth reads about train fever modding
15:44:29 <andythenorth> oh groups and variants
15:44:34 <andythenorth> identical terminology maybe
15:44:42 <andythenorth> convergent evolution ๐
15:45:34 <andythenorth> oh they have conventions for buy menu sprites
15:45:46 <andythenorth> one of them is to overlap
15:46:04 <andythenorth> tried something like that for random wagons
15:47:10 <petern> We do that for vehicle lists when they're grouped.
15:47:31 <petern> Could be done for purchase list but our sprites are much smaller.
15:47:46 <petern> We also don't do side-on view.
15:48:33 <andythenorth> I could composite it for sprites, and see how it looks
15:48:52 <andythenorth> that's not massively interesting as a UI
15:49:01 <andythenorth> it's just more panels than we have
15:49:36 <petern> Do you compose it there, or does it just come pre-built like articulateds?
15:51:10 <andythenorth> I think it's pre-built
15:51:36 <andythenorth> `To create the image do the following steps:
15:51:36 <andythenorth> Take up to 4 of the available variants
15:51:36 <andythenorth> Place them 30 pixels apart of each other with the right one being at the front
15:51:36 <andythenorth> Make an approximately 2 pixel wide gap between the variants to improve the contrast`
15:51:52 <andythenorth> Voxel Tycoon buy menu
15:51:58 <andythenorth> has colours instead of suffixes
15:52:10 <andythenorth> purple = advanced multiple unit capabilities
15:53:52 <petern> Each cell could be coloured...
15:55:04 <andythenorth> meh, Horse docs do that already, it's lacking a key ๐
15:55:46 <andythenorth> I didn't find anything better than what we have ๐
15:56:56 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
15:57:00 *** WormnestAndroid has joined #openttd
16:01:55 <Samu> how do i start openttd in visual studio but with "-D -g D:\OpenTTD\openttd-12.2-windows-win64\test_9720.sav" in front of it?
16:16:52 *** TROILUS9 has joined #openttd
16:17:16 <andythenorth> all dual-head diesels/electrics could have equivalent single unit
16:17:23 <andythenorth> and all single units could have a dual head option
16:17:34 <andythenorth> but something is weird about it
16:17:41 <petern> "buy two single heads and flip one"
16:18:00 <andythenorth> seems like I'd want to reset the entire tech tree to do this
16:18:43 <Rubidium> so #10331 sounds like a bug we would want to solve before a proper release, right? Would starting the company maybe also be moved to the same location as the afterload stuff for AIs (i.e. start that company after the AIs?)
16:19:29 <Rubidium> I reckon such a change warrants another RC, to get at least some chance of finding issues with that approach before millions download the game
16:20:00 <petern> Good call, I'll try moving it to the end.
16:21:07 <petern> Doesn't crash at least ๐
16:22:26 *** TROILUS has quit IRC (Remote host closed the connection)
16:22:26 *** TROILUS9 is now known as TROILUS
16:27:39 <petern> Doesn't affect scenarios with gamescript, so it's just this case of a samegame with ai but no human player.
16:30:00 *** Wormnest has joined #openttd
16:31:19 <petern> I don't know what happens if there's no room for a human company...
16:34:32 *** supermop_Home_ has joined #openttd
17:00:00 <Samu> i can test that, i presume it goes into the first company
17:06:21 <Samu> I'm getting a "Could not start the server" error message :/
17:10:24 <Samu> i could create servers earlier today, now suddenly i get this message
17:11:31 <Samu> dbg: [net] getaddrinfo for hostname ":", port 1, address family either IPv4 or IPv6 and socket type tcp failed: Este anfitriโรบo nโรบo โยฎ conhecido.
17:11:31 <Samu> dbg: [net] Could not start network: could not create listening socket
17:11:56 <petern> Have you left a server running?
17:12:14 <petern> (Not sure if we pick a specific port any more)
17:13:02 <LordAro> 'hostname ":", port 1'
17:15:42 <Samu> i remember running a command line with -D ::1 - g savegame.sav
17:15:59 <petern> That probably did it ๐
17:16:06 <Samu> what did i do to ruin it?
17:16:18 <LordAro> ::1 is not doing what you think it is
17:17:20 <LordAro> [::1] might work better
17:18:27 <Samu> i still can't start server :(
17:18:48 <Rubidium> yup, the colons of IPv6 need to be between square brackets. And then [::1] just means localhost
17:19:09 <petern> Would be nice if invalid input didn't get saved and break it?
17:20:08 <Samu> and bricked myself from hosting servers :(
17:20:22 <petern> You can just edit the config...
17:23:46 <Samu> where is it reading the ":" from in openttd.cfg
17:24:16 <LordAro> if you're running -D ::1, it's not
17:24:29 <LordAro> ::1 is being parsed as hostname ":", port 1
17:24:50 <LordAro> hence, wrap it in square brackets
17:25:03 <Samu> im not using any command line now
17:25:09 <Samu> i found the port problem
17:25:25 <supermop_Home_> in a real paralysis loop drawing this building
17:27:22 <supermop_Home_> modeled it in rhino and exported dimetric views to trace, to get the proportions of arches and roof right, and then started tracing it in 4x, then went back to render it instead, then started just drawing it in 1x, then tried to export flat shaded 1x
17:27:36 <supermop_Home_> then went back to drawing it from scratch
17:27:38 <petern> Run with -D "[::1]:3979" might help?
17:27:55 <supermop_Home_> and now i'm like, maybe I should go back to tracingit
17:28:00 <petern> Maybe -D "" clears it, dunno ๐
17:28:03 <Samu> im using the multiplayer menu from openttd, im not setting any hosts
17:28:36 <Samu> openttd > multiplayer > start server > newgame and it fails
17:29:57 <supermop_Home_> i cant even decide whether i want it to be beige white or pink
17:38:16 *** Samu has quit IRC (Quit: Leaving)
17:40:32 <glx[d]> restarting windows won't help if it's in config
17:40:47 <Samu> where in the config, i can't find anyting named :
17:42:00 <glx[d]> server_bind_addresses section in private.cfg
17:43:55 *** sla_ro|master has joined #openttd
17:49:10 <Samu> tested, if there are no room for a human company, it goes to first company
17:49:42 <Rubidium> and if there's no room for a human company, it doesn't crash in master
17:51:12 <glx[d]> the issue was just a "minor" change in order of events
17:51:31 <glx[d]> that's a typical AfterLoadGame() issue
17:51:48 <glx[d]> there's so much stuff in it
17:52:42 <Samu> i wonder how AI data is loaded now, must see if it solves many of the issues i've been reporting
17:53:11 <glx[d]> AI data is loaded in memory, pushed on AI stack on AI start
17:53:51 <Samu> theorethically nothing changes, but i still wanna check out
17:53:58 <glx[d]> and AI is not started in the middle of loading, but once loading is finished
17:55:32 <glx[d]> previously the AI was started and directly read data from savegame, but could have issues if trying to access some game state
17:57:59 <glx[d]> and #9745 was open for a full year before being finally merged (and 2 bugs found in it since the merge)
17:59:08 <Samu> "Loading failed: there was data for the script to load, but the script does not have a Load() function."
17:59:17 <Samu> so this is a recent message i've been seeing on many ais
18:06:32 <glx[d]> Samu: strange, the message is not new
18:07:53 <glx[d]> reading data (or not) from the savegame didn't change, it just put on the stack at a different moment
18:09:15 <Samu> i don't recall ever reading it before
18:10:51 <Samu> ah, it was there already
18:11:24 <glx[d]> that means the AI saves data but ignores it on load
18:11:52 <Samu> HeliFerry pops that message
18:14:31 <Samu> maybe I dont test loading heliferry much
18:15:07 <Samu> anyway, the data it failed to load was just {}
18:15:42 <glx[d]> yeah empty Save and no Load
18:15:57 <glx[d]> definitely a bug in the AI
18:19:06 *** gelignite has joined #openttd
18:19:06 *** geli has quit IRC (Read error: Connection reset by peer)
18:29:42 <Samu> i have unloaded japanese town names newgrf
18:31:23 *** Flygon has quit IRC (Remote host closed the connection)
18:32:15 <Samu> starting a new game with (undefined string) created towns in english names
18:42:31 <DorpsGek> - Update: Translations from eints (by translators)
18:43:49 <LordAro> glx[d]: feel like the UI and/or setting should be better at updating
18:51:49 <glx[d]> it's done that way so you can readd the townname newgrf
18:55:46 <Samu> i dont think my PR will solve it either, oh boy
18:55:48 <glx[d]> nothing changed in this area
19:42:25 <andythenorth> oof unscheduled nap
19:42:42 <andythenorth> wow 3 full hours
19:43:02 <petern> That means you can go to sleep at 2am again.
19:43:02 <frosch> fun fact: roman sent a mail 6 hours ago, asking whether we knew where the article was from, after he had checked all issues from 2004. when i checked 2 hours ago, i found the info on his homepage. turned out he had found the issue meanwhile and had already updated the site ๐
19:52:38 <andythenorth> Wentbourne instead?
19:55:24 <frosch> i think "yeti" is the answer
19:55:42 <frosch> animated 32bpp industries, we do not have anything more heavy
19:57:02 <frosch> also, is there a counter how often the "cpu: yes" joke is posted on reddit?
20:01:42 <Samu> okay, I'm not happy with the way InteractiveRandomRange does the random thing
20:02:12 <Samu> if i restart the game, InteractiveRandomRange comes up with different values
20:02:28 <Samu> i'd prefer it to repeat the values
20:03:36 <Brickblock1> I made a looping grf once I wonder if it might be the most demanding
20:03:55 <frosch> LordAro: there is a counter? ๐ฎ
20:05:32 <Samu> how to make it deterministic random
20:05:41 <LordAro> as much as there's a counter for people in irc(/discord) asking about reddit posts asking about cpu
20:09:50 <Samu> RandomRange works, but I suspect this one isn't multiplayer safe
20:10:40 <TallTyler> I think the real answer about intensive newgrfs is temporal8โs โreal Xโ sets โ see #10192
20:11:05 <TallTyler> JGRPP has commits to fix that but they donโt cherry-pick cleanly and I donโt understand sprite drawing code well enough to sort that out
20:12:24 <frosch> ah, yes, you can also use the old ECS sets. at some point we added "do not use this callback" to the specs ๐
20:13:26 <frosch> ah, great... that part was dropped from nml specs :/
20:18:06 <LordAro> TallTyler: not really "graphically intensive" though
20:18:47 <JGR> TallTyler: It's not the sprite drawing code that's the problem
20:19:52 <JGR> It's mostly animated tiles
20:21:45 <frosch> is it the animation-length callback?
20:21:49 <JGR> Adding/removing animated tiles is O(N) in the total number of animated tiles, so the real X sets trigger O(N^2) behaviour
20:21:50 <frosch> or just many animated tiles?
20:23:21 <JGR> Changing the first to O(log N) would make a lot of the problem go away without having to touch anything complicated at all
20:34:54 <luk3Z> There is a problem on 2 polish servers with some people who abusing the game rules. I think there should be smthg like "Players Ethical Rating" in the game (thumb up/down), so players could be albe to vote who should be auto-banned by the game.
20:39:05 <FLHerne> luk3Z: I can foresee that being abused in itself by trolls joining under multiple IPs to ban real players or so
20:39:24 <Pruple> votekick systems invariably get abused
20:39:26 <glx[d]> that's something for admin port
20:39:46 <Pruple> two people (or one person twice) can stop anyone else joining the server
20:39:49 *** gelignite has quit IRC (Quit: Stay safe!)
20:40:32 <FLHerne> in principle it can be done already by an admin-port bot reading the chat (!votekick blah or so)
20:41:21 <FLHerne> you could make it harder to abuse in various ways - minimum quorum, only players with companies over some age/size/activity, etc
20:42:11 <FLHerne> but getting those parameters correct to prevent false-positives while minimising false-negatives would take some experimentation
20:42:19 <luk3Z> FLHerne: It could be a some kind of protection for players ie. long time in game or wealth etc.
20:43:01 <nielsm> luk3Z: the point is, the game as it exists today already has mechanisms to allow server owners to set that kind of thing up
20:44:45 <nielsm> and the only surefire protection against griefing is having human moderators available to go in and resolve issues
20:45:06 <luk3Z> nielsm: I heard of activity but I have to ask some people for teh rest ๐
20:45:06 <luk3Z> I make my own server someday, so that's why I care ๐
20:45:50 <nielsm> you could even make your server so it's forced-pause during hours where there are no moderators available (that also requires using admin port)
20:46:21 <nielsm> so e.g. a poland-based server might only be available during 10-24 local time in poland or similar
20:46:52 <luk3Z> nielsm: Ok thank you for fast answers. See you later.
20:48:14 <nielsm> what might get added to the game would be more ways for players to have a constant identity instead of everyone being effectively-anonymous, so you can have more actual trust
21:16:05 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
21:21:02 <Samu> sometimes i wish i had 2 monitors
21:21:49 <Samu> debugging server + client
21:28:08 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:28:55 <Samu> It's synced now! with RandomRange
21:33:20 *** godbed is now known as debdog
21:40:16 <Samu> now both server and client do --_next_competitor_start while still maintaining the server the only one that can start AIs
21:43:11 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:46:04 <Samu> wow regression failed :)
21:46:20 <Samu> because.-. i touched Random
21:46:33 <glx[d]> if you add/remove random calls that's expected
21:52:31 <Samu> the idea of going back to InteractiveRandomRange displeases me :(
21:55:36 <petern> You want a random start but you don't want it too random?
21:57:56 *** debdog has quit IRC (Quit: Initiating getting-the-hell-out-of-here maneuver!)
21:59:24 <Samu> how did it work in the first place
21:59:47 <Samu> i could type restart in the console and it would make ais build the same way
21:59:57 <Samu> even with random start datews
22:02:58 <glx[d]> it was using AddRandomDeviation() for the AI config, including start_date, and that uses InteractiveRandomRange() so doesn't affect game Random(ร
22:04:27 <glx[d]> but handling of start_date itself was hacky
22:13:48 <andythenorth> FLHerne: blockchain, proof of work voting
22:13:58 <andythenorth> "finally a legitimate use for blockchain"
22:24:14 <andythenorth> Pruple: how's your 91 / DVT variant thing working out? ๐ Did you see the Chinook image I posted?
22:24:45 <andythenorth> can't work out why I think it's weird to have different combinations of units, seems like it would be totally logical
22:24:48 <petern> reldred: Do I need to investigate prometheus and grafana?
22:26:52 <reldred> I use influxdb instead but yes
22:27:23 <reldred> I do all my data collection/mangling with powershell, then into either mssql or influxdb, then render in grafana
22:27:27 <Pruple> andythenorth: working out fine, for double-ended trainsets. using it to just double locos with articulation seems a bit unnecessary? no difference between building a double variant and building two singles.
22:33:54 <andythenorth> the doubles can replace tender steam engines without having to manually fix the consist
22:34:16 <andythenorth> not sure that escalates to 'all singles need a double also'
22:40:11 <EmperorJake> Would be redundant with template replacement, but the current JGR implementation is quite janky
22:41:29 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:43:32 <andythenorth> although Chinook would probably still be a double, seems to be iconic ๐
22:43:59 <andythenorth> I'm kinda more interested in how it would work with NARS Horse and f-units
22:44:17 <andythenorth> do they come in different models with different numbers of units, to replace different size steam engines
22:44:29 <andythenorth> or does each model have variants with 1, 2, 3, 4 units
22:44:33 <andythenorth> and cabs / not cabs ๐
22:44:58 <andythenorth> Horse is inconsistent, in that it provides articulated diesels, but railcars have to be built one-by-one
22:46:27 <Fairy> Im gonna do length funkiness with variants too, probably. Thinking of adding both free-length and fixed-length MUs using them so you can either be like "I want this one exactly this long" or "I'll grab a four-length one in one go"
22:47:40 <andythenorth> maybe nested variants? ๐
22:47:50 <Fairy> Yes, already gonna do those
22:47:52 <andythenorth> 'singles' and 'multiples'
22:48:24 <Fairy> I'm gonna give nested in nested a try, push variants to their limit to completely eliminate livery refits from my set
22:49:22 <Fairy> I know it's possible, we'll just have to find out how it's like actually using it once I'm done
22:49:47 <Fairy> But I'll be having vehicles > variants > liveries > livery colorings as the layers
22:49:54 <andythenorth> I push lots of things to limit in Horse, then delete them ๐
22:50:38 <Fairy> Yeah, it's something that needs to be tried to see if it's any good, and given what I'm working on, I feel like my UKRS2 rework is perfectly positioned to be the set that tries a lot of things with liveries and variants
22:51:01 *** supermop_Home_ has quit IRC (Ping timeout: 480 seconds)
22:52:47 <Fairy> Also variants makes "proper" DBSOs feasible without too wonky code if you're fine with having a lot of variants. Just code them as a multiple unit with different locomotives as the variants
22:53:59 <Fairy> I'm really enthusiastic about all the possibilities that Variants provide, honestly
22:54:35 <andythenorth> they're so easy to create as well
22:55:56 <Fairy> Of course it can get tedious if you make a lot of variants but that part's gonna be automated
22:56:32 <Fairy> It's just going to boil down to manually fixing the occasional quirky thing that's really specific to like, one or two vehicles
22:57:19 <reldred> andythenorth: I think from memory it was just A and B units and sometimes they'd do ABB sometimes AA sometimes ABAB sometimes ABBA, it really seems to just be whatever the railyard had lying around at any given time
22:57:43 <andythenorth> there's probably a photo of every possible combo
22:57:54 <Fairy> "sounds like a case for random locomotive setup"
22:58:12 <reldred> and with steam they'd sometimes just lash up an extra loco to get over a mountain range and then pull it off after they got over.
22:58:27 <andythenorth> UK Horse: "buy a random type 3 engine"
22:58:51 <andythenorth> I think I'd really like the JGRPP split engine / wagon UI, but with one extra pain
22:58:51 <reldred> so the big thing with the early diesels was to be able to replicate that, adding and subtracting units as necessary to get over obstacles
22:58:58 <andythenorth> where the grf can define list of randomised purchases
22:59:09 <andythenorth> oh fuck, I probably played too much tanks with loot boxes eh
22:59:16 <andythenorth> I just realised where I got the design pattern from ๐
22:59:18 <Fairy> When are we getting the Train Whack button, where you buy and get a completely randomized consist
22:59:30 <andythenorth> when someone implements
23:00:21 <andythenorth> 'fill this train out to 5 tiles, with minimum of 4 hp / t, and wagons that carry carbon steel'
23:00:38 <andythenorth> result: 4.5 tiles of gronk, and one steel wagon
23:01:06 <Fairy> Just completely random. No choice in the matter
23:01:12 <Fairy> You buy it and you make do
23:05:48 *** Samu has quit IRC (Quit: Leaving)
23:14:45 <andythenorth> lol such GS FIRS ideas
23:33:43 <EmperorJake> andythenorth: I seem to remember an AI that built trains like this, except it was with the 2cc trainset
23:36:03 <FLHerne> happened with the DBSetXL DVT addon too
23:39:25 <Pruple> because the default trains don't have wagon speed limits, a lot of AIs overestimate how much power is appropriate for newgrf freight trains ๐
continue to next day โต