IRC logs for #openttd on OFTC at 2024-01-04
โด go to previous day
00:02:07 <truebrain> peter1138[d]: Attach gdb and find out! But it didn't hang for me ๐
00:07:59 <peter1138[d]> I did but it was waiting on a mutex ๐
00:08:37 <peter1138[d]> Hmm, there's a bug in the framerate window for scripts -- when the game is pause they stay stuck on the last value instead of going to 0.
00:12:01 <peter1138[d]> Maybe that's by design.
00:12:25 <peter1138[d]> But other lines disappear when the game is pause.
00:14:39 <truebrain> peter1138[d]: What mutex? ๐
00:22:56 <peter1138[d]> _http_thread.join()
00:24:21 <peter1138[d]> Threads so confusing, especially with mutexes. Never know what is waiting on what ๐
00:26:10 <peter1138[d]> this->queue_cv.wait(lock)
00:30:11 <peter1138[d]> Hmm, possible related to transmit network survey, but I dunno.
00:32:16 <_jgr_> WaitTillEmpty should check _http_thread_exit as well, and setting that should signal the CV
00:35:55 <_jgr_> As otherwise the thread exit signal is only checked at the start of the loop in the thread, so queuing more stuff in the thread races with the main thread not doing any more dequeing before setting the exit signal
00:36:10 *** Wormnest has joined #openttd
01:28:47 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
01:56:57 *** Wormnest has joined #openttd
02:26:08 <emperorjake> I did a thing, and it's working! ๐
02:27:56 <reldred> Dem some fucky sprite extents though, sprite sorter is having some trouble.
02:28:12 <reldred> But nice work! Saves me having to write it ๐
02:30:15 <emperorjake> talltyler: what do you think of this?
02:36:30 <talltyler> Is the usecase subway trains or long freight trains? (Through load)
02:37:13 <emperorjake> Yep, can be either of those
02:37:25 <emperorjake> or loading long trains in curved track if space is tight
02:44:30 <talltyler> We could upstream actual through loading for that ๐
02:54:50 <emperorjake> Through load is limited to freight trains though, this is ostensibly more flexible
02:55:13 <wensimehrp> when would the next nightly build be released? The last one was like two weeks ago
02:55:38 <wensimehrp> I need to check the translations
03:06:51 <emperorjake> I wanna be sure if the way I coded it is ok first. I tried another way without the `else if` but it crashed ๐
03:49:32 *** Wormnest has quit IRC (Quit: Leaving)
03:57:39 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:05:42 *** D-HUND is now known as debdog
04:41:26 *** Flygon has quit IRC (Read error: Connection reset by peer)
05:36:34 <merni> wensimehrp: Afaik they are supposed to be released every day if there have been any changes... so truebrain nightlies broken again? :p
06:21:05 <emperorjake> wensimehrp: I'm getting the latest nightly on Steam (20240102)
07:31:35 *** tokai|noir has joined #openttd
07:31:35 *** ChanServ sets mode: +v tokai|noir
07:34:44 <Azusa> What do you mean by cheats not being accessible in multiplayer? You can just use `settingsaccess` to access cheata, just like you would for enabling magic bulldozer in a multiplayer game and also for changing settings normally
07:38:25 *** tokai has quit IRC (Ping timeout: 480 seconds)
08:05:20 <_jgr_> Azusa: That is only in my branch
08:09:42 <truebrain> Nice work _jgr_ ! Mutexes remain complex ..... and this became too complex for my taste, but I think we almost got all issues now ๐
08:14:46 <truebrain> merni: Publishing the website fails. All packages are pinned, but somehow Ruby manages to fail on dependencies .. awesome ๐
08:32:12 *** tokai|noir has quit IRC (Quit: c('~' )o)
08:36:02 <truebrain> LordAro: I hope you don't expect me to give an answer to that question? ๐
08:38:07 <truebrain> but knowing Ruby, they did something incredibly dumb and old code doesn't work with a newer version of Ruby, despite the major still being the same
08:41:55 <LordAro> i think i did see some incompatible things in there
08:42:07 <truebrain> it is so stupid of them ... we have semver for a reason
08:42:13 <truebrain> but no, increasing that first number is SCARY
08:42:23 <truebrain> so we just fuck around with people, as that is more enjoyable ๐
08:43:31 <LordAro> you can blame python for that :p
08:43:45 <truebrain> Python is always backwards compatible in the major series
08:43:49 <truebrain> so they are doing semver just fine
08:44:10 <truebrain> heck, I can still use the old `yield` method to make coroutines if I like ๐
08:44:25 <LordAro> well that's demonstratably false
08:44:41 <LordAro> there's been plenty of things deprecated and removed within the 3.x versions
08:44:57 <truebrain> okay, that is fair, they use a N-version deprecation
08:45:05 <truebrain> even that is FAR better than what Ruby does ๐
08:46:02 <truebrain> I just gave up on Ruby ... this happened so many times already
08:46:28 <LordAro> should've used a container with a specific ruby version :p
08:47:00 <truebrain> and while I am in a bad mood already, let's upgrade all our software to the latest (the dependencies, that is)
08:47:50 <locosage> Azusa: this just shows that JGR had to write a bunch of new code simply to allow settings that were put in cheats to match the usability of normal settings
08:48:37 <truebrain> talking about versions, I should upgrade our software from Python 3.7 to something newer
08:48:42 <truebrain> 3.12? Or do I wait for 3.13?
08:50:31 <truebrain> and hopefully we are right back on IRC ๐
08:52:42 <LordAro> haven't gone anywhere
08:52:42 *** frosch123 has quit IRC (Read error: Connection reset by peer)
08:52:42 *** osswix has quit IRC (Read error: Connection reset by peer)
08:52:42 *** Azusa has quit IRC (Read error: Connection reset by peer)
08:52:42 *** ahyangyi has quit IRC (Read error: Connection reset by peer)
08:52:42 *** nightingale33 has quit IRC (Read error: Connection reset by peer)
08:52:42 *** androxarev has quit IRC (Read error: Connection reset by peer)
08:52:42 *** kuhnovic has quit IRC (Read error: Connection reset by peer)
08:52:42 *** rau117 has quit IRC (Read error: Connection reset by peer)
08:52:42 *** greenmotivations has quit IRC (Read error: Connection reset by peer)
08:52:42 *** nanapipirara has quit IRC (Read error: Connection reset by peer)
08:52:42 *** schnitzelpfanne has quit IRC (Read error: Connection reset by peer)
08:52:42 *** toast_not_found has quit IRC (Read error: Connection reset by peer)
08:52:42 *** SZ7M3K has quit IRC (Read error: Connection reset by peer)
08:52:42 *** reldred has quit IRC (Read error: Connection reset by peer)
08:52:42 *** sinas128 has quit IRC (Read error: Connection reset by peer)
08:52:42 *** alfagamma7 has quit IRC (Read error: Connection reset by peer)
08:52:42 *** lamarr has quit IRC (Read error: Connection reset by peer)
08:52:42 *** admeliora has quit IRC (Read error: Connection reset by peer)
08:52:42 *** wpiwpi has quit IRC (Read error: Connection reset by peer)
08:52:42 *** emperorjake has quit IRC (Read error: Connection reset by peer)
08:52:42 *** bigyihsuan has quit IRC (Read error: Connection reset by peer)
08:52:42 *** jfs has quit IRC (Read error: Connection reset by peer)
08:52:42 *** goddess_ishtar has quit IRC (Read error: Connection reset by peer)
08:52:42 *** belajalilija has quit IRC (Read error: Connection reset by peer)
08:52:42 *** wensimehrp has quit IRC (Read error: Connection reset by peer)
08:52:42 *** pandonaut has quit IRC (Read error: Connection reset by peer)
08:52:42 *** j0anjosep has quit IRC (Read error: Connection reset by peer)
08:52:42 *** kale91 has quit IRC (Read error: Connection reset by peer)
08:52:42 *** michi_cc[d] has quit IRC (Read error: Connection reset by peer)
08:52:42 *** locosage has quit IRC (Read error: Connection reset by peer)
08:52:42 *** johnfranklin has quit IRC (Read error: Connection reset by peer)
08:52:42 *** merni has quit IRC (Read error: Connection reset by peer)
08:52:42 *** truebrain has quit IRC (Read error: Connection reset by peer)
08:52:42 *** talltyler has quit IRC (Read error: Connection reset by peer)
08:52:42 *** _glx_ has quit IRC (Read error: Connection reset by peer)
08:52:42 *** peter1138[d] has quit IRC (Read error: Connection reset by peer)
08:52:42 *** _jgr_ has quit IRC (Read error: Connection reset by peer)
08:52:42 *** xarick has quit IRC (Read error: Connection reset by peer)
08:52:42 *** andythenorth has quit IRC (Read error: Connection reset by peer)
08:52:42 *** _zephyris has quit IRC (Read error: Connection reset by peer)
08:52:42 *** brickblock19280 has quit IRC (Write error: connection closed)
08:52:42 *** georgevb has quit IRC (Write error: connection closed)
08:52:42 *** DorpsGek_vi has quit IRC (Write error: connection closed)
08:52:50 <LordAro> oh wait, there you go
08:52:52 *** DorpsGek_vi has joined #openttd
08:53:23 <LordAro> literally the same second i say "you haven't gone anywhere"
08:53:28 *** truebrain has joined #openttd
08:53:45 <truebrain> happy to see it also worked ๐
08:53:48 <truebrain> there was little guarantee ๐
08:54:26 <truebrain> the BaNaNaS frontend I can at least test before I deploy .. flask update, so I was a bit scared
08:54:29 <truebrain> but it seems to work fine
08:55:48 <truebrain> also time for DorpsGek to go away for a bit
08:56:13 <truebrain> anyway, LordAro, you any suggestions on the Python version to upgrade to?
08:58:21 *** DorpsGek has joined #openttd
08:58:21 *** ChanServ sets mode: +o DorpsGek
09:03:27 <truebrain> these monthly grouped dependabot updates are so much easier to deal with
09:05:06 <LordAro> truebrain: i think you know the answer to that one :p
09:05:26 <LordAro> i'll get to it /eventually/
09:05:43 <truebrain> sorry, on IRC I asked you another question, so that was confusing ๐
09:06:48 <LordAro> i don't think there's any particular need to wait for 3.13
09:07:00 <truebrain> I was thinking maybe the JIT stuff they plan?
09:07:09 <LordAro> i don't think that'll be turned on by default
09:07:28 <LordAro> there's various GIL things too, but doesn't (shouldn't?) affect us
09:07:43 <LordAro> (i daresay my python layer at work will be hellish to update... again)
09:07:47 <truebrain> not directly; it does give opportunities, but that is all
09:08:46 <truebrain> I do not understand `npm update` at all ๐ฆ
09:09:56 <truebrain> I doubt they would do it differently ๐
09:12:33 <Azusa> I guess you would need to change it in single player first then load the save in multiplayer? Does that still work?
09:14:01 <truebrain> time to redeploy our multiplayer services .. causes some minor downtime ofc
09:15:46 <truebrain> _jgr_: in other news, JGRPP seems to trigger enough survey-results that I can finally do some datamining ๐
09:15:53 *** peter1138[d] has joined #openttd
09:16:10 *** keikoz has quit IRC (Ping timeout: 480 seconds)
09:16:20 <peter1138[d]> Sorry. Somehow mouse moved as I was clicking on Comment...
09:16:34 <peter1138[d]> And it doesn't ask for confirmation ๐ฆ
09:16:40 <peter1138[d]> It basically was, yes :/
09:17:49 <truebrain> lol, cheat vs config debate; you got to love it ๐
09:18:20 <truebrain> money, company, date .. I get those are cheats. The rest is all up for debate ๐
09:18:54 <Azusa> These are small things that I take for granted, :D
09:19:25 <truebrain> this is not the place for such conversation *trololololol*
09:20:03 <peter1138[d]> We don't have conversations, we just impose our will.
09:20:29 *** locosage has joined #openttd
09:20:29 <locosage> imo, all non-active cheats should just be moved to settings
09:20:29 <Azusa> So what did you have for your dinner last night?
09:20:33 <truebrain> I was making a suggestion of a completely non-OpenTTD related subject ๐
09:20:55 <truebrain> one could say, NSFW ๐
09:21:37 <locosage> the most cheaty thing in the game is not only not in cheats, it has a dedicated menu button for the ease of access xD
09:21:43 <truebrain> meh, the longer I work with GitHub, the less I like forks .. so much workflow things are so much easier without a fork ..
09:21:49 <peter1138[d]> Hmm, can I not use a lambda function in place of a traditional function pointer style... or do I just have the signature wrong...
09:22:16 <peter1138[d]> Build while paused, yup. Let's move it to cheats ๐
09:22:23 <truebrain> peter1138[d]: I happen to have done that recently with the social plugins .. it "just worked"
09:22:33 <peter1138[d]> Okay, so the signature is wrong.
09:22:55 <truebrain> CoPilot wrote it for me
09:24:00 <peter1138[d]> `Vehicle *VehicleFromPosProc(Vehicle *v, void *data);` -> `[&v](Vehicle *target, void *data) -> Vehicle * { dostuff(); return nullptr; }`
09:24:21 <truebrain> oeh, with a capture
09:24:51 <peter1138[d]> I could use the data pointer for that I guess.
09:25:13 <truebrain> a lambda with a capture is some darn black magic to me, how the compiler actually deals with that ๐
09:25:28 <truebrain> no clue if that is the reason your statement fails ๐
09:26:01 <locosage> peter1138[d]: won't help, pause hotkey is just as powerful as build on pause
09:26:14 <peter1138[d]> Suspending your computer is cheating too ๐
09:26:24 <truebrain> LordAro: I am kinda forced to upgrade to 3.10+ now, as botocore doesn't want urllib > 2 before that ๐
09:26:24 <_jgr_> truebrain: It's basically a struct with an operator() method, so it can't be cast to a function pointer
09:26:27 <peter1138[d]> And that doesn't get recorded. We need to hook into suspend/resume.
09:26:36 <xarick> How do I use TICC TOCC around returns?
09:26:40 <truebrain> _jgr_: ah! Tnx ๐ That really helps for the concept ๐
09:26:52 <peter1138[d]> xarick: Carefully.
09:26:52 <locosage> peter1138[d]: well, at least that's external factor
09:27:11 <truebrain> F1 key is also external
09:27:45 <_jgr_> I generally do more of my construction while paused than with the game running
09:29:33 <peter1138[d]> xarick: /me ponders lambda vs fp performance. Maybe I should TICC/TOCC it ๐
09:29:42 <peter1138[d]> That was not meant to be a reply. Oops.
09:30:05 <truebrain> I reasoned: if the compiler can make a fp out of my lambda, it must be identical in performance ๐
09:30:15 <truebrain> as I could only see that happening when it made the lambda an actual function
09:30:24 <truebrain> but .. never actually measured it ๐ It just made sense in my head ๐
09:31:07 <truebrain> that moment you have so many updates in a single dependabot PR, it gets cut off ... lovely ๐
09:31:09 <peter1138[d]> I wonder about with data pointer vs capture.
09:31:20 <truebrain> just half-way through it stops telling me what the changelog is of the udpate ๐
09:31:27 <peter1138[d]> void *data works but is a bit nasty in C++ ๐
09:35:13 *** andythenorth has joined #openttd
09:35:13 <andythenorth> Horse compile is about 30 seconds
09:35:17 <andythenorth> should I buy an M3 mac?
09:35:49 <truebrain> E_CORRELATION_NOT_FOUND
09:37:14 <andythenorth> 21 second compile?
09:37:28 <andythenorth> that's quite an assumption about real world performance ๐
09:44:36 <peter1138[d]> Hmm, now the game hung at 99% of scanning newgrfs... ๐ฎ
09:45:20 <peter1138[d]> Yay, infinite loop ๐
09:46:38 <truebrain> Impressive peter1138[d] .. finding actual bugs, every day of the week ๐
09:46:49 <andythenorth> "FIRS showed an error, then my font corrupted" actual error not on reddit
09:46:58 <peter1138[d]> It would be more impressive if it wasn't the code I'd just changed...
09:48:34 <truebrain> owh, I also should add a dependabot to upgrade all workflows automatically ... ugh ... maintenance work .. so boring ..
09:52:33 <peter1138[d]> locosage: Might be PRable?
09:53:04 <peter1138[d]> The "marked" thing is dumb... nobody is looking!
09:53:29 <truebrain> we went from "game" to "sandbox" somewhere along the way ๐
09:55:44 <rau117> Speaking of cheats. Maybe return โlarge aircraft don't crash on small runwayโ to the settings?
09:55:56 <andythenorth> tunnel crossing, jetplanes, production values, station ratings: all settings
09:56:09 <andythenorth> map height: WTF? It doesn't even do anything?
09:56:19 <truebrain> the station ratings one could argue is in fact a cheat ๐
09:56:29 <truebrain> as you are cheating a value in there ๐
09:56:39 *** reldred has joined #openttd
09:56:39 <reldred> I'd love for instance a mode for the cash bottom right corner to just show current operating profit, both for your situations where you're just sandboxing it, and also when money Ceases To Be A Problem
09:56:47 <truebrain> a setting would be: enable/disable station rating ๐
09:56:47 <andythenorth> magic bulldozer should just be ctrl-click ๐
09:57:01 <rau117> ctrl+click is diagonal selection
09:57:11 <peter1138[d]> Ctrl-alt-delete-shift-click
09:57:17 *** emperorjake has joined #openttd
09:57:17 <emperorjake> Magic bulldozer could be a setting, I have it on all the time
09:57:19 <peter1138[d]> (Estimate the cost of rebooting)
09:57:20 <truebrain> peter1138[d]: with your left pinky
09:57:46 <rau117> emperorjake: It will be extremely dangerous for multiplayer.
09:58:12 <emperorjake> I only play with trustworthy people ๐
09:58:21 <truebrain> so I am not invited ๐ฆ
09:58:31 <andythenorth> I don't get the argument 'could be dangerous for multiplayer'
09:58:40 <rau117> rau117: And in a single-player game, itโs much better to have it in a quick-disable form so as not to destroy something important. The cheat window is very good for this, much more convenient than going into the settings, looking for something and disabling it.
09:58:46 <reldred> stop playing random lobbies with dickheads lmao
09:58:58 <peter1138[d]> Okay, let's forget I said anything.
09:59:13 <truebrain> peter1138[d]: I am trying!!! ๐
09:59:15 <emperorjake> rau117: Port over JGRPP's "you are about to destroy something important" message then
09:59:48 <truebrain> andythenorth: that is a good question: what is it doing there? ๐
09:59:54 <truebrain> if you find out you wanted to build higher?
10:00:18 <rau117> emperorjake: yes... but the importance of the object being removed is determined by the game code, not your preferences.
10:00:21 <reldred> truebrain: Didn't you set it to ignore that on the new mapgen anyway? I thought we discussed this before.
10:00:39 <truebrain> like I know what I ate yesterday
10:01:15 <truebrain> I do remember the terrain generator wants to know a max height
10:01:19 <truebrain> just no clue how that would relate to that cheat ๐
10:01:24 <rau117> reldred: This is not a solution to the problem. Private servers too.
10:02:00 <locosage> rau117: it depends on the server. citymania has magic bulldozen for example
10:02:13 <emperorjake> As do the JGR servers here
10:02:15 <andythenorth> it's just weird, the idea that a setting is dangerous
10:02:18 <locosage> it just has other ways to deal with issues that it brings
10:02:36 <andythenorth> electricity in my house is 'dangerous', just don't let it out of the wires
10:02:43 <reldred> andythenorth: Settings don't kill people. Guns do.
10:02:50 <truebrain> why is there a restriction in how high you can build ... does anyone actually care?
10:02:51 <locosage> peter1138[d]: yeah, I was thinking of doing that
10:03:07 <locosage> locosage: unless you want to beat me to it ;)
10:03:08 <reldred> truebrain: I know there was griefing concerns
10:03:14 <locosage> I'm not exactly hurrying here xD
10:03:19 <reldred> but again, don't play with shitters, yadda yadda
10:03:26 <peter1138[d]> Nice, I found a way to make Wentbourne run fast.
10:03:35 <truebrain> peter1138[d]: define "fast" ? ๐
10:03:37 <peter1138[d]> Pause all road vehicles ๐
10:03:52 <rau117> andythenorth: Yes... the same can be said about block signals. They are not dangerous, you just need to know how to use them.
10:03:52 <rau117> *But they were still hidden from newcomers.*
10:04:10 <reldred> oh nobody cares about block signals god damn
10:04:18 <locosage> put signals in cheats! xD
10:04:20 <truebrain> wow dude .... digging some old graves?
10:04:22 <reldred> it's not 2004 anymore
10:04:24 <truebrain> that kinda ends the conversation I guess
10:04:45 <rau117> reldred: Well, why write this if โyou donโt care about thisโ?
10:05:02 <emperorjake> It always comes back to the block signals, I didn't even bring them up this time ๐
10:05:17 <andythenorth> can there be kban?
10:05:28 <truebrain> haha, auto-ban ๐
10:05:35 <peter1138[d]> 15ms gameloop with everything stopped, lols.
10:05:55 <peter1138[d]> I'd need an M3 Mac for that.
10:06:08 <andythenorth> is it 30% faster?
10:06:59 <rau117> rau117: Just as an example. If something is considered โdifficult, dangerous or uselessโ it shouldnโt be hidden just because. There will definitely be those who will like it.
10:07:33 <andythenorth> what's the age limit on discord anyway?
10:07:39 <truebrain> I am still puzzled by this max-height thingy ๐
10:07:40 <peter1138[d]> truebrain: buy one with OpenTTD funds.
10:07:52 <truebrain> peter1138[d]: pretty sure I am already draining the funds in other ways ๐
10:07:57 <peter1138[d]> What is the max-height thing?
10:08:10 <truebrain> andythenorth: screenshot for visibility
10:08:28 <truebrain> like, would anyone actually notice if we just remove max-height? ๐
10:08:31 <peter1138[d]> Why is it a cheat...
10:08:39 <peter1138[d]> Max-height should just affect terrain generaetion.
10:08:47 <andythenorth> dare I suggest....what does commit history say? ๐
10:08:57 <andythenorth> is there a 28 page forum thread about it?
10:09:09 <andythenorth> is it buried in the tangled history of TGP somewhere?
10:09:10 <truebrain> peter1138[d]: I assumed it would already; but it doesn't. It also restricts how high you can build ๐
10:09:12 <xarick> `static bool DisasterTick_Ufo(DisasterVehicle *v)
10:09:12 <xarick> bool ret = DisasterTick_Ufo_Real(v);
10:09:12 <xarick> TOCC("DisasterTick_Ufo", 1);
10:09:14 <xarick> Is this going to be a valid measurement?
10:09:15 <rau117> rau117: *It's one thing for signals to only pose a "danger" to the user. *
10:09:15 <rau117> Magical dynamite can harm anyone on the server. Especially if there is no password on the server.
10:09:19 <andythenorth> oh it's probably in that 100 page MHL thread?
10:09:30 <andythenorth> how do I add Rau to ignore in discord?
10:09:44 <xarick> oh, return ret missing, but u get the idea
10:09:59 <reldred> andythenorth: right click the profile pic:
10:10:01 <truebrain> about the station rating .. I am guessing the intended behaviour of the "100%" is to just have no station rating, right?
10:10:17 <peter1138[d]> andythenorth: don't do you. You just get endless "message from blocked user"
10:10:30 <xarick> oh snap, return ret actually doesn't work
10:10:35 <truebrain> peter1138[d]: really?!
10:10:42 <truebrain> well, that is one poor way to implement that ๐
10:10:44 <andythenorth> truebrain: oh yes I see
10:10:57 <andythenorth> ok, how do we kick?
10:10:58 <truebrain> telling you there is something there, but not telling you what ๐
10:11:31 <truebrain> right ... deploying the wiki .. and that ends the round of: upgrade all software to latest dependencies for this month/quarter
10:11:48 <locosage> tbf silently removing messages isn't a perfect solution either as you still see what other people reply to them
10:12:13 <peter1138[d]> That's easy, just ignore everyone who replies. Soon it will be peaceful.
10:12:15 <andythenorth> yeah, I think kban is the proven solution?
10:12:42 <reldred> andythenorth: I'm a fan of another approach: cyberbullying
10:12:46 <truebrain> owh ... I redeployed the wiki .. that invalidates all images ... the cache will be busy again ๐
10:12:56 <locosage> peter1138[d]: or you can just ignore whatever the person you don't want to listen to says
10:13:00 <andythenorth> reldred: don't think I can subscribe to that newsletter ๐
10:13:02 <truebrain> I should fix that it doesn't invalidate all images ... #effort
10:13:20 <reldred> andythenorth: yeah people keep telling me I'm not allowed to do that anymore ๐ข
10:13:41 <andythenorth> it's punching down
10:13:54 <reldred> gone are the days of me being a straight up belligerent to people on #tycoon
10:14:22 <locosage> I don't use blocking in chats where I care about conversation at all
10:14:36 <truebrain> I used to have another method for that ... just kick people from IRC when they are being a dick. But I was not allowed to do that anymore either ๐
10:14:45 <locosage> if the whole chat is just a wall of nonsense, sure, blocking some of it doesn't matter xD
10:14:47 <truebrain> my "you are a dick" did n ot always align with others ๐
10:15:19 <reldred> Just delegate all decision making to me, I am the Haver of Correct Opinions afterall
10:15:26 <peter1138[d]> Nothing got better by moving to Discord.
10:15:41 <peter1138[d]> (Except replies, reactions, images, links...)
10:15:58 <truebrain> okay .... so Nomad did a change to their software, and now our nodes have 0 MHz available
10:16:02 <truebrain> they said they fixed it
10:16:09 <rau117> reldred: And you started a mess off topic because of the slightest mention of block signals. It's just that you have an unhealthy hatred for them. Simply ignoring it would do more good.
10:16:15 <reldred> Discord for me is just convenient because it's where every other community I deal with is. Yes I know that's also a shocking indictment of the current state of the internet...
10:16:20 <peter1138[d]> Cool, I borrowed a Xarick changed and went from 3403ยตs to 1ยตs.
10:16:39 <truebrain> for an action once a day? ๐
10:16:51 <truebrain> stats without context is like ... well, Xarick, yes ๐
10:16:58 <reldred> There we go, you gotta be nice to him now ๐
10:17:02 <peter1138[d]> It's very Xarick.
10:17:45 <truebrain> I kinda disagree with the 0% utilization .. I argue it is at 100%!
10:18:01 <peter1138[d]> What the shit is that?
10:18:09 <truebrain> our Nomad cluster, their latest version
10:18:15 <truebrain> reporting our nodes have 0 MHz available
10:18:40 <reldred> God I hate that, % free instead of % used
10:18:50 <peter1138[d]> I see. Nothing is available. I think you crashed the universe with that division by zero.
10:18:52 <reldred> A tonne of vsphere's metrics it exports are all % free
10:19:15 <truebrain> the worst part is .. they used to have the ability to just overwrite that value ... but that has been dropped, it seems, or something
10:19:22 <truebrain> how am I going to restore from this .. let's find out ..
10:20:00 <peter1138[d]> Now the benefits are rolling in. I spawned a small ufo every day, and now it's saving 4ms every 2 seconds!
10:21:15 <emperorjake> rau117: Why are you making a deal out of this? The server admin would still be able to disable magic bulldozer. Nothing would change except where the button is
10:21:16 <reldred> alright, settle down, I think you've both girbossed this enough
10:22:20 <truebrain> oops, lost all my credentials for infra deployments ... I now need to find back 5 tokens .. "fun" ๐
10:22:43 <peter1138[d]> "Disasters: off" is surely a default ๐
10:23:19 <locosage> it's just a meme, any similarity with reality is pure coincidence ;p
10:25:44 <peter1138[d]> Can I use Xarick's group vehicle cache to update the group vehicle cache?
10:26:13 <reldred> With a plucky attitude you can do anything peter1138, I believe in you.
10:26:55 <_jgr_> The only disaster related optimisations which make a useful difference are the ones where you cache the fact that there are 0 of them in the game
10:27:11 <_jgr_> So you needn't bother checking for them
10:27:18 <locosage> peter1138[d]: may need one more vehicle cache in between for extra safety :p
10:27:32 <peter1138[d]> I think you mean extra performance.
10:28:42 <reldred> I always thought the Lemat was going to be a meme gun in grand theft horse because OMG IT WAS IN WESTWORLD but nine rounds of ball and a shot of buckshot is really really handy to have in the same revolver
10:29:11 <rau117> emperorjake: This is about griefing and beginners. I'm almost sure that newbies are not able to use admin rights properly. Creating a server is much easier than managing it. An unlucky griefer can simply destroy everything on the server.
10:29:11 <rau117> *Another question is whether beginners will be able to get to the settings to turn on the magical bulldozer. *
10:30:32 <peter1138[d]> You're arguing that it's dangerous because beginners will leave the setting on... and then that they won't be able to find it to turn it on?
10:30:33 <merni> reldred: Would it make sense to have a cheat/setting that allows you to spend money (buy, build etc) even when your money is negative?
10:31:03 <andythenorth> isn't the goal with caches to add enough of them
10:31:15 <andythenorth> so that updating the caches eliminates all the time saved by caching?
10:31:17 <merni> That way you can "ignore money" without having to cheat it once in a while but still see if you are really making a profit
10:31:23 <reldred> merni: neither is exclusive of each other
10:31:49 <peter1138[d]> Sanbox mode (where money doesn't matter) should be a setting, not a cheat.
10:32:09 <peter1138[d]> (Giving yourself money in non-sandbox mode is still a cheat though)
10:32:14 <merni> Sure, I'm not getting into the argument on that :p
10:32:40 <reldred> Yeah I would still like to easily see operating profit even in sandbox mode though. Cities Skylines does that.
10:32:50 <rau117> peter1138[d]: I just always prefer the most negative option. If the player somehow got to the magical bultozer setting...
10:32:51 <peter1138[d]> Anyway, it's 10:30. I am meant to be working since 9, oops.
10:32:58 <peter1138[d]> Guess I am working late tonight.
10:33:13 <truebrain> peter1138[d]: oops .. good luck ๐
10:34:29 <rau117> rau117: And so, probably the best solution would be to require a password for the server if the magical bulldozer setting is enabled.
10:34:29 <rau117> (and letโs say somewhere in openttd.cfg hide the ability to enable magical bulldozer without a server password)
10:35:00 <xarick> I cant TICC TOCC disaster vehicle
10:35:16 <truebrain> I hate API keys that don't show "last used" on their website .. so hard to see which key I was using and which I was not ๐
10:35:45 <locosage> peter1138[d]: I was thinking of sandbox mode when increasing the max loan but apparently it doesn't quite work like that because of the interest
10:35:45 <merni> rau117: This is such a non-sequitur... if some multiplayer admin wants to make a server with settings that will make griefing easy, that's on them
10:36:31 <locosage> but if paired with 0 interest rate setting it can
10:36:35 <andythenorth> peter1138[d]: I am talking to GPT, for work
10:36:52 <andythenorth> this is dull in discord eh
10:36:58 <andythenorth> do I also block everyone who replies?
10:37:20 *** alfagamma7 has joined #openttd
10:37:23 <peter1138[d]> xarick: bool result; TICC(); result = whatever; TOCC(); return result;
10:37:24 <rau117> merni: Well, yes. And they will be able to go to openttd.cfg and enable this setting.
10:37:24 <rau117> And simple, โnot very knowledgeableโ players will be forced to set a password on their server โjust for friendsโ in order to be able to use the magical bulldozer.
10:38:12 <merni> Players who want a server just for friends should have a pw anyway... there are any number of methods of griefing other than magic bulldozer
10:38:21 <_jgr_> If a server is "just for friends" you absolutely should password it anyway
10:38:40 <truebrain> _jgr_: better: set it to "Invite only"!
10:38:59 <merni> And it seems they do as there are very few public servers that are intended as "just for friends"... if you look at the public server list almost all of them are intentionally open ones
10:39:15 <locosage> how many "invite only" servers are there btw?
10:39:51 <rau117> merni: But you can only cancel the effect of the magic bulldozer by reloading the save. Removing a griefer company is much easier than returning a developed 1.2k coal mine.
10:40:11 <locosage> locosage: I have some doubts it's used widely but no way to check
10:40:11 <xarick> peter1138[d]: ah, thanks, so that's how it's done!
10:40:14 <andythenorth> let's continue the long tradition of OpenTTD community gatekeeping any fucking change "because multiplayer" ๐
10:40:23 <andythenorth> it's a fine tradition, and does not harm the project at all eh
10:40:46 <truebrain> passive agressive comments neither, right? ๐
10:41:13 <locosage> andythenorth: don't confuse "because mp" with "because Rau" :p
10:42:17 <reldred> truebrain: I say we become actively agressive
10:43:05 <andythenorth> I'm English, this is naked aggression in GB English
10:43:13 <peter1138[d]> (I'm waiting for $work CI to do stuff)
10:43:18 <truebrain> okay ... I think I have finally managed myself to give access to infra deployments again .. pff .. rightfully not easy to setup, but pfffff
10:43:31 <reldred> oh no who gave him prod
10:43:33 <andythenorth> if I was being passive aggressive I'd have said "quite nice"
10:44:50 <rau117> andythenorth: I'm not completely against a magical bulldoser as setting. I'd just like to make it a little safer.
10:44:50 <rau117> In any case, you can just load a save with the cheat enabled, it will work in multiplayerโฆ if I remember it correctly
10:44:50 <rau117> *oh, you wonโt see this anyway*
10:45:06 <xarick> hmm, another problem, how do I get around the returns for TICC TOCC Depot::~Depot()?
10:45:31 <locosage> rau117: you can see in citymania client, it opens cheat window in mp for that exact reason
10:45:31 <truebrain> `error: Preview failed: Exception calling application: [Errno 2] No such file or directory: 'nomad'` ... oh-oh .. what did they change that broke my shit ๐ฆ
10:46:48 <emperorjake> rau117: JGRPP already has ways to turn on cheats in multiplayer. It's completely safe because it's behind the settings_access password
10:46:49 <andythenorth> trying to teach GPT about sarcasm
10:48:53 <andythenorth> GPT understands sarcasm conceptually, but not in practice
10:49:13 <andythenorth> nor does it understand when I'm answering it sarcastically
10:49:39 <xarick> ret = this->Depot_Real(); doesn't work
10:51:02 <_jgr_> It seems a bit odd to me to answer sarcastically to a machine that not even other machines would consider sentient in any way
10:51:35 <peter1138[d]> andythenorth: You can stop at 'nor does it understand'
10:51:54 <andythenorth> it's really quite good at some tasks recently, although GPT 4 is molasses slow
10:51:57 <xarick> oh, I got it! This works
10:51:58 <xarick> TOCC("Depot::~Depot", 1);
10:51:59 <andythenorth> maybe it needs optimised ๐
10:52:38 <peter1138[d]> It needs cache ๐
10:52:41 <andythenorth> _jgr_: I'm treating it as a linguistic game, not an intelligence. It should be able to find a vector space that corresponds with sarcasm
10:52:51 <andythenorth> maybe the training data lacks the nuances for that
10:53:16 <peter1138[d]> "Temporal8's Real Industries 32bpp Beta" causing problems in JGRPP, surely not...!
10:53:58 <peter1138[d]> Will a Mac M3 speed up my CI?
10:54:13 <peter1138[d]> I think it's running on an i5, heh.
10:59:13 <andythenorth> it won't if you're building a windows app ๐
11:00:08 <andythenorth> how much is a Mac now?
11:00:23 <truebrain> hmm .. why do I get `SSLV3_ALERT_BAD_RECORD_MAC` from this proxy .. lol?
11:00:35 <peter1138[d]> Are you MitMing yourself?
11:01:03 <truebrain> I retried, and it worked .. what-ever
11:05:34 <truebrain> time to see if I managed to fix the MHz issue ....
11:07:19 <truebrain> isn't that just better?
11:10:48 <truebrain> and now something else is not working anymore within Nomad .. lol?
11:13:44 <truebrain> owh, a known bug they fixed yesterday
11:13:49 <truebrain> that exists for at least a few weeks already
11:15:04 <truebrain> it seems that if I upgrade the whole cluster, it should be fine .. but do I dare?
11:21:29 <truebrain> there is no actual state on the cluster
11:25:36 <truebrain> okay .. having 1 server-node of the newer version seemed to be enough ... and everything "seems" to work
11:25:41 <truebrain> time to roll over the rest, I guess
11:28:22 <truebrain> well, here goes nothing ๐
11:29:54 *** DorpsGek has joined #openttd
11:29:54 *** ChanServ sets mode: +o DorpsGek
11:30:42 *** emperorjake has quit IRC (Remote host closed the connection)
11:30:42 *** alfagamma7 has quit IRC (Remote host closed the connection)
11:30:42 *** andythenorth has quit IRC (Remote host closed the connection)
11:30:42 *** xarick has quit IRC (Remote host closed the connection)
11:30:42 *** reldred has quit IRC (Remote host closed the connection)
11:30:42 *** rau117 has quit IRC (Remote host closed the connection)
11:30:42 *** locosage has quit IRC (Remote host closed the connection)
11:30:42 *** merni has quit IRC (Remote host closed the connection)
11:30:42 *** truebrain has quit IRC (Remote host closed the connection)
11:30:42 *** peter1138[d] has quit IRC (Remote host closed the connection)
11:30:42 *** _jgr_ has quit IRC (Remote host closed the connection)
11:30:42 *** Azusa has quit IRC (Remote host closed the connection)
11:30:42 *** DorpsGek_vi has quit IRC (Remote host closed the connection)
11:30:53 *** DorpsGek_vi has joined #openttd
11:30:58 *** reldred has joined #openttd
11:31:02 *** truebrain has joined #openttd
11:31:02 <truebrain> right, we should be back on IRC too ๐
11:32:00 <truebrain> all services report green ..
11:32:20 <truebrain> server-list is already repopulated ๐
11:32:35 <reldred> sigh, I've gotta rebuild so much shite the other 'senior engineer' did at work
11:32:35 <truebrain> that happens so scary fast ๐
11:33:14 <truebrain> it should distribute jobs evenly over the nodes ... we now have 15 / 15 / 20 allocations over 3 nodes
11:33:17 <truebrain> that is not a fair distribution!
11:33:32 <reldred> he has an irrational fear of basic industry concepts/technologies, and his idea of redundancy was not infact creating any redundancies, but creating six seperate critical failure points.
11:33:54 <reldred> so now I have to learn storage
11:33:58 <reldred> i don't want to learn storage
11:34:24 <reldred> but he's 'retiring' and his busted ass shit is gonna break on my watch
11:35:42 <reldred> and he was supposed to be teaching someone else how to look after his horizon environment but so far it's not looking good so I'm gonna have to learn that as well...
11:35:46 <truebrain> awh, one of the nodes doesn't want to do a clean shutdown .. owh well
11:36:23 <truebrain> owh, right, downscaling had to be done in steps .. 6 -> 5 -> 3
11:36:34 <truebrain> as otherwise it thinks it is in split-brain ๐
11:38:12 <truebrain> Sentry is nice .. I got 6 copies of the fact redis was unavailable ๐
11:40:17 *** peter1138[d] has joined #openttd
11:40:17 <peter1138[d]> Power-of-optical-fibre ๐ฎ
11:42:00 <peter1138[d]> > Typically 600 mW of electrical power can be supplied by converting 1.5W (CW) of optical input power
11:42:19 <truebrain> but still .. scary ๐
11:42:27 <peter1138[d]> >๏ฎ Fully isolated Power over Fiber (PoF) solution that
11:42:27 <peter1138[d]> efficiently converts optical power to electrical power
11:42:35 <reldred> peter1138[d]: god that stuff scares the crap out of me ๐ญ๐ญ๐ญ
11:42:42 <peter1138[d]> "efficiently" doing some heavy lifting there.
11:43:52 <reldred> efficiently ruining some network techs whole career
11:44:35 <truebrain> cluster running nicely again
11:45:07 <reldred> wossat cluster for anyway?
11:45:29 <peter1138[d]> reldred: These devices don't do networking, it's just power delivery.
11:46:40 <peter1138[d]> A big cluster to run on andy's MBP.
11:46:52 <truebrain> yeah, it is now 5 MBPs ๐
11:47:06 <reldred> truebrain: nah more meant was it container cluster, hypervisor cluster, what container type, yadda yadda ๐
11:48:05 <reldred> pulumi, never eard of it ๐
11:48:34 <reldred> god and so much python, scary
11:48:44 *** emperorjake has joined #openttd
11:48:44 <emperorjake> I've made it a setting now
11:48:56 <reldred> (my crowning achievement at the moment is a production swarm cluster, go easy on me)
11:49:11 *** talltyler has joined #openttd
11:49:11 <talltyler> emperorjake: My mind has been changed, I like the setting ๐
11:49:12 <reldred> (but considering I normally do networking lol)
11:49:19 <talltyler> That said, maybe Limitations is a better place?
11:49:28 <talltyler> (I could be convinced otherwise ๐ )
11:49:30 <reldred> Goes it throw out limitation?
11:49:37 <emperorjake> should I make a new PR or modify the existing one?
11:50:04 <truebrain> oeh, forgot lunch; needs fixing
11:50:18 <reldred> truebrain: eh, mostly came about as a requirement to run a lot of already dockerized things
11:50:36 <reldred> grafana, metabase, zabbix, some other crap I've forgotten
11:51:00 <peter1138[d]> docker... for when you want to run stuff that you have no idea how it works...
11:51:46 <emperorjake> talltyler: Limitations seems to be more related to stuff you can (or can't) build
11:51:52 <reldred> My preference is build everything by hand in LXD but in this instance everything I was deploying was already very much docker orientated.
11:55:02 <reldred> that said, on the grafana docker instances 2nd birthday it finally got moved to the production swarm cluster and it's behaving nicely. zabbix has been running for about 12mo without a hitch, metabase shit itself but that was more my fault.
11:55:28 <reldred> and the survey webapp I made seems to be behaving itself
11:57:33 <LordAro> we've been looking at moving to zabbix at work
11:57:41 <LordAro> our icinga1 instance is creaking somewhat
11:57:51 <reldred> we were on prtg before, absolute trash
11:58:06 <LordAro> (as it doesn't exist past ubuntu 18.04, and has largely been scrubbed from the internet at this point)
11:58:11 <reldred> my main requirement was that whatever we swapped to had to plug into grafana directly.
11:59:28 <reldred> since that's our main visibility platform, I've got four big tellies on the wall that cover everything from running project stats, helpdesk ticketing and trends, server monitoring, network monitoring,
12:00:16 <reldred> I'd just started in dec '21 at this joint and they had the tellies but nobody had figured out how to build wallboards, by christmas I had metrics up on the board
12:00:37 <reldred> then it took the next year to slowly unfuck what having zero visibility does to a helpdesk/IT team
12:01:04 *** asymptotically2 has quit IRC (Remote host closed the connection)
12:01:12 *** asymptotically2 has joined #openttd
12:01:36 <reldred> went from customers ringing us wanting to know why we weren't fixing their shit that had been down all day (nobody noticed and nobody was looking at the tickets) to us calling customers to let them know the nature of an outage and what we were doing *before they realised shit was broken*
12:02:19 <_jgr_> My main problem with docker is that dockerfiles are invariably absolute crap
12:02:39 <_jgr_> Get some random image, apt-get random stuff at uncontrolled versions, etc
12:03:44 <reldred> so yeah, we've got snmp into zabbix with a bunch of our customers having dedicated probes setup in their networks for local collection, a bunch more doing snmp directly to us, vsphere collection for a few different major deployments, and looking at expanding it to all customer servers be they windows or linux to replace kaseya vsa which we want gone by end of march
12:04:38 <reldred> *and I only found out earlier this month that the storage/hypervisor/backups guy wasn't backing up any of my swarm cluster*
12:04:57 <reldred> I've dealt with that now though since he's in retirement mode...
12:08:26 <truebrain> YouTube was like: you watch this movie in 144p!
12:08:32 <truebrain> Not a typo... 144 ...
12:08:40 <truebrain> Didn't know that resolution still existed
12:09:16 <_jgr_> Some people watch youtube as picture in picture on their phones
12:19:18 <merni> TallTylerviaGitHub: Settings GUI has "pages"? Or did you mean categories?
12:20:22 <merni> Or are the categories called pages internally for some weird reaosn?
12:22:16 <talltyler> The categories are called pages
12:22:29 <talltyler> Each collapsable section is a page
12:23:40 <talltyler> You don't even want to know what the setting names and categories are called internally, it's super inconsistent and dated ๐
12:28:08 <xarick> some variables aren't there
12:39:04 <truebrain> right, what was I going to do ... ah, right, MacOS and plugins ...
12:43:54 <emperorjake> I'm a bit stuck, how do I remove all the changes in my PR and add new ones (change from cheat to setting)?
12:44:17 <truebrain> depends on what you have .. are your new changes in a new branch?
12:44:22 <truebrain> or what are we talking about here?
12:44:26 <emperorjake> They're in a separate branch
12:44:36 <truebrain> so easiest is to just overwrite your old branch, and push that
12:44:48 <truebrain> `git branch -B <name of old branch>` from your new branch
12:45:02 <truebrain> `-b` makes a new branch, and `-B` makes a new branch overwriting if it already exists. So use `-B` with care
12:46:28 <emperorjake> Tried it, it doesn't recognise `-B`
12:46:42 <truebrain> oops, `git checkout -B <name of old branch>`
12:48:35 <truebrain> and ofc fix the title / motivation / description ๐
12:49:28 <truebrain> ugh, not having access to a MacOS prompt is annoying; trying to decypher if/how one could sign a dylib, but ... hard to figure out ๐
12:51:55 <truebrain> it seems it is just `codesign -s <identity> libdiscord-social.dylib` ... let's find out!
12:52:56 <emperorjake> I have to do a similar command to get MacOS from pestering me about JGRPP accessing my documents folder
12:53:48 <truebrain> sadly, it costs 100 dollar a year or so to fix that issue for JGRPP
12:56:01 <peter1138[d]> I've never had to pay $100 a year to run my own software on my own computer ๐ฎ
12:56:28 <truebrain> Windows is even more expensive
12:57:53 <truebrain> guess we should release before the certificate expires, just so we can release ๐
12:58:58 <peter1138[d]> Don't sign it, fight the system.
12:59:09 <truebrain> yeah ... we did that before we signed
12:59:11 <truebrain> didn't end well ๐
12:59:46 <truebrain> can't we use Apple's code signing for Windows too ? ๐
13:01:22 <truebrain> emperorjake: willing to do some more MacOS testing? ๐
13:01:22 <truebrain> It really is a shot in the dark if this is the way to go, so be prepared for anything ๐
13:04:31 <emperorjake> I'll give it a go ๐
13:11:08 *** flogeza has joined #openttd
13:11:08 <flogeza> Would it be possible to make an add-on in which, when you sell/replace locomotives/wagons, they appear in the depots under a separate used tab/window, so that other companies would be able to buy them cheaper? e.g.: I will replace 4 locomotives on 2 trains, which 4 will be available at half price to the other companies
13:11:51 <flogeza> could be a help on the jgr servers
13:13:09 <peter1138[d]> It would be possible.
13:13:17 <peter1138[d]> But I'm assuming that's not quite what you meant.
13:13:40 *** alfagamma7 has joined #openttd
13:13:40 <alfagamma7> So a wet leasing side business thing in openttd?
13:13:54 <alfagamma7> Or buying second hand rolling stock?
13:14:06 <alfagamma7> That would be a good idea yes
13:15:00 <truebrain> we have no shortage of good ideas; people to actually implement them however ......
13:15:19 <truebrain> so if you feel up for it, this is the development channel after all, give it a go!
13:15:39 <emperorjake> truebrain: Hm, doesn't seem to be working. What's that command to see if it loaded the plugin again?
13:15:56 <truebrain> or there is a GUI now under Game Options
13:16:44 <flogeza> Yeah second hand locos basically for poorer or late joining companies
13:18:16 <alfagamma7> I think it's not a bad idea but would require some more volunteers
13:18:37 <alfagamma7> flogeza: Basically anything second hand
13:18:37 <emperorjake> I've always liked this idea too
13:18:53 <alfagamma7> buses,trucks, rolling stock, planes, ships
13:19:06 *** locosage has joined #openttd
13:19:06 <locosage> a bit of a problem is, second hand loco is no different from a fresh one
13:19:06 <truebrain> emperorjake: owh, I renamed the folder btw, `social_integration` it is called now
13:19:23 <flogeza> locosage: only the price
13:19:31 <alfagamma7> locosage: So that's how game logic works hmm
13:20:00 <alfagamma7> I think buying older models at a later date can pass off as second hand
13:20:13 <emperorjake> truebrain: Ohh that's why it wasn't finding it
13:20:17 <locosage> I guess it could keep the age for the station rating to make at least some disadvantage for second hand
13:20:24 <truebrain> emperorjake: yeah, sorry ... should have mentioned that ๐
13:20:35 <emperorjake> there's your answer I guess ๐
13:20:49 <truebrain> can you check if it is signed?
13:21:08 <alfagamma7> locosage: Also reliability
13:21:19 <truebrain> `codesign -v libdiscord-social.dylib`
13:21:43 <peter1138[d]> unowned vehicles... GS created road traffic...
13:21:50 <locosage> alfagamma7: reliability is a model thing iirc, individual reliability resets with servicing
13:22:12 <alfagamma7> Older stuff usually has poorer reliability
13:22:26 <locosage> peter1138[d]: and neutral stations
13:23:00 <alfagamma7> good ideas, but tough to implement
13:25:07 <truebrain> emperorjake: also, in your Security & Privacy, it should tell why it was blocked. Something like `because it is not from an identified developer`
13:25:29 <alfagamma7> peter1138[d]: That depends on one's point of view
13:26:45 <emperorjake> truebrain: Yes, that's what it says
13:26:55 <truebrain> okay .... not sure how to read that codesign output
13:27:00 <truebrain> there is a signature in there
13:27:08 <truebrain> but .... yeah, that is about as far as I get ๐
13:27:39 <truebrain> I just don't know how this shit works ๐
13:28:29 <truebrain> emperorjake: just to confirm, `xattr -d com.apple.quarantine <dylibs>` does resolve the problem, and makes it all work?
13:29:47 <truebrain> hmm .. maybe I didn't sign all architectures .. there is this lovely `--all-architectures` ...
13:30:26 <emperorjake> truebrain: That did fix it
13:30:40 <truebrain> well, it is not really a "fix", but yeah, it tells me the signature didn't work ๐
13:33:18 <truebrain> and GitHub Cache is failing on me, so retries take 4 minutes longer than I would like .. but I am backing a new library, see if this approach works ๐
13:34:04 <truebrain> in the meantime I also managed to sign the Windows libraries \o/
13:38:59 <truebrain> How about these libraries, do they "just work"? (and if not, what does `codesign` say this time?)
13:41:38 <emperorjake> Nope, didn't work
13:42:09 <truebrain> well ... I dunno ๐
13:42:45 <truebrain> I have no clue how to manually check why that signature isn't working ... hmm
13:43:49 <truebrain> `codesign --verify --verbose <dylib>` should simply return whether it is valid or not
13:44:27 <truebrain> the other one searching tells me: `spctl --assess --verbose <dylib>`
13:44:46 <truebrain> I only care about libdiscord-social btw; we also sign the other, but if one works, the other should too ๐
13:45:40 <truebrain> okay ... so the signatures are valid ... so why are you getting that popup?!
13:46:10 <truebrain> you forgot the `--verbose` ๐
13:46:56 <truebrain> but I cannot notarize a dylib, from what I understand
13:47:18 <truebrain> tnx; that at least is an error I can search for ๐
13:47:39 <peter1138[d]> That sounds like the developer ID needs to be notarised, not the dylib. Whatever that means.
13:48:12 <truebrain> it most likely means I need to make a package out of this, that you need to install
13:48:15 <truebrain> as I can notarize a package
13:48:41 <truebrain> this btw is about how the file gets on the system, and nothing else/more
13:48:46 <truebrain> which is an odd problem to solve ๐
13:51:13 <merni> is it possible to put openttd on mac app store? or does apple still not like gpl software
13:51:31 <merni> or does mac app store also require signing
13:52:06 <truebrain> this has nothing to do with OpenTTD. OpenTTD itself is working fine ๐
13:52:27 <merni> meh, I mean the library
13:52:41 <merni> I guess it's not an app
13:52:43 <truebrain> emperorjake: seems like I have to make a pkg where you have to drag the file to the right location, you know, those installer thingies .. I just have absolutely no clue how to go about that ๐
13:53:34 <truebrain> no, a .dmg file you double click to launch
13:53:35 <emperorjake> OpenTTD already comes in one of those
13:54:15 <emperorjake> Nah, if you download a .dmg you mount it and drag the contents to the applications folder
13:54:31 <truebrain> see, this happens if you don't have access to a mac ๐
13:54:47 <truebrain> the main issue is, the folder to drag to .. from what I remember it tells you which folder you should drag it to, not?
13:55:03 <merni> Use donation funds to buy an old mac :p
13:57:19 <truebrain> emperorjake: I can create a dmg without issues; but do you think that would be clear enough to the end-user what to do with that next? Or can we make it clear enough you think?
13:58:20 <emperorjake> Lots of dmgs have a shortcut inside them so you just have to drag it there so it gets to the right folder
13:58:37 <truebrain> but ... where do we have to point that shortcut to, is what I am wondering about ๐
13:58:52 <truebrain> or even, how to make that shortcut ๐
13:59:37 <emperorjake> presumably it could point to ~/Documents/OpenTTD/social_integration which would work in most cases
13:59:53 <truebrain> now, how to make such shortcut ๐
14:00:10 <emperorjake> The OpenTTD dmg already has one
14:00:32 <truebrain> that is most likely `CFBundlePackageType` being of type `APPL`
14:08:08 <truebrain> did some copy/pasting from OpenTTD .. let's see how this `dmg` looks ๐
14:08:21 <truebrain> still not notarized, but that is the next step ๐
14:11:22 <truebrain> maybe the bundle name `OpenTTD's Social Integration Plugin for Discord` is going to be an issue
14:11:26 <truebrain> but what to name it otherwise ... ๐
14:12:50 <talltyler> emperorjake: You'll want to `git pull` those remote changes, fix the setting name, and once it builds, squash and force-push ๐
14:13:48 <talltyler> Not sure if you've squashed before, but you can do an interactive rebase with `git rebase -i head~5` (where 5 is the number of commits to look back), and then change `pick` to `fixup` on any of the commits you want to squash into the commit above
14:14:14 <talltyler> `fixup` is like `squash` but without making you edit the commit name each time
14:16:17 <xarick> loading speed penalty?
14:16:34 <xarick> isn't there a setting for that already?
14:17:12 <emperorjake> No, that's why I added one ๐
14:17:48 <xarick> I remember the old loading behaviour, it would insta 100% load, no gradual loading
14:19:35 <emperorjake> That isn't even in the GUI anymore, no reason to ever turn it off
14:21:00 <truebrain> I do not understand how the CMake of OpenTTD works with MacOS ๐
14:21:06 <truebrain> it references a folder I don't see where it should exist
14:21:44 <truebrain> `fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/../MacOS/openttd\" \"\" \"\")`
14:22:07 <peter1138[d]> Maybe it exists in the bundle that's being made.
14:22:25 <truebrain> so I did a `find` after the install
14:22:30 <truebrain> and I don't see this `MacOS` folder ๐
14:22:55 <truebrain> oowhhh, called `dSYM`
14:23:21 <truebrain> that is from my symbol extractor
14:23:43 <peter1138[d]> `"path": "OpenTTD.app/Contents/MacOS/openttd"` < related?
14:24:32 <peter1138[d]> I only understand `!OpenTTD` ๐
14:24:44 <truebrain> okay, so MacOS is the folder for the application binary
14:24:50 <truebrain> as I have libraries, it is in `Resources`
14:24:53 <truebrain> I am fine with that ..
14:24:55 <peter1138[d]> Archimedes / RISC OS applications ;D
14:25:08 <truebrain> still not really sure how this is going to work out, but let's make a dmg, and go from there ๐
14:26:17 <peter1138[d]> If you had a Mac it would be easier to test.
14:27:29 <truebrain> okay, I think I have most .. now for the Applications shortcut
14:27:32 <truebrain> it seems CMake creates that
14:32:32 <truebrain> seems rather hardcoded
14:32:46 <truebrain> emperorjake: how does a .zip work versus a .dmg?
14:33:27 <emperorjake> Not sure, except that zips get extracted and dmgs get mounted
14:37:06 <xarick> wow, just wow... windows explorer doesn't let me click on folders
14:37:41 <truebrain> okay ... another attempt. Notarizing is enabled .. let's see ..
14:38:28 <xarick> it fixed by itself by reopening windows explorer
14:40:46 <truebrain> I think this is where it does the Applications symlink
14:44:45 <truebrain> pretty sure I can make my own link, but it won't be moved to a nice position .. hmm
14:45:43 <truebrain> lolz, there is just a "sleep 5" in that first script .. lol
14:54:03 <peter1138[d]> Does rdtsc give anything useful these days? Seems very variable...
14:54:31 <peter1138[d]> i.e. I'd expect the same number of instructions when its doing the same thing...
14:54:58 <peter1138[d]> (I know, very naรฏve)
14:55:03 <truebrain> rdtsc only does time, not instructions
14:55:09 <truebrain> there are opcodes to count instructions these days
14:56:07 <peter1138[d]> processor timestamp. doh.
14:56:38 <truebrain> the savegame CPU used analysis btw uses instructions, not time
14:56:43 <truebrain> to remove any of the variability that comes with time
14:56:57 <truebrain> works relatively well, except that instructions also kinda depend on some internal CPU thingies ๐
14:57:03 <truebrain> (caches, branch-prediction, etc etc)
14:59:25 <peter1138[d]> Is that a function of time?
14:59:32 <peter1138[d]> (i.e. not built in to OpenTTD)
15:01:12 <truebrain> peter1138[d]: is what a function of time? *puzzled*
15:01:29 <peter1138[d]> That counts the instructions.
15:01:36 <peter1138[d]> `/usr/bin/time -o memory -f "%M" perf stat -x\; -o cpu.csv -r5 ./openttd -X -c config/openttd.cfg -x -snull -mnull -vnull:ticks=${ticks} -g ${map}`
15:01:44 <truebrain> yeah, I use `perf` for that
15:02:00 <peter1138[d]> Oh! time is calling perf is calling OpenTTD.
15:02:13 <truebrain> and it is GNUTime, it is just to capture max-RSS
15:02:35 <truebrain> I don't track actual time spend on the simulation
15:02:46 <truebrain> actual -> wallclock
15:02:58 <truebrain> okay ... notarizing fails, "Record not found"
15:03:17 <truebrain> and as logging in to the Apple account is linked to orudge's 2FA .... time for an email!
15:05:51 <truebrain> owh, also via email
15:06:30 <truebrain> haha, now he has a 2FA code via SMS ๐
15:11:04 <truebrain> I am trying to discover if I can inject something somewhere to execute my own commands before the dmg is built, but that is tricky
15:15:14 <truebrain> if we ignore that the shortcut is to Applications, if you would move the libdiscord-social.app into the `social_integration` folder, does it then work?
15:17:29 <emperorjake> talltyler: Thanks, I think I did that right ๐
15:22:58 <peter1138[d]> Me: Doesn't remember doing much over the past 2.5 weeks (it's christmas)
15:23:27 <peter1138[d]> Also me: Prepares release change log with bullet-list of 20 items (some multiple merges)
15:24:06 <emperorjake> truebrain: I can't get it to run at all, can't even verify it manually
15:24:32 <talltyler> Can I give you my project manager hat now? Or is it a Real Job release changelog?
15:24:35 <truebrain> no, it wouldn't verify; but if you drag&drop the folder from the DMG to the `social_integration`, does OpenTTD at least see the dylib? (with `-d misc=1`)
15:24:44 <peter1138[d]> Real Job, sorry!
15:26:08 <truebrain> hmm ... we can't make a shortcut in the dmg, as `~` isn't valid, and it resolves it .. which makes that kinda pointless ๐
15:26:09 <emperorjake> truebrain: Yes, it does show up there and in the options menu
15:26:20 <truebrain> okay, good; I am guessing with a very long path?
15:26:34 <truebrain> `OpenTTD-discord-social.app/Contents/Resources/libdiscord-social.dylib` or something?
15:27:32 <truebrain> yeah, okay, fine; I take that
15:27:40 <truebrain> now if we can notarize it, it might, just might, work
15:27:48 <truebrain> tnx for the testing etc ๐
15:28:45 <talltyler> emperorjake: This would be a separate PR, but are you up for changing the stop location when the train doesnโt fit in the station? (As has been discussed in your linked Discord discussion and the JGRPP issue)
15:30:00 <emperorjake> I'll take a look at it, seems a bit more complex though ๐
15:30:35 <talltyler> Oh definitely, but youโre a pro now ๐
15:31:11 <talltyler> (It seems to be in train_cmd.cpp)
15:32:22 <talltyler> Rubidium: What for? ๐
15:32:51 <talltyler> Oh, there it is ๐
15:33:45 <_jgr_> talltyler: That is a more complicated change, because you'll need to adjust load/unload/etc code as well.
15:33:48 <truebrain> emperorjake: `Drag "OpenTTD-discord-social.app" into "social_integration" folder under OpenTTD in your Documents folder.` is that an accurate description?
15:34:51 <_jgr_> The current code gets the station from the tile of the front vehicle
15:43:10 <xarick> wow, I got some measurable gains in performance in a place I didn't expect much
15:45:16 <xarick> makes me wonder if it's working correctly
15:45:55 <talltyler> Ha, thanks JGR, thought I was going crazy ๐
15:47:20 <emperorjake> well now I have a savegame that can never be opened again because I overwrote the original cheat version of the PR ๐
15:47:48 <truebrain> if you really really want to open that savegame, there are ways
15:48:06 <emperorjake> It's ok, it was just a test map
15:50:36 <truebrain> instructions also clear and correct?
15:51:02 <emperorjake> I found it perfectly understandable
15:51:15 <truebrain> 3 hours of work .. and what do we got? Not much more ๐
15:51:27 <truebrain> next week orudge and I will pick up notarizing .. and then it should "just work" ๐
15:52:27 <_jgr_> talltyler: There are also likely to be some issues with order management, pathfinding and such. You will need some extra states.
15:52:51 <talltyler> If you happen to make such a change to benefit your players, Iโd be happy to review it for vanilla ๐
15:53:05 <emperorjake> I figured there would be things like that
15:53:21 <talltyler> (Iโm also happy to work with Jake, of course)
15:53:42 <talltyler> But it might be a bit much for either of us
15:53:43 <emperorjake> In the meantime, here's a use case for my PR, now to do a bridge that looks like a station ๐
15:54:22 <talltyler> I guess with the current stop locations, just put the left-hand platform on the far side of the bridge
15:54:47 <emperorjake> Yes, that's why I used DPRK stations because it has waypoints for the near end
15:54:50 <talltyler> And use a waypoint for the fake platform on the near side
15:55:29 <talltyler> Oh right, are the bottom tracks real stations?
15:55:36 <merni> Why can't you use platforms for both ends? Do trains stop at the first set of platforms instead of going all the way?
15:55:40 <talltyler> We donโt have bridges over stations in vanilla ๐ฆ
15:56:08 <emperorjake> talltyler: Yes, but it could be faked in a similar way with the overlap tiles
15:56:29 <merni> ah. I used that behaviour once to hold two trains in a "single" (split) platform but I thought it only did that with "near end"
15:57:37 <_jgr_> For the case of platform parts split by a bridge you could probably automatically skip the near part
15:59:27 <emperorjake> also quast65 will be very happy
15:59:28 <talltyler> _jgr_: Hmm, that is intriguing. Just check if the next tile is a tunnel/bridge head, get the other end tile, and check if the next tile is also a stationโฆ
15:59:49 <talltyler> Congrats emperorjake on your first PR merged! ๐
15:59:58 <emperorjake> Merged already! That was fast ๐คฉ
16:00:14 <talltyler> reldred: can shut up now ๐ ๐
16:03:26 <emperorjake> Fake diagonal platforms could be done too
16:04:07 <emperorjake> anyway, time for sleeo ๐
16:04:23 <xarick> wow, finally measurable gains
16:07:16 <xarick> FreeUnitIDGenerator contributed the most for the mass built 70000
16:10:56 <xarick> what's contributing for Deleting 35000 groups?
16:15:40 <xarick> at the microscope, there is a regression for the one about "Created 35000 groups..."
16:16:20 <xarick> 3 seconds > 3 seconds, test is too short to make a difference, or just too fast
16:21:05 <xarick> "Deleted 35000 groups..." - CmdRemoveAllVehiclesGroup contributes to the massive gain
16:21:29 <xarick> GroupStatistics::CountVehicle regresses, expected
16:21:45 <xarick> it's doing the add/remove from the vector
16:21:51 <xarick> which the original didn't have
16:24:04 <xarick> the "Mass sold 70000" is also a regression, it's GroupStatistics::CountVehicle all over it
16:24:16 *** Wormnest has joined #openttd
16:24:19 <xarick> but insufficient to make a measurable dent
16:30:24 <xarick> you merged a .DS_Store file by mistake
16:31:43 *** gelignite has joined #openttd
16:34:39 <talltyler> `Binary file not shown` makes it hard to see when reviewing, we all missed it ๐
16:37:58 <_jgr_> That seems like something that should be covered by a .gitignore
16:38:07 <peter1138[d]> That's client-side.
16:41:02 <LordAro> all very well saying that, but it got in
16:41:37 <LordAro> dunno if we can ban files from being pushed entirely?
16:42:19 <peter1138[d]> commit checker can catch it of course.
16:43:44 <Rubidium> if it's in .gitignore at least the `git add` command will reject unless you do `git add -f`
16:44:25 <LordAro> we've always said OS/editor specific stuff should be in a global ignore
16:46:14 <Rubidium> why's .vs in there then?
16:47:18 <LordAro> generated by VS during build?
16:47:30 <LordAro> not strictly an editor thing
16:48:40 <_jgr_> I suppose there are a lot more developers using visual studio and MSVC than using macs
16:53:44 <truebrain> And let's not make checks etc for something that happened now once since ... years? Decades? ๐
16:58:08 <LordAro> truebrain: that's not a sufficient amount of panicking
16:58:29 <truebrain> Yeah, sorry, my fault
17:00:57 <truebrain> I once started a job where a deployment was 20 pages long procedure, because it contained a check for everything that once went wrong ... Needless to say a deployment took days to perform .. I threw away that book and went about it a bit more ... pragmatic ๐ we went from 1 deployment a month tops to a new deployment every day
17:05:26 <Rubidium> can't find any reference when quickly scanning the logs (cleanup or remove), though I stopped around r15k
17:05:54 <peter1138[d]> Deployment issues become rarer automation.
17:06:19 <peter1138[d]> When I was manually copying files and sudoing to restart... urgh :p
17:06:19 <truebrain> And when deployments are done more often, it is just another deployment
17:06:19 <LordAro> we're continuously fighting the QA team about things that they manually check that are already automated
17:06:33 <peter1138[d]> Yeah, much less scary with smaller changes.
17:06:44 <LordAro> "you do not need to check this, if it was an issue the deployment would've failed and you never would've got here"
17:07:03 <truebrain> Trust is hard to get and easy to lose
17:11:57 *** gelignite has quit IRC (Quit: Stay safe!)
17:13:01 <xarick> I wish AIs could multithread
17:13:21 <xarick> each AI run in its thread or something
17:13:44 <xarick> wouldn't solve much in the long run ๐
17:16:47 <Rubidium> I wish game ticks could multithread
17:17:17 <xarick> predict the future tick?
17:17:47 <peter1138[d]> Maybe groups could cache game ticks
17:18:35 <Rubidium> xarick: no, running all the tick different loops in parallel (growing towns, moving vehicle, etc.)
17:18:37 <truebrain> Plan / act system would be helpful ๐
17:18:44 <peter1138[d]> I found a way to improve timing. Remove TIC[C]/TOC[C]. All code now takes no time.
17:19:07 <xarick> 2 game states running in the background, one represents what the user sees if he did no action, the other plays the future?
17:19:15 <truebrain> Someone started on that with Vehicles, but we start a lot of things ๐
17:19:22 <locosage> peter1138[d]: that's what I did in cmclient ;p
17:20:13 <xarick> and the future could be multi-threaded, meh
17:20:56 <_jgr_> Multi-threading is quite difficult as there's so much global state and so many invariants to maintain
17:22:01 <truebrain> AIs are suspended when they try to mutate the state. So I guess in theory they can run in parallel, just when they execute the action might fail when they didn't expect it
17:22:34 <truebrain> But doing that now most likely kills all current AIs ๐
17:23:03 <peter1138[d]> Can't that happen anyway if they are suspended between making decisions and then acting upon them?
17:23:19 <truebrain> Most don't take that into account either
17:23:28 <truebrain> But yeah, fair point
17:24:16 <peter1138[d]> But who cares enough about AI to care about AI performance...
17:24:31 <truebrain> So far the counter reads 1
17:25:43 <xarick> what about andythenorth
17:26:08 <truebrain> Hmm .. many surveys results .. now to think how to process them ๐
17:26:37 <peter1138[d]> Put them in the bin, we don't care what players want!
17:26:38 <truebrain> So many possibilities ๐
17:27:32 <truebrain> I wonder what the costs would be to put them in a database and allow queries by anyone ๐
17:28:03 <Rubidium> well, I guess the first question would be... what's the median number of (active) AIs
17:28:36 <merni> Also, how many people have enabled block signals :p
17:29:02 <merni> peter1138[d]: I was thinking 0 myself
17:29:06 <peter1138[d]> But they don't use them, they just enable them on principle.
17:29:43 <truebrain> Don't think we track what kind of signals are build
17:29:49 <merni> But openttd has only NoAI and hence is not future
17:29:51 <xarick> or AI is the future, whatever... I am hoping for an influx of AI authors
17:29:51 <truebrain> Might be worth adding ๐
17:29:59 <xarick> due to the AI craze going on now
17:30:02 <merni> truebrain: But the setting to display block signals or not should be tracked right?
17:30:18 <merni> xarick: generative AI is in no way applicable to OpenTTD
17:30:33 <merni> and personally I think AI is a misnomer for generative AI
17:30:39 <_jgr_> xarick: There recent AI hype hasn't made the OpenTTD AIs any better
17:30:52 <truebrain> Comparing LLMs with OpenTTD AI is not a good comparison ..
17:32:09 <xarick> someone will make an AI generate AIs for OpenTTD
17:32:45 <FLHerne> merni: that's probably an overstatement
17:33:31 <merni> maybe it's applicable in writing grf docs? :p
17:34:21 <truebrain> Would a vector database be a good storage solution.. hmm
17:34:23 <FLHerne> it's not directly applicable to OpenTTD AIs, but I can imagine it being made to, say, downscale Blender renders into pixel art better than current algorithms
17:34:30 <locosage> merni: that's my whole plan for grf-py docs xD
17:34:32 <FLHerne> (currently automating it just looks bad)
17:34:42 <xarick> strange, AAAHogEx got a cpu valuator crash, that didn't use to happen
17:34:48 <locosage> coz if chatgpt ain gonna write them no one will I suspect xD
17:35:07 <FLHerne> or generate plausible alternate views of buildings so we can finally have map rotation :p
17:41:48 <peter1138[d]> Make each tile run on its own thread.
17:42:08 <peter1138[d]> Massively Multithreaded Multiplayer Online Game
17:45:07 <peter1138[d]> Github why defer loading approved status ๐ฎ
17:48:31 <peter1138[d]> I guess there's no need to exclude game_script from the debug message of #11673 now.
17:53:36 <xarick> I'm listening to melancholic music
17:54:50 <merni> I am getting a lot of lang errors like ```
17:54:50 <merni> /home/user/ttd/OpenTTD/src/lang/gaelic.txt:4288: info: String name 'STR_TIMETABLE_DAYS' does not exist in master file
17:54:50 <merni> /home/user/ttd/OpenTTD/src/lang/gaelic.txt:4289: info: String name 'STR_TIMETABLE_TICKS' does not exist in master file
17:54:50 <merni> /home/user/ttd/OpenTTD/src/lang/gaelic.txt:4298: info: String name 'STR_TIMETABLE_STATUS_START_AT' does not exist in master file
17:54:50 <merni> /home/user/ttd/OpenTTD/src/lang/gaelic.txt:4300: info: String name 'STR_TIMETABLE_STARTING_DATE' does not exist in master file
17:54:52 <merni> /home/user/ttd/OpenTTD/src/lang/gaelic.txt:4301: info: String name 'STR_TIMETABLE_STARTING_DATE_TOOLTIP' does not exist in master file ```
17:54:52 <merni> (repeated for each language) while building master. Is this to be expected?
17:55:09 <LordAro> for another hour or so, yes
17:55:17 <merni> libpng warning: iCCP: cHRM chunk does not match sRGB
17:55:17 <merni> libpng warning: iCCP: known incorrect sRGB profile```
17:55:20 <LordAro> eints will clean up shortly
17:55:38 <merni> what happened to eints?
17:57:10 <peter1138[d]> Are you on current master? STR_TIMETABLE_DAYS doesn't exist anymore.
17:57:25 <merni> I did `git pull` about half an hour ago, so I hope so
17:58:21 <xarick> 2TallTyler is very optimistic
17:58:33 <xarick> everything seems set to release for 14.0
17:59:24 <peter1138[d]> merni: what does `git status` say?
17:59:45 *** andythenorth has joined #openttd
17:59:45 <andythenorth> wow you lot were busy
17:59:55 <andythenorth> I only stepped away to do my actual job for the day, so much chat
18:00:25 <peter1138[d]> Those strings were removed on 11th Dec.
18:00:34 <peter1138[d]> So I think LordAro was on automatic mode :p
18:00:50 <merni> Your branch is up to date with 'origin/master'.
18:00:50 <merni> And some things about "changes not staged for commit" relating to things I'm working on
18:01:12 <merni> Oh do I need to update my fork in GitHub as well
18:01:26 <peter1138[d]> If your origin is your fork, yes.
18:01:58 <peter1138[d]> You can add the main repo as another remote, though.,
18:03:15 <merni> Yep, updating my fork in github appears to have fixed the lang warnings
18:03:26 <merni> The libpng ones are still there
18:03:32 <peter1138[d]> Nearly a month out of date, not surprising.
18:03:43 <peter1138[d]> The png one is nothing to worry about.
18:05:25 <merni> peter1138[d]: I'm surprised it wasn't more considering how rarely I do work on openttd code lol
18:23:25 <merni> why is build while paused off by default?
18:25:59 <truebrain> putting us in the defence, huh? ๐
18:26:14 <truebrain> might be better to argument why it should be on by default ๐
18:26:27 *** wensimehrp has joined #openttd
18:26:27 <wensimehrp> I have a question about this string
18:27:03 <wensimehrp> Does the "monopoly" in the base means economical monopoly, or just monopoly, like the board game?
18:28:15 <wensimehrp> the zh_tw translation means "Transport Tycoon", and zh_cn means "monopoly on transport"
18:28:32 <merni> truebrain: Because in single player there is no real reason to restrict yourself from building while paused (allows you to plan things better), and in multiplayer the setting can be set accordingly by the server owner
18:28:50 <wensimehrp> wensimehrp: STR_NEWS_EXCLUSIVE_RIGHTS_TITLE
18:28:54 <truebrain> merni: no mention of why the default should be one or the other ๐
18:29:07 <truebrain> but in general, the defaults are to give a game; if you want to make it a sandbox, you have to flip some switches
18:29:38 <merni> Does this really matter in making it a "game", though?
18:29:52 <truebrain> again, defence question ๐
18:30:02 <merni> is it less of a game without building while paused?
18:30:11 <truebrain> if you continue that questioning, you end up with: why are we?
18:30:15 <Rubidium> wensimehrp: it's the title for "Local authority of {TOWN} signs contract with {STRING} for one year of exclusive transport rights!" So effectively the company has an economical monopoly on the town
18:30:16 <truebrain> what is the meaning of life? ๐
18:30:34 <LordAro> peter1138[d]: probably
18:30:52 <wensimehrp> Rubidium: so it's the zh_tw string that is wrong am I correct?
18:30:57 <locosage> merni: playing with pause certainly makes it a different game
18:31:01 <locosage> much worse one if you ask me :p
18:31:28 <_jgr_> If you're doing multiplayer for citymania, presumably the game is never paused anyway?
18:31:32 <Rubidium> wensimehrp: as in, only the mentioned company is allowed to pick up passengers/cargo. So yes, the zh_tw version seems wrong
18:32:38 <merni> truebrain: That is something I do ask myself once in a while so makes sense :P
18:32:59 <merni> When it happens I just go forget about it and have a beer/chocolate/whatever
18:32:59 <locosage> _jgr_: well, ofc, playing any type of a goal game with pausing is just ridiculous imo
18:33:05 <locosage> for sandbox it's ofc not an issue
18:33:44 <truebrain> merni: basically, such settings are just "preference", and what type of game you enjoy
18:33:51 <truebrain> what ever default you pick, there will be people against
18:34:16 <andythenorth> truebrain: the correct question is "what is clocks?"
18:34:19 <merni> only reason I asked is because I was surprised when playing on a new install in WSL
18:34:34 <truebrain> If you are used to playing in a certain way, there will be many surprises
18:34:41 <truebrain> some people cannot believe cargodist is not enabled by default
18:34:48 <truebrain> another one of those settings ๐
18:34:54 <merni> openttd on WSL is also slow as molasses for me so getting to the right setting and changing it was a bit of a pain :p
18:35:00 <Rubidium> yeah, we should introduce "career mode" and "sandbox" in which the only difference are some settings like build while paused, magic bulldozer, and so on :D
18:35:10 <merni> "sandbox" should delete money
18:35:18 <FLHerne> then remove all the individual settings
18:35:18 <truebrain> Rubidium: you joke, but I did consider adding a mode like that, yes ๐
18:35:21 <merni> or at least allow you to get into infinite debt
18:35:25 <_jgr_> Rubidium: Now you have 2x as many arguments about settings ๐
18:35:27 <FLHerne> everyone can stop worrying about them
18:35:28 <truebrain> but I found out that a generic "preset" system would be better ๐
18:35:46 <truebrain> which I still haven't found time to actually build ๐ฆ
18:35:50 <Rubidium> _jgr_: it would be nice if they build me a bike shed :)
18:36:13 <truebrain> merni: anyway, with 14.0 comes a survey system, which will put to rest a lot of these "what should be the default" conversations
18:36:29 <andythenorth> yes, we can answer them with "sorry we need to gather more data" ๐
18:36:32 *** virtualrandomnumber has joined #openttd
18:36:49 *** gelignite has joined #openttd
18:38:53 <locosage> truebrain: yes, we'll be able to smoothly transition to conversations on how to interpret that data ๐
18:39:56 <DorpsGek> - Update: Translations from eints (by translators)
18:40:36 <_glx_> merni: those are because you have grfcodec
18:41:57 <xarick> automated crash report upload
18:42:24 <locosage> andythenorth: I just listened the first phase and it's wrong :p
18:45:52 <peter1138[d]> andythenorth: A Coldplay song.
18:46:30 <andythenorth> must be time to grf now?
18:53:59 <xarick> master vs pr 11676 vs group vehicle list
18:57:38 <xarick> I almost didn't remember I had setup the coronas to use shared orders
19:00:23 <xarick> at the critical phase:
19:00:32 <xarick> there's improvements, I'm happy
19:05:04 *** virtualrandomnumber has quit IRC (Quit: virtualrandomnumber)
19:08:06 *** virtualrandomnumber has joined #openttd
19:08:42 <peter1138[d]> xarick: yes, it's not a performance as your way, but it also doesn't need to maintain an extra cache.
19:16:36 <peter1138[d]> lol i inverted the nullptr check ๐
19:26:10 <truebrain> always going against the current ๐
19:30:15 *** virtualrandomnumber has quit IRC (Quit: virtualrandomnumber)
19:34:49 <peter1138[d]> Okay what do we do about the things that everyone is requesting that we keep ignoring?
19:36:50 <peter1138[d]> (I'm aware that everyone is not actually requesting things, because they prefer to make comments that everyone knows about the request which was never made)
19:37:13 <truebrain> realise you can't make a game for -everyone- ๐
19:39:19 <xarick> take the main VehiclePool, and segment it somehow
19:40:10 <xarick> preserve x amount of vehicles for indexes a to b for company 1 with veh type T
19:40:38 <xarick> have the ::Iterate stuff work by starting from the index reserved for a company
19:40:47 <xarick> and end at the last index reserved
19:41:02 <xarick> do that for every company and veh type
19:41:12 <_jgr_> What happens when one company buys out another?
19:41:28 <xarick> I see, that complicates things
19:41:48 <xarick> there would have to be a restructure of indexes
19:41:55 <xarick> and it may not fit ๐ฆ
19:44:11 <peter1138[d]> You are right. It's definitely a weird idea.
19:44:59 <xarick> i thought, if the issue is because iterating a big pool takes time, what would it be like if it was arranged
19:46:10 <truebrain> you look at the problem too narrow; in general terms, iterating the big pool is ideal
19:46:19 <truebrain> as we are often iterating the whole pool
19:47:32 <xarick> you could do that too, the idea was to have multiple defined begin() / ends
19:48:09 <xarick> but every vehicle would still be in the same pool, no repetition
19:48:16 <truebrain> just with big holes in it?
19:48:26 <truebrain> which you magically skip?
19:48:38 <truebrain> performance is a tricky thing .. make one end faster, make the other end slow
19:50:35 <_jgr_> If you did want to segment the vehicle pool in some way, it'd make much more sense to do that by vehicle type rather than company
19:50:57 <xarick> i was thinking doing by both
19:51:07 <xarick> 1 million is big enough, I think
19:54:02 <truebrain> you can't make something that is fast for all types of access and not consume a gazillion memory; there is always a balance and a trade-off
19:54:19 <truebrain> you can't make it fast to AND iterate over all vehicles AND iterate per company AND iterate per vehicle type, and be friendly to the memory
19:54:31 <truebrain> that is simply not how that works .. you need to pick one .. and if you are lucky you can pick two
19:54:44 <truebrain> but, try it out, go nuts, find out how these things actually work (and how they don't work)
19:55:21 <xarick> maybe with bitwise operators hmm...
19:56:27 <xarick> I actually wanted to try, just not sure how to
19:58:00 <xarick> maybe trains need a bit more vehicles than the rest, have a bigger pool for them
19:58:59 <Rubidium> ships need the most! They're the bestest
20:00:42 <peter1138[d]> So, NewPoolArray... `std::vector<std::unique_ptr<Aircraft>> _aircraft_pool;`
20:01:33 <talltyler> Donโt we have iterators for different vehicle types already? Or do those just abstract away the filtering?
20:01:42 <_glx_> For fun use the index in the vector as vehicle id
20:02:25 <_glx_> We have templated iterators, but in the end they read the whole pool
20:02:33 <peter1138[d]> They just filter, yes.
20:03:13 <truebrain> `std::vector<std::vector<std::vector<Aircraft>> _pool` is more what he is talking about ๐
20:03:20 <truebrain> owh, and another vector to make lookup by id possible ๐
20:05:21 <reldred> talltyler: Fake news ๐
20:05:56 <peter1138[d]> Just store vehicles in the group statistics.
20:05:59 <reldred> Something something chyna
20:06:45 <xarick> the problem with groups, they don't store free wagons, articulated,
20:11:39 <xarick> oh, are you suggesting to make each company itself have their own pool of vehicles? store vehicles on them, instead of how it is now?
20:11:54 <xarick> move from VehiclePool to somewhere in Company?
20:12:10 *** Flygon has quit IRC (Read error: Connection reset by peer)
20:13:18 <xarick> instead of what I am trying, which is duplicating their existance
20:13:27 <xarick> they'll be only in 1 place
20:13:44 <LordAro> peter1138[d] was very much being sarcastic
20:14:06 <LordAro> just to save you a rabbit hole of thought
20:14:17 <rau117> Speaking of magical dynamite... Is it possible to allow the removal of your company's statue without magical dynamite?
20:14:17 <rau117> The statue is the strangest structure in the game. It seems to be a statue of your company, which is built for your money, but the location is chosen (conditionally) randomly and it can only be destroyed by magical dymanite or deleting the company.
20:14:17 <rau117> It's even more frustrating to accidentally place a statue right on the city's central tile without having a chance to remove it or load the game.
20:14:25 <jfs> no, just have five indexes ("caches") to the primary vehicle pool, one index for road vehicle heads, one index for train heads, one index for ship heads, one index for aircraft heads, and one index for "special vehicles" (effect and disaster)
20:15:05 <jfs> each of those will have at most around 75-80k entries in them, something any modern cpu can eat for a snack and still be hungry
20:16:45 <LordAro> rau117: perhaps it's a bug that it can be placed on the central tile?
20:17:13 <jfs> you _could_ also then do the SQL database index strategy of having additional fields indexes, for example have each of the main vehicle type indexes contain the vehicle id and the owning company, then you can very quickly iterate such a vector (that would be 4 or 8 bytes per entry) to visit all relevant vehicles
20:17:42 <jfs> of course if you make a more complex index like that then you suddenly have the additional task of maintaining it
20:18:02 <locosage> having a statue on a central tile isn't that much of an issue, town can still grow from any other 12 tiles
20:18:15 <jfs> but since vehicles seldomly change owner, that could probably be handled by a complete clear-and-rebuild of the index in the few situations where that does happen
20:18:41 *** gelignite has quit IRC (Quit: Stay safe!)
20:19:30 <jfs> rau117: it's way more fun in Transport Tycoon, where you can build as many company statues in a town as you can afford, eventually replacing the entire town centre with statues only
20:20:26 <LordAro> locosage: i did think it sounds weird
20:20:41 <LordAro> sounded weird that that was even a problem*
20:22:33 <LordAro> has anyone actually done any profiling to check that iterating the vehicle pools is even a problem?
20:23:29 <rau117> LordAro: The problem is rather the inability to remove the statue using *simple* methods.
20:23:47 <LordAro> rau117: i'm not denying that
20:23:58 <LordAro> i'm questioning why "the central tile" is a big deal
20:23:59 <truebrain> enable magic buldoze by default?
20:24:20 <locosage> LordAro: I know #7247 was a very noticeable issue on some systems and that can easily be fixed with cache per type
20:24:35 <_jgr_> LordAro: I've only really found it to be an issue in a few specialised cases
20:25:54 <rau117> truebrain: But this will not solve the problem on public servers. Allowing magical dynamite = creating anarchy.
20:25:54 <rau117> The easiest way is to just allow the statue to be removed.
20:25:55 <_jgr_> In particular, CallVehicleTicks, but that's in large because of the performance hit of the timing, not the iteration itself
20:26:46 <_jgr_> In general if iterating the vehicle pool is too slow it's better to find it way to not have to do it all, if possible
20:26:54 <truebrain> yes, magic buldoze on MP where it is allowed to remove stuff from the competitors! Now that I would play ๐
20:28:36 <locosage> hm, if statue can be removed that may allow for an easy way of wrecking towns without pissing authorities xD
20:28:52 <reldred> And while weโre at it letโs just remove block signals from the game entirely. Letโs just straight up give some people brain aneurysms
20:31:02 <locosage> truebrain: you missed your chance on citymania when I didn't notice that town range checks bugged out :p
20:32:15 <xarick> wow, for some reason for (const Order *order = v->Orders()) { doesn't work on 11676
20:34:57 *** virtualrandomnumber has joined #openttd
20:35:24 <rau117> reldred: Some players actively use them, and if you donโt respect this part of the players, itโs better to remain silent. Just hide the block signals if you hate it that much.
20:37:22 *** virtualrandomnumber has quit IRC ()
20:38:00 <xarick> confirmed, it's slower, sorry peter, my bad
20:38:44 <rau117> locosage: From a small test on a โspiralโ road pattern, it turned out that the blocked city center simply prohibits the city from growing by other roads. The city is still growing, but along a single road.
20:39:15 <locosage> then you just did it wrong
20:39:27 <locosage> you need to spiral from the tile it's growing
20:40:48 <locosage> I guess, it's trickier since you need to know how to find that tile
20:41:27 <locosage> but it's a very niche issue
20:42:16 <locosage> random towns that can have houses on central tiles also have road layouts that function regardless
20:45:33 <locosage> rau117: grows just fine
20:45:42 <rau117> reldred: Yeah, by provoking me into arguments you are only showing yourself in a bad light.
20:45:42 <rau117> And also this can be considered a violation of server rules.
20:47:10 <andythenorth> did the 12 year olds take over whilst I wasn't looking?
20:48:05 <LordAro> andythenorth: can't get them to go to bed
20:48:16 <andythenorth> well it's not that late eh
20:48:24 <andythenorth> * depending on timezone
20:50:17 <rau117> locosage: 3x3, scenario editor expancion, not so fine (=
20:50:17 <rau117> (although in a real game it will most likely be different)
20:52:45 <locosage> rau117: you need to put a new center in the right place, if it starts not from center your probabilities will be messed up
20:53:18 <locosage> though for 3x3 it should probably make no difference regardles and that's just se weirdness
20:55:35 <locosage> locosage: actually, I think I messed that up here, this should be the right placement
20:55:46 <locosage> after center next tile is x-1, y
20:56:27 <locosage> then x, y + 1 and so on in circle
21:00:49 *** belajalilija has joined #openttd
21:00:49 <belajalilija> I wonder who lives in that town
21:26:36 <peter1138[d]> It is quite dubious looking, to be honest.
21:28:43 <locosage> welcome to openttd :p
21:28:50 <locosage> that's how best layouts look like in this game
21:31:26 <_jgr_> Eh, I'm happy to not bother maximising that particular metric over everything else
21:34:10 <locosage> well, it's only really relevant in city-builder games
21:34:55 <locosage> but it's such a bother to build...
21:54:26 <xarick> must be what happened to me last week
21:54:44 <xarick> a random crash trying to display company name
21:55:35 <_glx_> unrelated, this function is on company creation
21:55:38 <peter1138[d]> Probably not ๐
21:56:03 <xarick> let me search the screenshot, I think I posted it
21:56:17 <_glx_> and it was not crashing before a recent commit ๐
21:56:44 <_glx_> and still should not crash, just random behaviour
21:59:40 <_glx_> yes, but the fix is not related
22:00:14 <xarick> same symptoms... company name is involved
22:09:19 <andythenorth> I didn't give up
22:09:24 <peter1138[d]> Hmm, I think I know what that is.
22:09:37 <peter1138[d]> It is only very vaguely related.
22:11:03 <_glx_> the crash you got seems to be related to param 4 (only 0 to 3 are set for this news message, but shouldn't be a problem)
22:11:34 <peter1138[d]> It is a problem if SetDParamStr(4, ...) was used previously, and the pointer is no longer valid.
22:11:44 <_glx_> unless some "garbage" is in params yes
22:12:02 <peter1138[d]> I can fix this in a nicer way ๐
22:20:13 <andythenorth> any way to store python **kwargs in an instance attribute, then get them back later and pass them as function param?
22:20:29 <andythenorth> `cloned_consist.add_unit(type(cloned_consist.units[0]), cloned_consist.units[0].kwargs_for_optional_consist_cloning_later)`
22:20:43 <andythenorth> isn't parsed as a list of kwargs
22:20:51 <andythenorth> list comprehension maybe?
22:20:59 <_glx_> hmm yeah `const char *` in params can be problematic
22:21:16 <LordAro> andythenorth: probably?
22:21:36 <LordAro> some amount of ** in the right places
22:24:30 <LordAro> **kwargs in a function signature collects all the named args together, and **kwargs anywhere else expands them
22:24:36 <LordAro> just a dict otherwise
22:26:15 <xarick> Adapting that `orderlist->GetFirstOrder(); order != nullptr; order = order->next` from 11676 to the equivalent for my group-vehicle-list branch `v->GetFirstOrder(); order != nullptr; order = order->next`, very nice results:
22:26:32 <andythenorth> might have it working
22:28:02 <xarick> how did you discover it was faster?
22:28:05 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:29:35 <peter1138[d]> What do you mean?
22:30:05 <xarick> writing more text to iterate orders
22:30:30 <xarick> it's originally v->Orders()
22:31:11 <truebrain> yesterday we received ~150 surveys from the nightlies and 350 from JGRPP
22:32:29 <peter1138[d]> Writing more text?
22:33:47 <xarick> `for (const Order *order : v->Orders()) {`
22:33:47 <xarick> `for (const Order *order = v->GetFirstOrder(); order != nullptr; order = order->next) {`
22:33:54 <_glx_> truebrain: all from the same player ?
22:34:05 <truebrain> haha, unlikely, but that I am about to find out
22:34:11 <peter1138[d]> Oh... you know the length of 'text' does not matter?
22:34:16 <peter1138[d]> It's the code that matters.
22:34:20 <_glx_> with all the ticc/tocc runs
22:35:12 <peter1138[d]> The other thing is it's not `v->GetFirstOrder()`, it's `orderlist->GetFirstOrder()`
22:35:39 <truebrain> _glx_: only 17 times the same savegame got transmitted (on a single day) ๐
22:35:42 <xarick> yes, in your PR, but it also improved mine
22:35:49 <peter1138[d]> However, I did not benchmark the difference between `v->Orders()` and `orderlist->GetFirstOrder()`
22:36:12 <xarick> oh, I thought you were aware. Turns out it's faster
22:36:22 <peter1138[d]> In my PR I am looping through the orders in the orderlist.
22:37:00 <_glx_> there's probably some overhead with v->Orders(), but should be unnoticable in normal use
22:38:13 <peter1138[d]> xarick: my comment of "you tell me?" was because you questioned if a different way is faster. Instead of... just testing it ๐
22:38:18 <truebrain> `Orders shared by vehicles only need to be tested once instead of for each vehicle sharing them.
22:38:18 <truebrain> Vehicle tests only need to be performed on the first shared vehicle instead of all.`
22:38:18 <truebrain> Doesn't that say the same twice, but worded differently btw? ๐
22:38:24 <_glx_> IterateWrapper Orders() so yeah some overhead
22:38:26 <peter1138[d]> (Now you have tested it, I guess)
22:39:04 <peter1138[d]> truebrain: no, testing orders (e.g. destination) is not the same as testing vehicles (e.g. ownership, type)
22:40:02 <truebrain> it still feels like it says the same ๐ But okay .. it just made me giggle, long sentence, brain hurts ๐
22:40:03 <peter1138[d]> I guess it kind of the same :p
22:41:07 <peter1138[d]> Hmm, can I copy StringParameters over _global_string_parameters...
22:41:17 <_glx_> hmm I can spot some not super safe stuff in OrderIterator
22:41:35 <truebrain> with these kind of for-loops, I am always reminded why I enjoy `continue` over an if-cascade ๐
22:41:55 <peter1138[d]> truebrain: I do too... I don't know why I didn't ๐
22:42:18 <peter1138[d]> But I have to rewrite it anyway for Rubidium's comment, so that will happen ๐
22:42:26 <truebrain> this just also begs for some abstraction .. too bad there are two if-statements on different levels in there .. I wonder how far you can get with constexpr with that .. I will not try ๐
22:42:43 <_glx_> end()++ should not happen
22:43:52 <truebrain> all that because I still have no clue how to efficiently parse all this survey data in a way I can do with it what I want ๐
22:44:34 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
22:45:35 <truebrain> as we don't actually know what user the survey transmitted, what I want to do, is count how many wallclock time a certain setting is used
22:45:44 <truebrain> that, I think, gives the most fair representation of what is going on
22:45:54 <truebrain> also means that if a player plays the game for 7 weeks
22:46:05 <truebrain> it is also encounted for (instead of counted once, it is counted for those 7 weeks)
22:46:25 <truebrain> but that means that per setting I need to count how long that value was there
22:46:36 <truebrain> which makes it a bit tricky for a sane database design
22:46:44 <truebrain> other than one huge table with all settings and their possible values
22:47:07 <truebrain> and ofc you kinda also want to see changes over time, I am guessing, per version of the game
22:47:13 <truebrain> yet another dimension ๐
22:48:22 <truebrain> haha, random survey result here: ticks: 0, seconds: 2146
22:48:31 <truebrain> so someone is sitting in this game, paused ๐
22:48:58 <_glx_> "build on pause" active ?
22:49:15 <truebrain> doubtful; no infra created
22:49:42 <truebrain> and no, not a network game
22:50:30 <_glx_> yeah could have been a server with no active player (but you ruled that out)
22:50:57 <truebrain> so tempted to split that into PBS / blocked signals ๐
22:59:12 <locosage> truebrain: might have been me
22:59:14 <truebrain> hmm ... okay, Cloudflare D1 (an SQLite database managed by Cloudflare) would be somewhat expensive for this. Too bad, it is also a very practical solution ๐
22:59:45 <_jgr_> I expect a lot of people leave the game in the background paused when doing something else rather than exiting and starting it again
22:59:54 <locosage> I'm running master 24/7 for testing bonkygfx so it's mostly paused
23:00:09 <truebrain> _jgr_: yeah .. that is why I also track the ticks
23:00:45 <truebrain> I should also have added the autosave timer .. that one continues when you build while paused ๐
23:01:02 <locosage> though do master surveys even count?
23:02:03 <truebrain> I guess however we slice it, it is never completely "fair" .. there are always these cases where we either under-represent or over-represent information
23:02:10 <truebrain> but hopefully in the big numbers that will even out
23:02:22 <truebrain> it is not meant to be an exact science ofc; just an indication
23:03:22 <_glx_> self built doesn't have survey key
23:03:42 <truebrain> okay ... I have an idea how to make something sensible out of this, mostly by using GitHub Actions to do the heavy lifting ๐
23:03:54 <truebrain> just means I really need to create a script that keeps those awake for more than 60 days ๐
23:04:29 <_glx_> and not rely on me noticing they are disabled ?
23:05:41 <truebrain> every day, fetch the results of the day before, gzip them, store them for safe-keeping (saves a LOT of storage). Every week, analyze the week before. Report per `revision`, each key, their values, and how much seconds and ticks they were active. Store this as JSON in a "result" branch on the repository. Create a simple frontend that fetches the JSON and puts it in a table to click through
23:07:04 <truebrain> maybe over time aggregate it again over a month and over a year
23:07:12 <truebrain> but that can be done based on those JSONs, as no actual information is lost
23:07:29 <truebrain> something to put together tomorrow ๐
23:09:16 <locosage> truebrain: can count player actions (commands) in addition to ticks/seconds
23:10:43 <_glx_> hmm that's not in the survey result
23:10:57 <_glx_> openttd doesn't count that
23:12:34 <_jgr_> Commands might be useful so long as GS/script commands were separated out or not included
23:13:01 <truebrain> Hmm, I kinda also want to keep track of: if this setting was set, these other 12 were also set
23:13:11 <truebrain> But that really requires a vector database
23:13:48 <truebrain> Weight of a vector can be the time played, I guess ..
23:13:53 <_glx_> non default values may be important too
23:14:31 <truebrain> _glx_: Deliberately that is not stored, as we can just look that up if we want to know: what isn't default ๐
23:14:51 <truebrain> We know the exact version after all ๐
23:15:35 <_glx_> I know it's not stored ๐
23:15:53 <truebrain> Okay, let's start small, and grow from there .. so many options ๐
23:26:36 *** keikoz has quit IRC (Ping timeout: 480 seconds)
23:46:52 <peter1138[d]> Start big, end small.
23:53:14 <Rubidium> peter1138: freed char*s for SetDParamStr shouldn't generally be an issue for another string, as the parameter should be overwritten. For GameScripts I can imagine that you reset the whole StringParameters after formatting, and if it happens outside of GS strings that sounds like a missing SetDParam(Str) somewhere.
23:55:17 <Rubidium> that is assuming that the char* stays alive until the actual GetString has been done, and if you can't really guarantee that: SetDParamStr(x, std::string(char*)) of std::move if it is a string
23:58:30 <_glx_> Rubidium: it is when copying to backup
23:58:59 <_glx_> from _global_string_params
continue to next day โต