Times are UTC Toggle Colours
02:08:15 *** Beer has quit IRC 02:31:01 *** Flygon has joined #openttd 02:38:15 *** Wormnest has quit IRC 03:28:36 *** glx has quit IRC 04:38:32 *** Gustavo6046 has quit IRC 04:39:11 *** Gustavo6046 has joined #openttd 04:44:13 *** snail_UES_ has quit IRC 04:53:33 *** Gustavo6046_ has joined #openttd 04:57:36 *** Gustavo6046 has quit IRC 04:57:36 *** Gustavo6046_ is now known as Gustavo6046 05:21:45 *** andythenorth has joined #openttd 05:49:02 *** andythenorth has quit IRC 05:55:12 *** andythenorth has joined #openttd 06:20:57 *** andythenorth has quit IRC 06:27:21 *** andythenorth has joined #openttd 06:45:43 *** HerzogDeXtEr has joined #openttd 07:26:22 *** y2kboy23_ has quit IRC 07:26:39 *** y2kboy23 has joined #openttd 07:38:37 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9333: Codechange: merge guiflags and flags in settings .ini files https://git.io/JGKeH 07:38:38 <TrueBrain> now easier to review :P 07:40:20 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9335: Codechange: make [Save|Load]Settings() behave more like other Save/Load code https://git.io/JGKBm 08:05:10 *** sla_ro|master has joined #openttd 08:06:26 *** y2kboy23 has quit IRC 08:13:44 *** y2kboy23 has joined #openttd 08:28:06 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd 08:42:09 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd 08:48:32 *** nielsm has joined #openttd 08:59:11 <TrueBrain> fun fact, we always store 256 subsidies in a savegame 08:59:14 <TrueBrain> even if they are all 0 :) 09:00:05 <andythenorth> super! 09:00:12 <andythenorth> hmm 09:00:34 <peter1138> I went to get more coffee and only came back with a biscoff... 09:00:36 <andythenorth> when we make ships like planes (1 extra cargo in a fake vehicle), that will need savegame bump? :D 09:00:43 <andythenorth> pax + mail in ships when? 09:00:59 <peter1138> Have you made a PR for it? 09:01:34 <andythenorth> yes, but it's invisible 09:01:39 <andythenorth> possibly imaginary also 09:01:56 <andythenorth> if you imagine reviewing and merging it 09:02:01 <andythenorth> I can imagine playing the game with it 09:02:11 <andythenorth> imaginary features, much less overhead 09:02:33 <peter1138> Also: splitting a ship up into multiple parts to help with sprite sorting. 09:02:52 <peter1138> (Locks might be fun) 09:04:22 <andythenorth> bendy ships 09:04:33 <peter1138> :/ 09:04:43 *** namad7 has quit IRC 09:05:01 <peter1138> if you put all parts in the same location and just use sprite offsets to move the, er, sprites... might be actually work. 09:05:02 <TrueBrain> ah, no, subsidies is not a sparse array 09:05:04 <peter1138> -be 09:05:12 <TrueBrain> so it adds 0-entries up till the last valid index 09:05:13 <andythenorth> -be 09:05:14 <TrueBrain> that is just silly :P 09:05:22 <andythenorth> is -be the new 'goes it throw out'? 09:05:26 <andythenorth> shorter 09:05:54 <peter1138> Just google how to change your name. 09:06:12 *** andythenorth is now known as andythesouth 09:06:33 *** andythesouth is now known as andythenorth 09:06:54 <peter1138> Never Eat Shredded Wheat. 09:07:31 <andythenorth> SOHCAHTOA 09:11:46 <SpComb> raising elephants is so utterly boring 09:26:15 <TrueBrain> with only access to the savegame, not knowing which savegame version or any of the other details of how the chunk is stored, I can now load it and produce this (small snippet): 09:26:16 <TrueBrain> https://gist.github.com/TrueBrain/1be3d5348f5360df05cbd384974c1d16 09:32:36 <peter1138> key is stored? 09:34:52 <TrueBrain> yup 09:35:06 <TrueBrain> solves so many issues :P 09:46:44 *** EER has joined #openttd 09:49:35 <_dp_> TrueBrain, how would it handle setting renames? 09:50:07 <TrueBrain> that is a question with very little context .. for a viewer, that is rather irrelevant 09:50:32 <TrueBrain> as on a savegame itself, "rename" has no meaning 09:53:48 <_dp_> is game still parsing them by index? 09:54:09 <TrueBrain> your head is somewhere, but you forgot to take us along 09:54:33 <TrueBrain> I was talking about being able to load a savegame and showing information from it 09:54:40 <_dp_> yeah, catching up to it myself... 09:55:22 <_dp_> viewing is nice but it's one thing to know how it's called and another what it means :p 09:55:40 <_dp_> serverstat for example https://citymania.org/tools/serverstat 09:55:52 <_dp_> it can use key to get the name but it can't merge them if it's renamed 09:58:31 <_dp_> also was curious whether the game itself uses those key names for parsing settings in any way 09:58:43 <_dp_> when loading savegames 09:59:20 <TrueBrain> this is https://github.com/OpenTTD/OpenTTD/pull/9322 10:00:33 <_dp_> I was hoping for tldr xD 10:00:57 <TrueBrain> read the description? 10:01:35 <TrueBrain> I mean, it is like 5 sentences 10:06:38 <_dp_> description doesn't really answer the renaming question... 10:06:50 <_dp_> or rather it does but probably in a wrong way 10:07:04 <_dp_> as old setting would be unknown and ignored 10:09:48 <_dp_> also I don't see types in compat arrays, that feels wrong 10:10:00 <andythenorth> element.io: very very much more confusing than irc or discord 10:10:03 <Xaroth> feature request for your serverstat thing; showing the _default_ value, so it's easier to identify what settings are non-standard 10:10:09 <peter1138> "How is renaming of a setting key handled?" 10:10:17 <Xaroth> and maybe blacklist some settings like generation_seed 10:10:23 <_dp_> Xaroth, done, default is the blue one 10:10:58 <Xaroth> that... is somewhat unclear, but good. 10:11:55 <peter1138> Hmm, I've got a paused savegame that I can't unpause. 10:12:10 <TrueBrain> peter1138: do I want to know how you managed to do that? :D 10:12:14 <_dp_> gs paused? 10:12:20 <_dp_> pause have several flags 10:12:44 <peter1138> ^ probably this, yes. GameScript paused on server, game saved, GameScript not present locally. 10:13:21 <peter1138> I guess manual pause should be allowed in this case. 10:14:05 <TrueBrain> it survives a save/load? Lolz 10:14:07 <TrueBrain> that is funny :) 10:15:47 <Xaroth> You'd expect that manual intervention would override an automated process :P 10:29:01 <Rubidium> I'd expect, as maker of a GameScript that if I pause the game for some good reason the player cannot unpause it, as that would break my functionality 10:30:07 <Xaroth> Or, possibly, try to pause again if the user unpauses, after showing an appropriate warning message explaining _why_ it was paused? 10:30:09 <Rubidium> similarly, if I were to join a server with min-players = 1 as spectator and then do rcon unpause, should that server then be unpaused? And what if I then leave, how would others know that I unpaused the game manually? 10:30:50 <Rubidium> or will the others start filing bug reports that autopause on too few players does not work anymore 10:31:09 <Xaroth> Doesn't autopause clearly advertise that it is pausing because a lack of players? 10:31:24 <Xaroth> and can min-players be changed during runtime? iirc it can 10:31:31 <Xaroth> so the user remains in control. 10:32:05 <Xaroth> the user decides that the game should be paused when there is not at least X players, the game clearly informs the user it is pausing because of this reason 10:32:18 <Xaroth> so the user can then change the min-players setting, effectively unpausing the game. 10:32:34 <Xaroth> so that leaves the same scenario 10:33:29 <Xaroth> so yes, I _personally_ think that the user should have a way to overcome a pause. 10:34:27 <Xaroth> after all, it's the user that is playing the game, not the GS. 10:34:39 <Rubidium> won't resetting/restarting the game script solve it? 10:35:04 <peter1138> No. There is no gamescript currently active. 10:40:00 <peter1138> gamelog doesn't mention which gamescript was in use. 10:40:19 <peter1138> Hmm, maybe I saved since. 10:41:10 <peter1138> Ah no, the version change is just from loading it. 10:42:04 <andythenorth> ok element.io is officially shite 10:42:20 <andythenorth> do I have to get Slack? I really don't want Slack, something about it gives me the Twitch 10:42:56 <Xaroth> I use slack on a daily basis, it's not _that_ bad 10:43:30 <Xaroth> good collaboration capabilities as well 10:43:41 <Xaroth> you can invite external people and they only have access to the channels you define 10:43:47 <Xaroth> and the people they share channels with 10:45:02 <andythenorth> I don't know what my objection to Slack is 10:45:14 <andythenorth> hard to explain, it's like some aesthetic issue 10:45:34 <Xaroth> Be glad it's not HipChat 10:45:47 <andythenorth> I really just want Discord for Businesss 10:45:55 <andythenorth> I thought element.io was a discord clone 10:46:08 <andythenorth> but it's not, it's weird and broken and fundamentally unusable 10:46:17 <Xaroth> heh 10:46:45 <Xaroth> I prefer discord in terms of ease of use, but I wouldn't use it for business stuff 10:46:56 <Xaroth> it doesn't have enough tools to manage it properly 10:47:51 <andythenorth> too many issues 10:47:55 <andythenorth> data security 10:48:00 <andythenorth> etc 10:49:25 <Xaroth> if you want to self-host there's mattermost, and rocket.chat iirc 10:49:33 <peter1138> IRC works quite well. 10:50:20 <andythenorth> irc is winningest 10:50:22 <Xaroth> If you work with a lot of tech-savvy people, yes 10:50:35 <andythenorth> but hosting an irc server is dull AF 10:50:42 <andythenorth> but irc is best 10:51:50 <peter1138> We switched from "shouting across the room" to Microsoft Teams. 10:51:55 <FLHerne> Matrix clients that aren't Element exist 10:52:00 <FLHerne> (but they all seem to suck) 10:52:12 <LordAro> Xaroth: (corpsethumb) 10:52:42 <Xaroth> I think I missed something important. 10:52:48 <LordAro> hipchat 10:52:53 <Xaroth> ah, yeah, no 10:53:13 <Xaroth> I'm _really_ glad I no longer have to deal with that thing 11:03:22 <LordAro> it was fine as a user 11:03:27 <LordAro> no different to any of the others 11:03:37 <LordAro> but a main tonactually administer 11:04:45 <LordAro> pain to actually* 11:52:48 *** nielsm has quit IRC 11:58:10 *** EER_ has joined #openttd 12:02:16 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #9289: Change: Shortcut varaction chains for callbacks. https://git.io/JsHuK 12:02:23 *** EER has quit IRC 12:24:40 *** Samu has joined #openttd 12:27:44 <TrueBrain> I did something really goofy: https://github.com/TrueBrain/OpenTTD-savegame-reader 12:27:53 <TrueBrain> it has an interactive CLI to look at the savegame 12:27:57 <TrueBrain> frosch123 might like it :) 12:31:13 <TrueBrain> now with example image in the readme :) 13:01:33 *** snail_UES_ has joined #openttd 13:02:41 <Rubidium> s/gui/tui/? 13:06:25 <Rubidium> the image looks nice though ;) 13:48:48 *** glx has joined #openttd 13:48:48 *** ChanServ sets mode: +v glx 14:08:01 *** sla_ro|master has quit IRC 14:36:30 <andythenorth> hot tub time? 15:03:36 <Xaroth> Is that an invitation? 15:12:27 <andythenorth> solo 15:12:32 <andythenorth> hut tubs are solitary places 15:49:40 *** Progman has joined #openttd 16:04:21 <Xaroth> That really depends on the company. 16:28:15 <andythenorth> lol element.io has a feature to show if user is offline or not 16:28:41 <andythenorth> but it can't be enabled on the server because it has an unacceptable performance impact 16:28:56 <andythenorth> but they left the feature in the client UI 16:29:02 <andythenorth> so it just shows 'offline' for everyone 16:29:33 <andythenorth> I really wanted to like element.io, and pay them money for not being Slack 16:29:40 <andythenorth> but it really isn't very good at all 16:29:50 * andythenorth so off-topic 16:30:58 <andythenorth> I sell a SaaS with a huge engineering backlog, so they have sympathy 16:31:12 <andythenorth> but it really just is weirdly broken, and full of configuration stuff 16:31:32 <andythenorth> like ... for enterprise, why would I want my users to decide if they're encrypting a conversation on a per-conversation basis? 16:40:14 *** frosch123 has joined #openttd 16:49:03 <Rubidium> moin frosch123; the bad news of SLE_CHAR is that it can't be removed due to the file format of an array of 128+ elements differs from a string. Though SLE_CHAR/SLE_VAR_CHAR is just SLE_INT8/SLE_VAR_I8 so old data could still be converted if you cut out the intermediate shortcuts 16:50:29 <Rubidium> with a savegame bump you can change the new saves to use strings, but that won't help with loading the old saves and it would add extra complexity to the load function 16:59:16 *** Flygon has quit IRC 17:01:23 *** EER has joined #openttd 17:06:38 *** EER_ has quit IRC 17:10:14 <frosch123> meh :/ 17:10:18 <frosch123> but thanks for looking into it 17:11:04 <Rubidium> renaming it will work though, and likely prevent further misuse of it 17:11:37 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #9336: Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the save game https://git.io/JGDIR 17:12:28 <Rubidium> as a script, is your integer being truncated from i64 to i32 and then back to i64 expected/wanted for a saveload cycle? 17:12:52 <Rubidium> SQInteger is 64 bits, but we only save 32 bits of that... 17:13:39 <frosch123> i thought everything was serialised to json :p 17:13:53 <frosch123> but maybe that is just for strings and their parameters 17:15:01 <Rubidium> json is only used for the admin communication 17:18:47 *** Gustavo6046 has quit IRC 17:36:07 *** Gustavo6046 has joined #openttd 17:48:49 *** Tulitomaatti has quit IRC 17:50:06 <TrueBrain> Rubidium: you removed SQ64 from Squirrel, so .... was that question to yourself? :D :D 17:54:53 <frosch123> silicon valley needs 64bit integers for cargomasks (since there are 64 cargos). but i don't think those are stored in savegames 17:57:05 <TrueBrain> pretty sure that if what he says is true, it is a bug :P Squirrel used to be this weird hybrid between 32bit and 64bit depending on your OS :) 17:57:12 <TrueBrain> but these days it is fully 64bit 17:58:00 <glx> seems it always been 32bit for saves 17:59:28 <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg opened issue #9337: Pressing a station name in the station list doesn't move you to the correct station https://git.io/JGDBu 18:02:52 <DorpsGek> [OpenTTD/team] osprinkis opened issue #225: [lv_LV] Translator access request https://git.io/JGDRD 18:03:56 *** y2kboy23 has quit IRC 18:04:56 <TrueBrain> frosch123: and, do you like my new toy? :D At least shows the headers are stored in a format that is easily readable by other tools :) 18:05:04 <TrueBrain> and that is works ... and contains sane data .. 18:05:05 <TrueBrain> :D 18:05:21 *** y2kboy23 has joined #openttd 18:05:43 <frosch123> i did not try it yet, but the presence of a tui surprised me for sure :) 18:05:45 *** y2kboy23 has quit IRC 18:05:58 <TrueBrain> it was just begging for it :P 18:06:04 <TrueBrain> worst part, the "--export-json" I made as final addition 18:06:10 <TrueBrain> as I thought you would appreciate that touch :P 18:06:27 <TrueBrain> took me forever to figure out how to work with ncursus in a sane way on Python 18:06:35 <TrueBrain> I (kinda randomly) picked urwid 18:06:43 <TrueBrain> but .. ugh .. what a nightmare to get it doing what I wanted it to :D 18:07:06 <frosch123> next time we need to diff savegames, we can run a json diff on it :) 18:07:17 <TrueBrain> it also clearly shows I really need to either change GS to a RIFF or change the chunk itself 18:08:03 <TrueBrain> there are surprisingly few RIFFs, and most really can be changed into a TABLE 18:08:06 <TrueBrain> so that is promising :) 18:08:14 <TrueBrain> but this is going to take a while to convert them all ... :P 18:08:30 <TrueBrain> with a lot of small PRs to address local issues 18:09:08 *** y2kboy23 has joined #openttd 18:09:11 <TrueBrain> stuff like https://github.com/OpenTTD/OpenTTD/pull/9322/commits/70ad64b5b14c1ec409509a7e3ea809899e9842fb :P 18:09:45 <TrueBrain> splitsing FileType from MemType into two variables still is best .. such a weird code to deal with it now 18:09:46 *** Wormnest has joined #openttd 18:14:21 *** sla_ro|master has joined #openttd 18:19:18 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #9336: Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the save game https://git.io/JGD21 19:03:21 *** Compu has joined #openttd 19:07:36 *** gelignite has joined #openttd 19:23:44 <V453000> Could trains please have their own curve speed bonus in the vehicle properties? Something like tilt, but with more than 0/1? 19:23:53 <V453000> That would solve all of my issues 19:24:13 <V453000> I'm trying to implement an alternative solution in NUTS, but I'm just getting deeper and deeper into really stupid solutions 19:31:43 *** jottyfan has joined #openttd 19:34:08 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #9336: Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the save game https://git.io/JGDjv 19:54:01 *** virtualrandomnumber has joined #openttd 19:58:11 *** virtualrandomnumber has quit IRC 20:11:45 <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://git.io/JGymY 20:11:46 <DorpsGek> - Update: Translations from eints (by translators) 20:14:56 *** gelignite has quit IRC 20:34:09 *** EER has quit IRC 20:37:14 *** tokai|noir has joined #openttd 20:37:14 *** ChanServ sets mode: +v tokai|noir 20:44:09 *** tokai has quit IRC 20:57:54 <DorpsGek> [OpenTTD/BaNaNaS] frosch123 opened pull request #100: Change: migrate OpenTTD user V453000 to GitHub user V453000 https://git.io/JGy0G 20:57:59 <frosch123> must be an imposter 20:58:11 <glx> haha 20:58:41 <frosch123> the real one would have posted on IRC, not via forums :) 20:59:34 <DorpsGek> [OpenTTD/team] frosch123 commented on issue #225: [lv_LV] Translator access request https://git.io/JGDRD 20:59:46 <frosch123> another one who signed up to github just for us 21:01:28 <DorpsGek> [OpenTTD/BaNaNaS] TrueBrain merged pull request #100: Change: migrate OpenTTD user V453000 to GitHub user V453000 https://git.io/JGy0G 21:01:32 <frosch123> 43.7% packages, 25.7% users migrated 21:01:43 <frosch123> similar numbers as the vaccination progress :p 21:01:53 <V453000> writing a forum message was actually surprisingly difficult for me :P 21:01:54 <TrueBrain> I hope it doesn't follow the same curve :P 21:01:56 <V453000> thanks! 21:03:23 <frosch123> oh, hey, V was PR #100 21:03:38 <V453000> can't be a coincidence 21:03:40 <TrueBrain> PARTY! 21:03:41 <TrueBrain> at his house? 21:03:46 <TrueBrain> can we just raid his house and have a party? 21:03:47 <TrueBrain> yes? 21:03:57 <V453000> it's not a raid if I give you permission 21:03:59 <V453000> so go ahead 21:04:00 <V453000> G_G 21:04:02 <frosch123> i think pm has been at his house before 21:04:06 <TrueBrain> yeah, that is no fun 21:04:07 <V453000> nope 21:04:12 <V453000> and I don't have a house 21:04:14 <V453000> ;( 21:04:20 <TrueBrain> you want me to draw you a house? 21:04:22 <TrueBrain> won't be pretty 21:04:22 <frosch123> and i have been at some other party organized by V 21:04:25 <TrueBrain> but at least means you have a house 21:04:38 <V453000> was factorio 1M sales party 21:04:42 <TrueBrain> wait, you guys having secret parties and don't invite me? 21:04:44 <TrueBrain> LAME! 21:04:57 <frosch123> i didn't even pay 21:05:03 <V453000> VIP yo 21:05:05 <TrueBrain> as with all good parties 21:05:16 <TrueBrain> did you get your moneys worth? 21:05:22 <frosch123> when the girls at the entrance did not find me on the guest list, i just told them to look at the other list :p 21:05:30 <frosch123> worked 21:05:33 <TrueBrain> :D lol 21:05:43 <frosch123> even got a t-shirt 21:05:53 <TrueBrain> fake news! 21:06:02 <V453000> christ, the website is asking me so many difficult questions, License, project website. Do you think I remember these things? :D Musa at least had it from last time :P 21:06:10 <V453000> :D 21:06:28 <V453000> I wonder if you were on the other list or they just feared your might 21:06:29 <frosch123> V453000: upload the file first, then it will prefill most stuff 21:06:37 <V453000> I did, it hasn't? :D 21:06:49 <TrueBrain> press the autofill button 21:06:51 <V453000> oh 21:06:58 <V453000> told you I'm a good test of idiot proofness 21:07:00 <TrueBrain> if you know a good UX/UIer, let us know :) 21:07:26 <frosch123> though at this point "good" means "actually deliver something" :p 21:07:26 <V453000> no it's a problem somewhere else 21:07:39 <TrueBrain> frosch123: haha, yeah, we should lower that bar 21:08:33 <frosch123> V453000: https://bananas.openttd.org/package/newgrf/48410101 <- anyway, you were unsure about licenses before :p 21:08:53 <TrueBrain> lolz 21:08:54 <V453000> not surprising at all XD 21:09:05 <TrueBrain> "for this version, I am going with .... 21:09:16 <TrueBrain> those tags .. lol 21:09:36 <V453000> more tags = more video views 21:09:39 <frosch123> i think V only came it second for "most tags" though 21:09:40 <V453000> rules the world 21:09:46 <V453000> XD 21:09:47 <V453000> oh 21:09:55 <TrueBrain> frosch123: don't give him ideas please 21:10:02 <V453000> hm does a grf with only replace and replacenew blocks have a minimum version? 21:10:19 <frosch123> all nml grfs have minimum 1.2 21:10:44 <TrueBrain> ugh, adding headers to all the chunks is boring and slow 21:10:48 <TrueBrain> takes ~3 minutes per chunk 21:10:54 <TrueBrain> there are 79 21:11:00 <TrueBrain> kill me, kill me now :P 21:11:28 <TrueBrain> well, no, I rather have you don't, but what-ever 21:11:45 <V453000> well, lets see how hard did I fuck up 21:11:48 <V453000> publishing 21:12:10 <frosch123> also, it's party time anyway. i quite my previous job 2 years ago (filed the notice) 21:12:18 <V453000> dam 21:12:29 <TrueBrain> -e, I assume :) 21:12:31 <V453000> BTW is there a way to see download numbers? 21:12:40 <frosch123> nope 21:12:45 <V453000> bbut 21:13:11 <frosch123> you only see the aws invoices 21:13:22 <TrueBrain> available after payment, ofc 21:13:44 <TrueBrain> "Broken savegame - Table chunk without header" 21:13:46 <TrueBrain> I BROKE SOMETHING 21:13:57 <V453000> TB's price is? 21:14:24 <TrueBrain> for you? 2 euros 21:14:27 <TrueBrain> for frosch123 ? 5 euros 21:14:32 <V453000> XD 21:14:35 <frosch123> why? 21:14:43 <TrueBrain> rng 21:14:45 <V453000> that's not 3 euros frosch 21:14:47 <frosch123> do i need to invade? 21:14:47 <V453000> that's 250% 21:14:50 <V453000> 250%. 21:15:04 <TrueBrain> it is nothing personal 21:15:05 <TrueBrain> I think 21:15:28 <frosch123> next time use a D100 21:15:51 <TrueBrain> wtf is CargoMonitor 21:15:54 <TrueBrain> and why isn't it in my savegame 21:16:01 <frosch123> you need a gs for that 21:16:07 <frosch123> use nocargoal or siliconvalley 21:16:19 <frosch123> it's a thing to allow gs to track cargo flow 21:16:24 <TrueBrain> ah .. it stores the header 21:16:26 <TrueBrain> but there are no indexees 21:16:32 <TrueBrain> so my savegame-reader doesn't "see" it 21:17:36 <TrueBrain> so I clicked nocargoal 21:17:36 <TrueBrain> downloaded it 21:17:37 <TrueBrain> it reloaded newgrfs 21:17:41 <TrueBrain> nocargoal not selected 21:17:42 <frosch123> V453000: 2 euros won't cut it in the long run. we need a rich wife for tb, so he can continue to work on ottd 21:17:42 <TrueBrain> right 21:17:50 <V453000> LOL 21:18:03 <TrueBrain> finally applied for a job last week 21:18:10 <TrueBrain> so that might come to an end soon :P 21:18:15 <V453000> :d 21:19:03 <V453000> well I've replaced mainly installing any games for working on newgrfs recently, luckily it's not really hurting my productive time so far 21:19:08 <V453000> but we all know how obsession goes 21:22:50 *** Samu has quit IRC 21:30:59 <Timberwolf> I would try that, except it turns out merely having OpenTTD and OpenRCT installed is enough to swallow all of my free time if I let it. 21:31:26 <V453000> I've got RCT classic on the ipad, so it's kind of making me not want to play it on a PC 21:32:26 <V453000> I've had it since like 2018 and I'm still not through all of the scenarios, it's ridiculous 21:32:46 <Timberwolf> I have the tablet version, it's weird playing without a mouse for me. 21:33:13 <V453000> I was actually shocked to find how great RCT is for touch controls 21:33:14 <Timberwolf> tbf, I had RCT2 since it came out and I only finished all of the scenarios this year :) 21:33:30 <Timberwolf> Oh yes, the RCT-engine games are way better for it. 21:33:45 <V453000> RCT2 is incredible in many ways, esp the height view feature 21:34:05 <V453000> OpenRCT2* 21:34:12 <V453000> but the classic version is great for me 21:34:59 <frosch123> i only heard about larger maps 21:35:02 <frosch123> what is height view? 21:35:07 <Timberwolf> I like that they're still at the stage of having `void ec78b3d() { /* does something with how much guests are willing to pay with shop items, I think */ ... }` in their code. 21:35:19 <V453000> you can basically hide objects under and above some height 21:35:23 <V453000> so you get like a slice 21:35:36 <frosch123> oh, i saw that, i assumed it was normal rct :p 21:35:37 <Timberwolf> When did the last of those disappear from OpenTTD? :) 21:35:41 * frosch123 never played rct 21:35:45 <V453000> I think that's exactly what RCT needs, sometimes things just draw on top of each other and with busy parks you can't see them in any rotation 21:36:49 <frosch123> Timberwolf: i cleaned up the names of the sound enum this year 21:36:57 <frosch123> some of the names were completely off 21:37:41 *** sla_ro|master has quit IRC 21:37:48 <Timberwolf> Oh yes... I mainly know it from the road vehicle sounds being not what you'd expect. 21:37:58 <frosch123> but the last big chunk of "remove this unknown code" was when the old ai was deleted 21:38:04 <Timberwolf> Well. I guess they are now. 21:38:14 <Timberwolf> Heh. 21:38:37 <Timberwolf> I theorise that Chris Saywer's asm source has, "I don't know what this does" comments in it when it comes to the AI :) 21:39:30 <frosch123> Timberwolf: actually, look at the original map generator 21:39:39 <frosch123> lot's of it looks like translated from asm 21:39:57 <frosch123> "z = 1 + (((x ^ 0xF) + (y ^ 0xF)) >> 1);" <- stuff like that 21:40:08 <Timberwolf> I think there's an interview somewhere where he talks about this in relation to RCT, about not being good enough at AI to make the peeps navigate intelligently within the performance constraints, then realising it was more realistic that they did stupid things and got lost. 21:40:48 <glx> <Timberwolf> I like that they're still at the stage of having `void ec78b3d() { /* does something with how much guests are willing to pay with shop items, I think */ ... }` in their code. <-- opendune was similar in begining 21:41:14 <TrueBrain> but we fixed them all \o/ 21:43:08 *** tokai has joined #openttd 21:43:08 *** ChanServ sets mode: +v tokai 21:46:55 *** jottyfan has quit IRC 21:50:12 *** tokai|noir has quit IRC 21:52:01 <TrueBrain> Broken savegame - Invalid chunk size 21:52:11 <TrueBrain> right, the smallest things can blow up the saveload stuff 21:52:14 <TrueBrain> without real indication why :P 21:53:02 <glx> yeah it's easy to break, and can be on save (and impossible to load) or on load only 21:54:14 <TrueBrain> owh ... found the issue .. hmm .. interesting 21:57:00 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store table header for each chunk in savegame https://git.io/JGlmd 21:57:03 <TrueBrain> right .. 4 more files done ... sssllllooowwwwww 21:57:11 <TrueBrain> and now figuring out why the reader is failing 21:58:41 <andythenorth> how can I force 1 instance of an industry type into every town on the map? 21:58:54 <andythenorth> it has been explained to me why this cannot be done with GS 21:59:28 <andythenorth> I thought I could abuse the probability callback, but I can't find a var for number of towns 21:59:29 <frosch123> you cannot force it in 100% of all cases 21:59:40 <frosch123> otherwise water towers would do that in tropic 21:59:55 <glx> you can limit to 1 per town, but can't force to have 1 in each 22:00:08 <andythenorth> there must be a way 22:00:15 <andythenorth> probability callback 22:01:04 * andythenorth thinks there must be some 80+ var for number of towns 22:02:13 <frosch123> why would there? 22:02:53 <TrueBrain> build_date: 16777229 22:02:56 <TrueBrain> I think that is wrong :P 22:03:28 <andythenorth> 'must' as in 'andy probably just looked in the wrong place' not 'is a requirement' 22:03:39 <frosch123> @calc 16777229 / 74 / 365 22:03:39 <DorpsGek> frosch123: 621.1487967419474 22:04:15 <frosch123> yeah, that is neither days nor ticks 22:05:34 <TrueBrain> SLE_CONDVAR(Depot, build_date, SLE_INT32, SLV_142, SL_MAX_VERSION), 22:05:41 <TrueBrain> maybe that gives you a hint what is wrong :P 22:05:54 <andythenorth> hmm no towns count var anywhere obvious 22:06:02 <andythenorth> oh dear :) 22:06:04 <TrueBrain> @base 10 16 16777229 22:06:05 <DorpsGek> TrueBrain: 100000D 22:06:19 <frosch123> TrueBrain: oh, right: network order 22:06:43 <frosch123> ottd savegames are big endian, right? 22:06:51 <TrueBrain> they are 22:06:55 <TrueBrain> and I am doing that part correct 22:07:11 <andythenorth> oh I don't need to know the town count 22:07:16 <TrueBrain> but why is build_date a signed variable, I wonder .. 22:07:24 <andythenorth> I just need to know if 'this' town has the specific industry 22:07:43 <andythenorth> maybe 22:07:45 <TrueBrain> ah, "Date" is int32 22:08:20 <frosch123> so, it's days since year 0 22:08:30 <frosch123> @calc 16777229 / 365.25 22:08:31 <DorpsGek> frosch123: 45933.549623545514 22:08:39 <frosch123> pretty far in the future 22:08:49 <TrueBrain> not sure if it is this savegame, as it is really old 22:08:52 <TrueBrain> or my reader 22:09:01 <TrueBrain> but .. it is acting weird as fuck :P 22:09:33 <frosch123> what does "land info" say in game? 22:10:09 <frosch123> you can use "scrollto <tileindex>" in the console to fnid it 22:10:22 <TrueBrain> 6th Aug 2390 vor 16777229 22:10:46 <TrueBrain> same date for 13 22:11:01 <TrueBrain> I think something is not working as expected in my Python reader or something :D 22:14:10 <TrueBrain> @base 10 16 503316661 22:14:10 <DorpsGek> TrueBrain: 1E0000B5 22:14:17 <TrueBrain> @base 10 16 50331661 22:14:17 <DorpsGek> TrueBrain: 300000D 22:14:29 <TrueBrain> hmm .. pretty sure reading doesn't do what I expect it to do :P 22:15:53 <TrueBrain> ah .. SL_REF 22:15:59 <frosch123> there are a lot of 00 in the middle 22:16:11 <frosch123> maybe you are off by some bytes 22:16:13 <TrueBrain> yeah, those 00s are the name of the depot 22:16:20 <TrueBrain> and I write the wrong info about an SL_REF 22:16:54 <TrueBrain> as VarFileType() returns a value for SL_REF 22:16:56 <TrueBrain> that is not correct 22:17:00 <TrueBrain> SHOCKER 22:18:37 <glx> SL_REF needs AfterLoad, no ? 22:19:20 *** andythenorth has quit IRC 22:19:24 <frosch123> no, but there are two chunk handlers. one which reads the index from the save and stores it in the pointer 22:19:34 <frosch123> and one which replaced the index with the pointer 22:22:04 <TrueBrain> so the reader is useful \o/ 22:22:22 <TrueBrain> from OpenTTD's perspective it was all dandy 22:22:29 <TrueBrain> just reading the file via Python was .. impossible :P 22:24:18 <TrueBrain> build_date: 873147 22:24:24 <TrueBrain> @calc 873147 / 365.25 22:24:24 <DorpsGek> TrueBrain: 2390.5462012320327 22:24:31 <TrueBrain> that is what it tells me ingame too 22:24:37 <TrueBrain> what is a bit odd .. they all have the same date 22:24:51 <TrueBrain> but what-ever, not my problem :) 22:24:56 <frosch123> you said it was a old savegame 22:25:03 <frosch123> maybe it started without a depot date 22:25:07 <TrueBrain> possible 22:25:18 <TrueBrain> funny, there is an entry in one of the chunks with "!dummy trains" 22:25:19 <TrueBrain> :) 22:26:02 <frosch123> depot name? 22:26:18 <TrueBrain> no, GRPS chunk 22:26:31 <frosch123> coop are those people who put "!" in front of names, to sort them first 22:26:36 <TrueBrain> Groups 22:26:39 <TrueBrain> so yeah, coop name thing 22:27:53 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store table header for each chunk in savegame https://git.io/JGlmd 22:27:59 <TrueBrain> right, that fixes depots :) 22:28:05 <TrueBrain> you can now look at depots via the Python app :D 22:28:42 <TrueBrain> next I should port this to WASM and allow you to upload your savegame, right? :D 22:28:52 <TrueBrain> 11 / 79 done 22:28:55 <TrueBrain> ugh, that number is depressing 22:30:20 <frosch123> replace the scenario editor with it 22:30:28 <TrueBrain> haha 22:30:36 <TrueBrain> "YOU are in control" :D 22:30:46 *** tokai|noir has joined #openttd 22:30:46 *** ChanServ sets mode: +v tokai|noir 22:30:58 <TrueBrain> I wonder if there is a sane form to make map-chunks easier to read 22:30:59 <TrueBrain> but they are so bit-stuffed 22:31:12 <frosch123> hmm, i guess there is no obvious way to store in the table, which pool a SL_REF references 22:31:39 <frosch123> i guess there isn't even an obvious way which chunk contains which pool :p 22:31:53 <TrueBrain> :) 22:32:01 <frosch123> TrueBrain: the schema would need to contain the bitfields :) 22:32:18 <TrueBrain> frosch123: if only that was possible :P 22:32:20 <frosch123> we discussed that before, because afterload moves some bitfields multiple times 22:32:29 <frosch123> and it is really hard to not mess up that conversion 22:32:41 <TrueBrain> but what a bitfield means depends on another bitfield 22:32:44 <frosch123> so it would be better if all of them would only be moved once 22:32:44 <TrueBrain> sometimes in another chunk :P 22:35:45 <frosch123> hmm, yeah, we need to figure out a way to delete the map array then 22:35:51 <TrueBrain> JSON? :P 22:36:01 <frosch123> usually you say yaml 22:36:05 <TrueBrain> I have been wondering about that, well, not JSON, but .. 22:36:12 <TrueBrain> the map array in memory can be bitstuffed like this 22:36:14 <TrueBrain> I really do not care 22:36:17 <TrueBrain> but on disk, we don't have to 22:36:22 <TrueBrain> it just takes more space 22:36:42 <TrueBrain> so yeah, you could apply some schemas to it, depending on the savegame version 22:36:45 <TrueBrain> assigning meaning to bits 22:36:48 <frosch123> well, autosave should be fast 22:36:57 <frosch123> or at least not pause the game long 22:37:08 <TrueBrain> so remove 4k as valid dimension? :D 22:37:21 *** tokai has quit IRC 22:37:30 <glx> it's easier to directly write memory to file 22:37:45 <frosch123> glx: but we don't even do that 22:37:59 <frosch123> m1, m2, m3 ... are stored separtely in file 22:38:03 <frosch123> but interleaved in memory 22:38:12 <frosch123> (i think) 22:38:19 <TrueBrain> we don't use memcpy 22:38:21 <TrueBrain> lets keep it at that :P 22:38:54 <TrueBrain> glx: in that mindset, we could just as well memcpy all objects to disk 22:38:55 <TrueBrain> very fast 22:39:03 <TrueBrain> just ... a complete nightmare for backwards compatibility :) 22:39:45 <peter1138> This is some mighty fine rabbit hole you've got yourself into. 22:39:46 <TrueBrain> I think in the end these conversations always come back to the realisation that our _m storage just sucks :P 22:39:57 <frosch123> hmm, i guess, if you would store the maparray as table, you would have a sparse table for each tiletype 22:40:16 <frosch123> train station tiles, road station tiles, finished industry tiles, unfinished industry tiles, .. 22:40:21 <frosch123> alls the messy details :p 22:40:28 <glx> hey at least it's not a union 22:40:53 <TrueBrain> frosch123: if only it was that easy :P 22:41:00 <frosch123> hmm, i forgot, can unions have member functions meanwhile? 22:41:11 <TrueBrain> { 'M3LO', Save_MAP3, Load_MAP3, nullptr, nullptr, CH_RIFF }, 22:41:11 <TrueBrain> { 'M3HI', Save_MAP4, Load_MAP4, nullptr, nullptr, CH_RIFF }, 22:41:16 <TrueBrain> I love those details :P 22:41:21 <frosch123> we can make the _m a union with private members and then put all mapaccessors into it 22:42:03 <TrueBrain> but okay .. I first have ~30 easy chunks to convert 22:42:16 <TrueBrain> after that I can change some RIFFs into TABLEs too 22:42:27 <TrueBrain> and then I am done with it, and we merge the PR :P 22:42:43 <TrueBrain> I need to find a nice way to have lists in tables 22:43:51 <glx> merge all m arrays into an array of tile struct 22:43:54 <frosch123> oh, looks like unions could have non-virtual member functions since forever 22:44:09 *** tokai|noir has quit IRC 22:44:13 <LordAro> frosch123: the tricky bit is packing the union so it stays the correct size 22:44:23 <LordAro> i played around with the idea before 22:44:26 <_dp_> array of struct may be bad for performance and compression 22:44:35 <LordAro> pragma pack didn't seem to do anything 22:44:59 <TrueBrain> is the correct size important? 22:45:15 <frosch123> LordAro: i guess bitfields are still implementation-defined 22:45:41 <TrueBrain> I mean, as long as we save/load is correct to what-ever is in memory 22:45:43 <TrueBrain> it should be fine, not? 22:45:50 <LordAro> hmm, perhaps 22:46:00 <LordAro> other than cache misses and all that 22:46:07 <LordAro> as _dp_ says 22:46:22 <TrueBrain> do we want to compress memory now? :P 22:46:38 *** tokai has joined #openttd 22:46:38 *** ChanServ sets mode: +v tokai 22:46:55 <TrueBrain> and I would wonder if cache misses really is a problem, or at least: a bigger or smaller problem 22:47:06 <TrueBrain> as I think our map access is rather random anyway 22:47:12 <TrueBrain> our tileloops are jumping around like a mad man :P 22:47:33 <TrueBrain> ofc the union should not be 32 bytes instead of 1 :D 22:47:37 <frosch123> the idea was that all the loop-over-all-tiles things would access stuff that fits into the cache at the same time 22:47:59 <TrueBrain> what cache are we talking about exactly, sorry? 22:48:01 <_dp_> arrange tiles in memory in tile loop order xD 22:48:07 <frosch123> TrueBrain: L2 cache 22:48:20 <glx> even for 4K maps ? 22:48:21 <frosch123> but it's big nowadays :p 22:48:22 <TrueBrain> and "the idea was", the idea CS had? 22:48:40 <TrueBrain> as building a game in a way that it favours L2 cache is ... difficult, I would argue :) 22:48:55 <frosch123> TrueBrain: the point of _m and _me is, that sizeof(_m[0]) is a power of two 22:48:59 <TrueBrain> especially with stupid CPUs without L2 cache, but that is childish :P 22:49:09 <frosch123> so there are no zeros for alignment 22:49:22 <frosch123> and _m can fit into L2, while _me is accessed rarely 22:49:33 <TrueBrain> can it really fit into the L2? :D 22:49:43 <TrueBrain> especially on modern PCs, I always wonder if that is the case 22:49:50 <TrueBrain> in the old days you had a bit more control over it ofc 22:50:13 <glx> with all the threads now 22:50:37 <frosch123> TrueBrain: sorry, i meant L3 :) 22:50:53 <TrueBrain> ah, okay, that shifts the story a bit :P 22:50:58 <TrueBrain> power-of-two alignment, I can get 22:51:03 <TrueBrain> but that is more about alignment of your memory 22:51:24 <TrueBrain> most RAMs are still read in pages 22:51:32 <TrueBrain> not really power-of-two, ofc, but who is counting 22:51:39 <frosch123> the compiler would align it anyway, but fill it up with zeros 22:51:40 <TrueBrain> (well, they are, but meh) 22:51:56 <TrueBrain> yeah, so you don't want to waste cache-lines .. I just wonder if that still matters on modern machines 22:52:09 <TrueBrain> if our TileLoop would be 0..N 22:52:13 <TrueBrain> I could get behind that 22:52:16 <TrueBrain> but .... we are weird :P 22:52:17 <frosch123> if a struct contains a uint32 and is 9 bytes in total, the compiler will put it into 12 bytes 22:52:30 <frosch123> so that the uint32 is aligned in array of that struct 22:53:24 <TrueBrain> don't compilers align to the dword boundary? 22:53:26 <LordAro> something something premature optimisation something something 22:53:38 <frosch123> TrueBrain: they align to the biggest alignment requirement of a member 22:53:54 <TrueBrain> owh, I remember the CPUs that didn't allow misaligned memory access 22:53:56 <TrueBrain> the fun days ... 22:54:39 <TrueBrain> Either way, if my memory serves me correct, it used to be a huge thing, how we arranged our _m and _me 22:54:46 <frosch123> afaik it's still better in modern cpu 22:54:48 <TrueBrain> but I do wonder how much impact there is these days 22:55:05 <TrueBrain> aligned memory access is always faster, I believe so too yes :) 22:56:08 <glx> yeah alignment still matters I think 22:56:24 <TrueBrain> especially vars that are aligned over a boundary, are just brrrrr 22:57:03 <TrueBrain> anyway, might just be worth profiling again in this modern day and age, to see what _m and _me do exactly in terms of performance 22:57:30 <frosch123> measurement is always good :) 22:58:03 <frosch123> i guess it's enough to add some dummy members to _m, just to make it bigger 22:58:13 <frosch123> no need to shift everything around for profiling 22:58:35 <TrueBrain> just towards what do you benchmark 22:58:56 <TrueBrain> the "slow" games we have is not because of map access :D 22:59:10 <TrueBrain> and the fast games are .. well ... fast :P 22:59:42 <glx> it's all because newgrf and pbs ;) 22:59:48 <TrueBrain> and we don't care about sequential access, as we rarely do that 22:59:53 <glx> and signals 23:00:19 <glx> and ships pathfinding 23:01:24 <frosch123> TrueBrain: don't underestimate the tileloop 23:01:37 <glx> plural ;) 23:01:39 <frosch123> it takes ages to check whether a tile needs to build fences/hedges to the next one 23:01:57 <TrueBrain> frosch123: I am not; I am wondering how we would benchmark it :) 23:02:04 <TrueBrain> as there is a lot of noise 23:02:19 <frosch123> i suggest to use a 1kx1k map, resonable amount of stuff on it, no newgrf 23:02:32 <glx> no autosave either 23:02:48 <frosch123> you could also try a pure-water, a pure-clean-land and a pure-trees map 23:03:08 <TrueBrain> how did this became a "you" and not a "we" :P 23:03:38 <frosch123> "you" can also mean "someone" 23:03:52 <glx> the famous "somebody" 23:03:59 <frosch123> but you are the only one who did something this week 23:04:13 <frosch123> hmm, maybe rb did something as well 23:04:22 <frosch123> i certainly didn't :p 23:04:35 <glx> I did minor stuff only 23:05:27 <TrueBrain> we are also low on contributors :P 23:06:05 <TrueBrain> funny, Tile has a static_assert to validate its size 23:06:09 <TrueBrain> but TileExtended doesn't 23:06:55 <TrueBrain> https://github.com/OpenTTD/OpenTTD/blob/master/src/map_type.h#L72 23:06:56 <TrueBrain> wth?! 23:07:28 <TrueBrain> used twice 23:07:31 <TrueBrain> npf-only 23:07:42 <TrueBrain> that comment is in so many ways wrong :P 23:07:49 <frosch123> i guess it's so you can write "a * STRAIGHT_TRACK_LENGTH" 23:07:55 <frosch123> and it will do the mul before the div 23:08:22 <TrueBrain> despite what it does .. that comment ist just priceless 23:08:53 <frosch123> yeah, it reads like a conversation between at least 3 people 23:09:02 <frosch123> kind of like when 3 people use @say 23:09:50 <TrueBrain> anyway, started a 1kx1k game with -g -G0 and default terrain settings, with 8-byte Tile -> 1440us per RunTileLoop iterator 23:09:52 <TrueBrain> added 4 bytes 23:09:53 <TrueBrain> same 23:10:32 <TrueBrain> added 28 bytes 23:10:32 <TrueBrain> same 23:10:35 <TrueBrain> but .. debug build :P 23:10:59 <TrueBrain> owh, no, after a few iterations, 28 bytes becomes slightly slow 23:11:04 <TrueBrain> 1600us per iteration 23:11:07 <glx> debug build so already bigger because memory guards everywhere 23:11:28 <TrueBrain> release-builds just take FOR EVER to build 23:11:31 <TrueBrain> well, link 23:15:09 <TrueBrain> still linking 23:15:30 <TrueBrain> seriously, is the linker installed on Mars? 23:15:51 <TrueBrain> OpenTTD/src/settings.cpp:2137:1: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 23:15:52 <TrueBrain> nice :D 23:16:40 <TrueBrain> ~250us for current code .. lol 23:16:45 <TrueBrain> 6 times faster, nice :D 23:17:17 <glx> keep current exe somewhere, to not have to rebuild 23:17:33 <TrueBrain> exe? What are you, a Windows developer? OMG :P 23:17:35 <TrueBrain> :D 23:20:32 <TrueBrain> ~270us with 4 bytes extra 23:21:16 <TrueBrain> just to show how much time is spend in debug-code :P 23:21:53 <TrueBrain> it is funny, with _m we are always worried about performance 23:22:12 <TrueBrain> but in 1.11 we made some changes to the video driver that blew fastforward so fast, we couldn't track it 23:22:18 <frosch123> in one of the recent msvc versions, ms advertised that they made debug builds faster by deleting lots of assertion-like things from the stdlib :p 23:22:37 <TrueBrain> lol; really? Does that make debug builds faster? MS smart! 23:23:45 <frosch123> i remembered the statement because it confused me. i thought they meant "compilation time" instead of "run time performance" 23:23:56 <TrueBrain> with 28 bytes extra it is ~330us 23:24:18 <glx> more visible in release build then 23:24:57 <frosch123> TrueBrain: how much does 4kx4k impact? 23:25:08 <TrueBrain> do you have any idea how much time it takes to recompile this? :P 23:25:17 <frosch123> just use the same build 23:25:24 <TrueBrain> I need at least 2 :) 23:25:27 <frosch123> 1kx1k vs 4kx4k 23:25:28 <glx> no need to recompile to change map size 23:25:44 <frosch123> the claim would be that it is more than 16x slower 23:25:46 <TrueBrain> glx: no shit :P 23:26:20 <glx> (that's why I suggested to backup exe) 23:26:32 <TrueBrain> anyway, 10% for 4bytes already kinda surprises me .. I expected a lot less 23:26:40 <TrueBrain> glx: I know, but I am way too lazy for that shit :) 23:26:57 <TrueBrain> well, it is 10% for doubling the size, I guess 23:27:13 <TrueBrain> @calc 80 / 28 23:27:13 <DorpsGek> TrueBrain: 2.857142857142857 23:27:23 <TrueBrain> about 3us per byte 23:28:08 <TrueBrain> generating a 4k map .. this will take a while :P 23:28:41 <TrueBrain> mainly the waiting for the function to loop 10 times the full map completely 23:29:01 <glx> and the townnames 23:29:02 <TrueBrain> 5500, give or take 23:29:09 <TrueBrain> @calc 330 * 16 23:29:09 <DorpsGek> TrueBrain: 5280 23:29:26 <TrueBrain> [2021-06-05 01:29:13] dbg: [misc] [RunTileLoop] 13986764 us [avg: 5463.6 us] 23:29:26 <TrueBrain> [2021-06-05 01:29:13] dbg: [misc] [StateGameLoop] 15716385 us [avg: 6139.2 us] 23:29:37 <TrueBrain> vs 23:29:38 <TrueBrain> [2021-06-05 01:27:45] dbg: [misc] [RunTileLoop] 927493 us [avg: 362.3 us] 23:29:38 <TrueBrain> [2021-06-05 01:27:45] dbg: [misc] [StateGameLoop] 1001331 us [avg: 391.1 us] 23:29:51 <TrueBrain> give or take some noise 23:30:28 <TrueBrain> @calc 360 / 390 23:30:28 <DorpsGek> TrueBrain: 0.9230769230769231 23:30:31 <frosch123> so it's faster? 23:30:37 <TrueBrain> @calc 5463 / 6139 23:30:37 <DorpsGek> TrueBrain: 0.889884345984688 23:30:54 <TrueBrain> frosch123: faster than? 23:31:08 <frosch123> @calc 5463.6 / 16 23:31:08 <DorpsGek> frosch123: 341.475 23:31:13 <frosch123> that is less than 362.3 23:31:18 <TrueBrain> yeah, as I said, minus some noise 23:31:20 <TrueBrain> it was ~330 23:31:29 <frosch123> ok :) 23:31:50 <TrueBrain> so ballpark, it is a multiplier of 16 23:32:10 <TrueBrain> these numbers are small enough that measurement issues are a big part of it too 23:32:20 <frosch123> so, we can stop all bitpacking and just use 32bytes per tile? :p 23:32:45 <TrueBrain> well, I was trying 36 bytes .. I was planning on 32, but I cannot count :P 23:32:59 <TrueBrain> I would like to see a game that is impacted by this in a noticeable way 23:33:19 <TrueBrain> sure, early game, FF will be slower 23:33:23 <TrueBrain> but we went from 1000x to 1000000x 23:33:27 <TrueBrain> so ... euh .. yeah .. 23:33:40 <TrueBrain> and late-game, I cannot imagine map-access is the issue 23:33:45 <TrueBrain> but, I can be completely wrong 23:33:45 <TrueBrain> ofc 23:34:02 <TrueBrain> [2021-06-05 01:33:56] dbg: [misc] [RunTileLoop] 11838267 us [avg: 4624.3 us] 23:34:02 <TrueBrain> [2021-06-05 01:33:56] dbg: [misc] [StateGameLoop] 13672344 us [avg: 5340.8 us] 23:34:06 <TrueBrain> without the extra 28 bytes 23:34:13 <TrueBrain> @calc 5463 / 4624 23:34:13 <glx> late game is slowed down by vehicles, not map I think 23:34:13 <DorpsGek> TrueBrain: 1.1814446366782008 23:34:22 <TrueBrain> 18% slower on 4kx4k for RunTileLoop 23:37:00 <TrueBrain> okay, let me collapse _me into _m, see what that does 23:37:42 *** HerzogDeXtEr has quit IRC 23:38:05 <TrueBrain> surprisingly easy to make that change 23:38:13 <TrueBrain> if you don't mind a nice "#define _me _m" :P 23:40:52 <TrueBrain> I ... removed the TICC/TOCCs .. 23:40:53 <TrueBrain> lol 23:41:08 <TrueBrain> guess I have to wait again on the LTO .. 23:41:37 <glx> of course, it's more fun that way ;) 23:41:50 <TrueBrain> I was like: either this is crazy slow, or I did something wrong 23:41:51 <TrueBrain> the latter 23:41:55 <TrueBrain> 100% absolutely the latter :) 23:43:32 <TrueBrain> 3 minutes ... seriously .. unplayable, this LTO game 23:44:59 <TrueBrain> [2021-06-05 01:44:48] dbg: [misc] [RunTileLoop] 13508528 us [avg: 5276.8 us] 23:45:00 <TrueBrain> [2021-06-05 01:44:48] dbg: [misc] [StateGameLoop] 15146048 us [avg: 5916.4 us] 23:45:02 <TrueBrain> that is a bit weird :P 23:45:27 <TrueBrain> ugh, it bounces around a lot more 23:45:41 <TrueBrain> [2021-06-05 01:45:33] dbg: [misc] [RunTileLoop] 12957398 us [avg: 5061.5 us] 23:45:41 <TrueBrain> [2021-06-05 01:45:33] dbg: [misc] [StateGameLoop] 14537540 us [avg: 5678.7 us] 23:45:43 <TrueBrain> seems a more fair value 23:46:46 <TrueBrain> anyway, that was fun. Now zzzz, and tomorrow more saveload chunk conversions \o/ 23:47:45 <frosch123> night 23:47:48 *** frosch123 has quit IRC