IRC logs for #openttd on OFTC at 2019-04-14
⏴ go to previous day
00:04:21 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7073: Feature: Generate lock ready rivers upon world generation https://git.io/fhuqz
00:17:04 *** Supercheese has joined #openttd
00:33:18 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7502: Feature: Allow or disallow large aeroplanes to land on airports with short runways https://git.io/fjqQu
00:35:30 *** ChanServ sets mode: +v tokai
00:39:02 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7193: Fix #6468: Load correct version of AI as specified during the time of its save. https://git.io/fhHI1
01:19:09 *** Progman_ has joined #openttd
01:23:34 *** Progman_ is now known as Progman
01:25:18 <DorpsGek_II> [OpenTTD/OpenTTD] SamuXarick updated pull request #7190: Fix #7188: AI instance crash when reloading AI in a server. https://git.io/fh9jW
01:26:00 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 opened pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0B
01:29:56 <DorpsGek_II> [OpenTTD/OpenTTD] michicc commented on pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0R
01:35:49 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 commented on pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0E
01:42:33 <Samu> I had a QSortT trouble today
01:42:59 <Samu> so that's also to be replaced, interesting
01:51:57 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 updated pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0B
01:54:20 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 commented on pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0w
01:57:40 <Artea> there is an american spamming the hell outta of servers query
01:59:17 <Artea> it should have a timer to avoid spamming
02:36:37 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 updated pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0B
03:01:54 <Eddi|zuHause> Artea: just ban the IP?
03:03:23 <Samu> happens each time someone clicks "Find Server"
03:04:40 <Samu> you set up newgrfs on your server...
03:05:54 <Samu> btw, I just rebased (road-bridges-store-town-indexes-in-map-array) if there was still an interest in that
03:06:38 <Samu> probably there still is, but not from me
03:14:14 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 updated pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0B
04:42:26 *** Wormnest has joined #openttd
04:47:28 *** Supercheese has joined #openttd
08:21:24 *** andythenorth has joined #openttd
08:43:32 *** tycoondemon has joined #openttd
08:44:07 <andythenorth> 142 identical spritesheet templates in Horse, twice
08:44:31 *** sla_ro|master has joined #openttd
08:44:35 <andythenorth> wonder if conolidating makes it compile faster
09:14:06 *** sla_ro|master has joined #openttd
09:25:25 *** Progman has joined #openttd
09:38:51 *** argoneus has joined #openttd
09:45:21 *** andythenorth has joined #openttd
09:47:33 *** argoneus has joined #openttd
10:03:59 *** chomwitt has joined #openttd
10:47:16 <DorpsGek_II> [OpenTTD/website] TrueBrain commented on pull request #82: Discussion basis for rework of the general HTML structure and the CSS rules https://git.io/fjmgO
10:50:29 <DorpsGek_II> [OpenTTD/website] andythenorth commented on pull request #82: Discussion basis for rework of the general HTML structure and the CSS rules https://git.io/fjmgZ
10:52:45 <TrueBrain> NML even reprocesses all the images
10:53:44 <andythenorth> that's how it can detect white, animated pixels etc
10:53:51 <andythenorth> compress the bounding boxes
10:58:37 <TrueBrain> is there an example NML for houses?
10:59:09 <DorpsGek_II> [OpenTTD/OpenTTD] YJSoft opened issue #7511: Strings not loaded correctly on CJK Windows version below RS5 https://git.io/fjmgB
11:01:21 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on issue #7511: Strings not loaded correctly on CJK Windows version below RS5 https://git.io/fjmg0
11:12:46 <Artea> how can Airports expire ?
11:15:30 <nielsm> you mean airport types become obsolete so you can't build the type any longer?
11:15:47 <nielsm> that has always been in the game
11:15:58 <Artea> that would be small airports
11:18:14 <Artea> I wonder how many years needs to small airports expire
11:18:36 <Artea> because last time I checked, 2070 and some years still have small airports
11:18:55 <nielsm> modern small airports don't become obsolete
11:19:23 <nielsm> the old small airport becomes obsolete at a specific year
11:20:21 <Artea> I think most don't use old classic vehicles anymore
11:20:40 <nielsm> what are you even talking about?
11:21:03 <Artea> my brain is getting blank
11:22:03 <nielsm> old small airport is until 1959
11:22:25 <nielsm> modern small airport (commuter) becomes available in 1983
11:22:33 <Artea> that's why we dont see in my server
11:22:36 <nielsm> (is there really such a long gap with no small airports?)
11:22:57 <Artea> my server starts at 1984
11:23:46 <Artea> at least now with FISH by andy
11:23:54 <Artea> have more ships to choose
11:24:04 <Artea> but still, speed bugs me
11:29:07 <Artea> how can I get a full openttd.cfg ?
11:29:42 <Artea> there is options on GUI I can't find in console / openttd.cfg in wiki
11:31:35 <nielsm> note that it's not "described" as in actual explanation of them
11:31:47 <nielsm> but that's the file used to generate the code that reads and writes openttd.cfg
11:32:16 <andythenorth> Artea: ships are a tradeoff
11:32:27 <andythenorth> they are slow, but they have ~infinite capacity per tile
11:32:33 <andythenorth> unlike other transport types
11:36:22 <andythenorth> Artea: if you want to fix silly airport dates, use OpenGFX+ Airports grf
11:38:08 <Artea> already using in dedicated server
11:39:09 <Artea> how to send money to other companies ?
11:39:38 <nielsm> open the client list (companies button)
11:39:50 <nielsm> and click the player controlling the company you want to send to
11:42:16 <Artea> should have a button on company
11:43:36 <Artea> now AroAI is going to pump up
11:43:47 <Artea> changed number of road vehicles
11:44:27 <TrueBrain> "Your code has been rated at 1.11/10"
11:52:14 <andythenorth> not many seaplanes :)
11:58:47 <nielsm> hmm... the "can only be built near edges of the map" condition for oil refineries does not scale with map size
11:58:52 *** gelignite has joined #openttd
12:12:09 <Artea> 2 airplanes made me pay my 700k euros loan
12:20:52 <TrueBrain> not sure what to think of it myself, but you have to start somewhere
12:21:34 <TrueBrain> typing in Python is always a bit off
12:32:23 <andythenorth> TrueBrain it makes complete sense conceptually
12:32:48 * andythenorth must to go out for a bit
12:36:30 <TrueBrain> on top of that I also have some boilerplating to make type checkers happy btw
13:43:50 *** andythenorth has joined #openttd
13:59:15 *** Gustavo6046 has joined #openttd
14:05:43 <TrueBrain> andythenorth: now you implement something in similar syntax yes yes? :P
14:07:59 <milek7> why python? it is annoying for embedding
14:11:21 <andythenorth> TrueBrain: eh what now? :)
14:11:26 <andythenorth> do we have a repo? :P
14:11:40 <TrueBrain> I just want to know what kind of ideas you would have
14:11:48 <TrueBrain> to find out what is important and what is not
14:12:55 <andythenorth> is it best if I just ignore all existing GS / newgrf possibilities (and limitations)?
14:12:55 <TrueBrain> anything you would like to do that I currently didn't add in some form in the example, basically :)
14:13:57 <andythenorth> hmm the town probably needs to know if it has enough cheese
14:15:04 <TrueBrain> made the gist a bit easier on the eye
14:19:47 <TrueBrain> and updated again with some yumminess :)
14:26:23 <milek7> YUMMINESS is modified externally by others, or why does it needs to be loaded every time?
14:26:34 *** frosch123 has joined #openttd
14:26:51 <TrueBrain> milek7: these Python objects are stateless
14:28:24 <milek7> it cannot be stateful? it'll be cumbersome to push all data through those load/store
14:32:27 <milek7> or it is stateless because it still GRF in disguise?
14:32:50 <TrueBrain> updated, better event system
14:34:47 <TrueBrain> how far to go with GUI stuff .. hmm
14:39:50 <TrueBrain> added first draft for client<->server communication
14:45:25 <TrueBrain> bi-directional communication, including an if-case
14:48:04 <andythenorth> - is there sufficient water in this town?
14:48:20 <andythenorth> - is there natural gas under the ground in this town?
14:48:38 <TrueBrain> is water per house?
14:48:45 <TrueBrain> and if there is enough water, what then?
14:48:48 <TrueBrain> and if there isn't, what then?
14:48:52 <TrueBrain> don't make me do all the work plz
14:49:02 <TrueBrain> open your editor, copy/paste my Python, and butcher it :P
14:49:20 <andythenorth> I need someone to bounce ideas off, mine are like 30%
14:49:20 <TrueBrain> I don't need ideas; I need to know if we canmake things look pretty and still workable ;)
14:49:24 <andythenorth> watch some TV :)
14:49:37 <andythenorth> where is Eddi|zuHause?
14:50:05 <TrueBrain> Python type hinting suuuccckkkkssss
14:52:53 <TrueBrain> okay, updated, this should work fine now
14:53:07 <TrueBrain> that should allow enough freedom in GUI
14:55:09 <andythenorth> all state is via registers?
14:55:16 <TrueBrain> reload, now 'storage'
14:55:31 <andythenorth> registers can have arbitrary contents?
14:55:47 <TrueBrain> no; primitives only
14:55:53 <TrueBrain> at least .. the size has to be known
14:56:50 <TrueBrain> owh, and it is persistent
14:56:54 <TrueBrain> there is no 'temporary' one
14:58:04 <TrueBrain> another update; you now have 'town.api' to talk via API
14:58:11 <TrueBrain> I think this is more clear/readable now
15:01:16 <andythenorth> yeah storage got clearer too
15:02:01 <TrueBrain> so you have onEventNNN, which is triggered on event (async), you have onHookNNN, which is called to get a response (sync), you have NNN.api to call API functions, NNN.storage to store information, and some NNN.MMM to give access to things like parents
15:02:12 <TrueBrain> owh, and onCommand for Server/Client
15:02:37 <andythenorth> I am just going to make some crap up and you can lol at it
15:03:12 <milek7> why actions BRIBE/GROW is not just another event?
15:05:25 <TrueBrain> I think this is an easier abstraction
15:08:13 <TrueBrain> and added purpose to the actions
15:10:52 <TrueBrain> and now you can disable it with a reason :D
15:12:01 <TrueBrain> milek7: basically, actions are defined by the mod author; events are defined by the API
15:12:17 <TrueBrain> but cleaned up actions some more
15:18:11 <TrueBrain> I am fiddling to increase readability :D
15:18:20 <Xaroth> you forgot a ', andythenorth.
15:18:57 <andythenorth> that won't compile
15:20:42 <TrueBrain> I am copy/pasting it anyway :)
15:20:57 <TrueBrain> what do you mean with onEventPeriodicLoop ?
15:21:01 <TrueBrain> how does it differ from onTick?
15:24:13 <TrueBrain> okay, added a timer
15:26:30 <TrueBrain> andythenorth: onEventGlobalIndustryCreation <- onEvent cannot return values
15:26:36 <TrueBrain> so I guess you wanted a hook here, where you can prevert it?
15:28:51 <TrueBrain> okay, most things are indeed easy to do .. the industry satisfaction level is a bit more tricky
15:29:28 <andythenorth> I made some assumptions about there being industry satisfaction levels, managed internally by the industry
15:29:32 <andythenorth> and town can just read them
15:29:56 <andythenorth> added a cargo demand function
15:31:52 <TrueBrain> butchered industry thingy a bit,as I dont want to touch industries for now :)
15:32:09 <andythenorth> the electricity is a deliberately tricksy example, it's not a produced cargo
15:32:14 <andythenorth> as it can't be transported
15:32:57 <TrueBrain> I understand; something for another day tbh :)
15:33:05 <TrueBrain> sounds like a property for cargo :P
15:33:32 <TrueBrain> what is 'local price'?
15:33:34 <TrueBrain> isn't it just price?
15:33:52 <andythenorth> preferably specific to this town
15:34:05 <andythenorth> might be tracked in storages, but ideally it would be added to the game :P
15:34:35 <andythenorth> again, I'm being tricksy
15:35:07 <TrueBrain> I was hoping as much :)
15:35:14 * andythenorth trying to figure out how to do 'this town is locked for company x until certain conditions are met'
15:35:29 <TrueBrain> I am trying to balance a clear structure vs ease of use
15:35:36 <TrueBrain> I like what you did with cargo, but it is also unclear when something is an action
15:35:51 <andythenorth> yeah, I just blatted it out
15:36:05 <andythenorth> it's much easier to assume you'll rewrite it 100%
15:36:32 <andythenorth> specifically, in I want to show this town is locked (per company) until at least one neighbouring town is happy (per company)
15:36:46 * andythenorth thinks about that
15:37:03 <andythenorth> probably on tick
15:37:12 <TrueBrain> give me a sec to clean up my example
15:37:15 <TrueBrain> so you can work from there again
15:37:41 <andythenorth> might need an onPlayerAction event or something
15:38:09 <andythenorth> still no eddi? o_O
15:38:14 <andythenorth> Eddi|zuHause where are you :)
15:38:42 <TrueBrain> I am not sure yet how to do cats
15:38:57 <TrueBrain> for now I pushed it in the local storage
15:39:51 <TrueBrain> I like the 'class Event' and 'class hook'
15:40:01 <TrueBrain> but event.town.storage ... it gets so long
15:40:50 <TrueBrain> hook.house.town.api
15:45:30 * andythenorth tries to work out how to have the town set the RoadType
15:45:50 <andythenorth> NRT needs tech levels for roadtypes :P
15:46:11 <andythenorth> yeah can't figure that one out, moving on :P
15:46:25 <TrueBrain> we can revisit these things later :)
15:50:41 <TrueBrain> well, no, this is not correct, from a gameplay point of view
15:51:36 <TrueBrain> there we go, cats now work
15:52:03 <TrueBrain> always xmas, how cute
15:52:28 <andythenorth> it's like an Easter Egg
15:52:32 <andythenorth> but Christmas Egg
15:53:31 <andythenorth> yeah so the 'unlock the town' thing I can't think of a clean way
15:53:40 <andythenorth> I await inspiration :P
15:53:42 <TrueBrain> let me think in a bit
15:53:54 <TrueBrain> first let me make your zone example exuctable :)
15:56:03 <TrueBrain> okay, I am now starting to push what will be possible .. but that is okay
15:56:49 <andythenorth> FWIW, christmas can already be done in newgrf, it's not a new feature, just a silly one
15:59:02 <TrueBrain> andythenorth: but you can now do it per zone :P
15:59:28 <andythenorth> newgrf can do sprites on arbitrary conditions, but we don't need to know that :P
15:59:39 * andythenorth trying 'rubbish' cargo
15:59:52 <andythenorth> town is PISSED if you don't transport enough rubbish away
16:00:12 <TrueBrain> okay, a bit more realistic xmas implementation now
16:00:21 <TrueBrain> Zones need more thinking I notice :)
16:00:41 <TrueBrain> owh, I am being silly
16:02:05 <TrueBrain> okay, this is better
16:03:41 <andythenorth> my assumption is that somehow town.api.ProducedCargos sums all the possible production in (some period??) for town houses and local industries
16:04:23 <andythenorth> possible / actual /s
16:05:31 <TrueBrain> made timers declerative
16:06:17 <milek7> removed bezels, made canvas fullpage and switched to 32bpp mode
16:09:36 <TrueBrain> andythenorth: updated my example :)
16:10:04 <TrueBrain> milek7: toob ad the mouse can escape :)
16:10:45 <TrueBrain> I like this way of defining timers
16:11:29 <TrueBrain> event.house.town.storage.MY_HOUSE_LOCATION <- longer and longer :D
16:11:54 <Samu> why is cherry-pick so stupid :( i thought the feature would pick the entire commits from a branch, not just the last of it
16:13:50 <nielsm> cherry-pick picks a single commit
16:13:59 <nielsm> if you want more than one commit you need to name all the commits
16:14:35 <TrueBrain> andythenorth: this "example" got pretty big already :P
16:14:46 <Samu> but i right clicked the branch
16:15:03 <LordAro> technically speaking, a branch is a single commit
16:15:14 <LordAro> that just happens to have a load of other commits preceding it
16:15:42 <LordAro> i might suggest that it's a limitation of whatever UI you're using though
16:16:44 <TrueBrain> always nice if people make things more confusing by wanting to be STRICTLY correct :P
16:18:19 <andythenorth> TrueBrain: yeah I do like those timers
16:18:40 <andythenorth> one of my worries was that it would be hard to encapsulate concerns cleanly
16:19:18 <TrueBrain> that gives me an idea
16:19:33 <LordAro> TrueBrain: is this python stuff "a new syntax for NML", or "embedding python in OTTD"?
16:19:51 <TrueBrain> its a way to make mods for OpenTTD
16:20:04 <LordAro> embedding python is ..hard
16:20:16 <LordAro> and we do already have squirrel
16:20:40 <TrueBrain> did you read the URL? Or did you just start assuming some more? :)
16:21:07 <LordAro> - Single "higher level" language, which compiles everything to something OpenTTD can digest. For example: Python
16:21:29 <TrueBrain> so lets break down that sentence: "something OpenTTD can digest" .. so .. that is currently NFO and Squirrel
16:21:35 <TrueBrain> "compiles everything" .. so it is a compiler
16:21:37 <LordAro> which doesn't necessarily mean embedding python, i'll grant you
16:21:55 <andythenorth> I assume it will all be done when I get back
16:22:42 <TrueBrain> LordAro: we were spinning a bit about it last night .. basically, it needs to be a language that supports typing
16:22:57 <TrueBrain> what ever happens after that higher-level language is for me not my current priority :)
16:23:01 <TrueBrain> those are solvable things
16:23:51 <nielsm> as long as you don't invent something that requires solving the halting problem!
16:24:11 <TrueBrain> "as long as you don't invent something"
16:24:14 <TrueBrain> I stopped reading after that :P
16:26:18 *** Wormnest has joined #openttd
16:26:44 <TrueBrain> nielsm: more seriously, all these functions will have the demand that they are solvable and halt
16:27:03 <TrueBrain> so it doesn't require solving the halting problem as much as it demands it halts
16:27:08 <TrueBrain> (which is not really solving it, tbh)
16:27:25 <TrueBrain> so the control flow will be restricted etc
16:28:44 <TrueBrain> for industry in event.town.api.GetIndustries():
16:28:44 <TrueBrain> amount = industry.api.GetProduction(Cargo.ELECTRICITY)
16:28:47 <TrueBrain> I am fine with these loops
16:28:49 <TrueBrain> but we know they end
16:28:55 <TrueBrain> so some control flow is allowed
16:33:07 <LordAro> how do you determine if the loops end?
16:33:09 <milek7> for i in range(10000000): if not real_condition(): break; do_something()
16:33:41 <TrueBrain> LordAro: that is honestly pretty easy
16:33:45 <TrueBrain> but lets get there when we get there
16:33:55 <LordAro> that's not an answer :p
16:34:01 <LordAro> are you going to ban range?
16:34:09 <TrueBrain> yeah, we can focus completely on a single thing
16:34:17 <TrueBrain> or we can just first see how we want to write mods
16:34:19 <Xaroth> Isn't that also a bit of a non-issue? if people write crappy loops, the code will perform crappy.
16:34:19 <TrueBrain> and take it from there
16:34:26 <TrueBrain> and have a bit of faith that I am an awesome programmer ;)
16:34:34 <Xaroth> so the incentive to not write crappy loops is there :P
16:34:41 <TrueBrain> (I would like to be creative today, and not talk for hours about a single part of the implementation :D)
16:35:01 <TrueBrain> so I rather hear what you think of the example
16:35:03 <TrueBrain> what you would like to see
16:35:24 <LordAro> Xaroth: the ability for 3rd parties to run arbitrary code that hangs is a DoS, which is generally rather important when you have server/client architectures
16:35:52 <TrueBrain> andythenorth: I think I did something that increases readability
16:36:31 <TrueBrain> not sure if I can do hooks like this
16:36:39 <TrueBrain> if two subclasses define the same hook .. what happens
16:36:44 <TrueBrain> possibly not helping readability
16:45:09 <TrueBrain> okay, solved that pretty clean I think
17:09:10 <Corns> hi - is there a function that converts a Point to a TileIndex?
17:10:23 <Corns> yay thanks it, thank you
17:10:42 <Corns> actually I think TileVirtXY is what I need
17:11:30 <Samu> milek7, how's the 240 ais?
17:11:40 <Samu> erm, companies, but for me they're all gonna be ais :p
17:14:58 <frosch123> TrueBrain: what does that code do?
17:15:11 <frosch123> is "storage" something that is automatically stored in savegames?
17:15:16 <Samu> what i'm more excited about is testing the self adjusting max opcodes with that many AIs running
17:15:25 <frosch123> i would expect some simliar defintion for "commands"
17:15:49 <frosch123> which you can then schedule for execution, and to which you can subscribe for upon execution
17:15:53 <DorpsGek_II> [OpenTTD/OpenTTD] michicc commented on pull request #7248: Change: Group processing of vehicle ticks by type of vehicle. This allows use of PerformanceCounter instead of PerformanceAccumulator. https://git.io/fjmrN
17:16:35 <frosch123> i guess both of the storage and the commands imply "storage per town" and "command for town"
17:16:46 <frosch123> so there are some assumtions about command parameters
17:20:39 <frosch123> hmm, thinking about storage classes: we have global variables, variables per town, but we also have variables per company (possibly secret to other companies), per client (secret to other clients, and also to the server?) and per server (secret to everyone)
17:20:54 *** sla_ro|master has joined #openttd
17:21:11 <frosch123> i guess declaring the storage inside the Town class makes it per town
17:21:32 <frosch123> but maybe there could be some annotation about which role can read and write the storage
17:23:04 <frosch123> @Storage(SERVER_WRITE_CLIENT_READ) PISSED: CompanyDict[bool]
17:25:07 <frosch123> @Command(COMPANY_TRIGGERED) CmdPromiseCats : Command
17:26:32 <frosch123> CmdPromiseCats.SignalTestRun.Connect(Server._onCatTest)
17:26:54 <frosch123> CmdPromiseCats.SignalExecute.Connect(Server._onCatPromise)
17:27:34 <frosch123> def _onClickButton(): CmdPromiseCats.Emit()
17:28:06 <TrueBrain> can you cook something in that gist and share? would be awesome :)
17:28:34 <TrueBrain> I like where you want to go with this :(
17:28:48 <TrueBrain> stupid keyboard... misspelling smileys ...
17:29:41 *** Progman has joined #openttd
17:34:33 <Samu> 15 ais in single player, start spectator, ai gui overhaul, self-adjusting max opcodes, hmm... custom profile, start date = 0, maybe a few other things
17:36:39 <LordAro> people cared enough to reject it ;)
17:52:21 <Eddi|zuHause> so, i didn't look in the OpenTTD General forum for a week, and suddenly all topics are by one guy?
17:53:32 <Samu> hmmm borkai on a 4k map usually crashes openttd
17:58:20 <Samu> unless something was fixed in the meantime
17:58:42 <Samu> it used to use too much ram
17:58:42 <LordAro> you know where crash reports should go :)
17:59:01 <Samu> so much that once openttd was above 4 GB, it would poof with a WER crash
17:59:12 <LordAro> OTTD should never be able to be crashed, especially not by any external addons
17:59:27 <LordAro> 4GB... are you using the 32bit version instead of 64bit?
18:00:01 <Samu> but the squirrel vm is 32-bit isn't it?
18:00:44 <Samu> memory seems to be in-check atm
18:04:08 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjmoz
18:06:40 <glx> LordAro: yeah, micchi already commented about std::begin and std::end ;)
18:09:46 <glx> hmm using std::vector for _resolutions could remove the fixed size limit
18:10:05 <LordAro> that was one of the ones i noticed
18:10:33 <LordAro> also _sorted_cargo_specs, but you'd need to keep standard_cargo_specs_size regardless, not sure if that would work
18:10:58 <glx> _language_dropdown can be a vectore too I think
18:11:56 <LordAro> _sorted_railtypes too
18:12:26 <glx> for highscore I could keep it unchanged and use std::begin
18:24:28 *** andythenorth is now known as Guest249
18:24:29 *** andythenorth has joined #openttd
18:33:11 <DorpsGek_II> [OpenTTD/OpenTTD] michicc opened pull request #7512: Replace SmallStackSafeStackAlloc and AutoFreePtr https://git.io/fjmoj
18:35:34 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7512: Replace SmallStackSafeStackAlloc and AutoFreePtr https://git.io/fjmKv
18:37:12 <Eddi|zuHause> wtf is wrong with steam? i'm trying to download a 32MB game and it takes an hour?
18:37:38 <DorpsGek_II> [OpenTTD/OpenTTD] michicc commented on pull request #7512: Replace SmallStackSafeStackAlloc and AutoFreePtr https://git.io/fjmKf
18:37:42 <TrueBrain> upgrade your connection yo!
18:41:49 <andythenorth> TrueBrain: without getting stuck in implementation details, would this approach generalise to industry?
18:42:01 <andythenorth> industries don't actually do much, outside of tile graphics
18:42:12 <TrueBrain> so they are more like House, right?
18:42:21 <andythenorth> they are like house^2
18:42:23 <TrueBrain> and yes, the idea would be that this can work for everything
18:43:09 <andythenorth> class AirportStateMachine :P
18:43:27 <TrueBrain> after all, the idea is that this is just a higher language
18:43:45 <TrueBrain> what frosch123 is suggesting, if I abstract it correctly, is to move to a more pub/sub method
18:44:11 <TrueBrain> decorators often makes code very unreadable
18:45:19 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7512: Replace SmallStackSafeStackAlloc and AutoFreePtr https://git.io/fjmKI
18:45:24 <TrueBrain> so we have to find a balancer there I guess
18:47:47 * andythenorth needs a train nerd for Horse chat
18:52:31 <Eddi|zuHause> ... download now finished
18:56:27 <TrueBrain> and now it turns out not to be what you want? :P
19:01:20 <V453000> andythenorth: bad feature, make ship
19:03:09 <andythenorth> V453000 is a bad feature
19:05:45 <DorpsGek_II> [OpenTTD/website] auge8472 commented on pull request #82: Discussion basis for rework of the general HTML structure and the CSS rules https://git.io/fjmKE
19:18:37 <V453000> I'm digging through my old NUTS code ... some parts are really fabulous, like 3rd generation of wagons being called wagon2, 2nd generation being called wagon3 ... in MOST cases :D ... of course because the first version of NUTS only had what now is 1st and 3rd generation...
19:21:15 <andythenorth> V453000: that sounds awesome
19:21:19 <andythenorth> and quite correct
19:26:48 <V453000> town mods in python ? :D
19:27:09 <TrueBrain> the language is more a matter of lack of anything better atm :P
19:27:15 <V453000> event.town._make_pissed()
19:27:42 <TrueBrain> I am mostly looking for ideas what we would like to do in mods :)
19:29:24 <DorpsGek_II> [OpenTTD/OpenTTD] michicc commented on pull request #7512: Replace SmallStackSafeStackAlloc and AutoFreePtr https://git.io/fjmKQ
19:29:54 <V453000> is that like a GS or newgrf?
19:30:03 <TrueBrain> both, and a bit more
19:30:06 <DorpsGek_II> [OpenTTD/website] auge8472 opened pull request #83: Two small changes with only a small effect to the output https://git.io/fjmK7
19:30:39 <TrueBrain> currently I think this Python will be compiled into some NewGRFs, some GS, and something new
19:30:49 <andythenorth> town.api.disaster.bees()
19:30:53 <TrueBrain> not sure yet .. more wondering if this is the right approach to the problem, from a creator point of view
19:31:06 <TrueBrain> dynamic disasters ... hmm
19:31:15 <TrueBrain> the more things I see, the more I think Injectors are a better fit for our need
19:31:18 <TrueBrain> they are just a bit more magic
19:31:21 <TrueBrain> not sure if that is a real issue
19:31:35 <V453000> I'll go put baby to bed and I'm back :) interesting thing
19:31:36 <TrueBrain> basically, that means we only use Python as an already-defined language, not as execution mechanism
19:34:10 <V453000> well python is the only language I know non-zero about so it automatically makes me excited, sorry :P
19:34:27 <V453000> regarding the rest, idk, more better :D I've never really coded town behaviour
19:35:07 <TrueBrain> already working this out for Industry etc might be a bit much ..
19:35:41 <V453000> I could think about new possibilities in trains probably
19:36:03 <TrueBrain> fork my code, and modify it ? :D
19:36:11 <TrueBrain> replace House with Train, or what-ever :P
19:36:57 <TrueBrain> took me a while to find out how to make slug .. Sea Block is kinda difficult to start with :P
19:37:27 <V453000> had no idea seablock has slugs
19:37:30 <TrueBrain> owh, that is slag btw
19:37:44 <V453000> didn't play seablock tbh
19:37:59 <TrueBrain> it is just an easy way to get nice mods dragged in
19:38:07 <TrueBrain> too lazy to look up what other packs are out there :D
19:38:35 <TrueBrain> could disable Seablock itself after downloading it, I guess
19:40:18 <TrueBrain> I like Bob's mods .. mostly inserts being able to go 45 degrees is nice
19:40:25 *** ConiKost has joined #openttd
19:40:46 * V453000 summons logistic-challenge-nazi frosch123
19:41:02 <TrueBrain> an insult and a compliment! :P
19:41:34 <ConiKost> Hi. I want to report a bug in nml, as it doen't work with pillow-6.0.0. I see, that's now hosted on Github, but Issues tab are disabled. Is this correct, to report still on openttdcoop?
19:42:42 <frosch123> make a PR instead :)
19:43:06 <ConiKost> frosch123: Well, I don't have a solution for that :/
19:49:21 <DorpsGek_II> [OpenTTD/website] TrueBrain approved pull request #83: Two small changes with only a small effect to the output https://git.io/fjm6E
19:49:29 <DorpsGek_II> [OpenTTD/website] TrueBrain merged pull request #83: Two small changes with only a small effect to the output https://git.io/fjmK7
19:55:53 <peter1138> Have I missed anything much today?
19:56:34 <michi_cc> TB is trying to reinvent stuff again :P
19:56:50 <TrueBrain> I kinda take insult to that
19:56:56 <TrueBrain> both the "again" and "reinvent"
19:58:19 <TrueBrain> it rarely is a nice thing to stab someone who indicates he feels insulted
19:58:24 <TrueBrain> but okay .. guess that is what we do here
19:58:29 <andythenorth> broken with pillow 6.0.0?
19:58:52 <peter1138> TrueBrain, I don't think anyone *meant* to insult you.
19:59:04 <michi_cc> Well, yes, reinvent it isn't really, but for again *cough*gpmi*cough*. Even if that wasn't really the same.
19:59:27 <peter1138> Hmm, well, money bug in NRT... I should look into it.
19:59:33 <TrueBrain> peter1138: how ever that might be the case, you have to realise it does not motivate at all
20:00:16 <TrueBrain> it is also not constructive
20:00:45 <michi_cc> There's nothing really wrong with reinventing stuff though, often lead to unexpected progress.
20:00:53 <LordAro> it's like you're brand new to the internet or something
20:01:05 <TrueBrain> if that is the excuse, I am done
20:03:32 <michi_cc> TrueBrain: If you don't like the word reinvent, okay. But that is what you are trying to do: reinvent how content for OTTD is created, and I don't see how that would be something negative.
20:03:43 <pnda> wait did that just commit 37 commits into my master branch? ... oh no
20:04:13 <LordAro> pnda: looks like you merged instead of rebased
20:04:32 <michi_cc> pnda: Always create PR's in a branch, helps with stuff like that.
20:04:46 <pnda> github just asked me if I wanted to resolve conflicts
20:05:16 <LordAro> yeah, it does that by merging :p
20:05:17 <ConiKost> andythenorth: when you upgrade vom pillow-5 to pillow-6, and want to run nmlc, for example, which is used by opengfx to compile, you get an error directly on running without any args
20:05:33 <pnda> "all checks have failed"
20:06:28 <LordAro> pnda: seems you've merged, but not in a way that actually works
20:06:39 <pnda> i have no idea what i've done
20:06:40 <LordAro> you'll need to do it locally
20:08:05 <ConiKost> LordAro: Great, does this work with pillow-5 too?
20:08:08 *** TrueBrain_ has left #openttd
20:08:44 <pnda> ok so I have absolutely no idea what to do now
20:08:54 <pnda> was that bad or is it ok?
20:09:29 <LordAro> ConiKost: since 5.2, i think?
20:09:40 <Xaroth> Guess he really is done
20:09:59 <LordAro> pnda: "all checks have failed" usually indicates that it is bad, yes
20:10:16 <pnda> ok so how do I revoke without stashing my local changes
20:11:06 <LordAro> i'm not sure you can do it without stashing local changes
20:11:46 <ConiKost> LordAro: Sounds good, thanks :)
20:14:34 <pnda> ok I reset it back to the commit form michi_cc
20:15:02 <michi_cc> pnda: Did you do git pull before?
20:15:07 <LordAro> still needs rebasing though, NULL -> nullptr happened
20:15:25 <michi_cc> If yes, do git pull --rebase instead
20:17:16 <pnda> I did a git pull --rebase but it's showing that thread.h was modified
20:17:35 <ConiKost> LordAro: But will be there a fix for nml?
20:18:01 <LordAro> ConiKost: probably at some point
20:18:13 <LordAro> unless someone PRs it first :>
20:19:41 <michi_cc> pnda: Where does it show you that? You can't rebase if you have uncommited changes in your working dir.
20:19:56 <pnda> Why the hell is thread.h showing up when I do git status, but if I try to stash them, and call status again it's still there
20:19:58 <ConiKost> LordAro: Well, should I create a bug report for this? ;-)
20:21:40 <pnda> Or better asking, why the hell did thread.h duplicate into src/thread.h...
20:29:01 <michi_cc> pnda: If git status tells you it is a new file, you have to manually delete it. The file was moved in master.
20:29:33 <pnda> Currently just searching where each string is used, to see if it works everywhere when I apply changes.
20:43:06 <pnda> michi_cc, uhm, the string fixed you performed, seems to break the city names, but not in the town list directory
20:58:05 <nielsm> pnda: lol that's kinda wrong way around :P
20:58:35 <pnda> We fixed the strings in the menu, but the strings in the world are now broken
20:59:29 <andythenorth> frosch123: someone at work made risk in irc
21:00:58 <frosch123> i hope it did not spam the map into the chat after each move
21:01:26 <andythenorth> I think it did with ascii
21:12:47 <Samu> lol, it's still "exiting" openttd
21:15:19 * peter1138 flashes his NodeMCU.
21:17:08 <DorpsGek_II> [OpenTTD/website] auge8472 opened pull request #84: Change: semantic HTML-elements for the pages main sections and corresponding CSS-rules https://git.io/fjmi9
21:17:34 <Samu> i'm surprised it was still running with 21,8 GB memory reserved
21:17:43 <Samu> considering I only got 16GB installed
21:18:39 <Samu> what kind of magic the OS can do, it's not really worth it. too many slowdowns
21:18:59 <LordAro> "reserved memory" usually has a specific meaning that doesn't correspond to allocated memory or amount of memory installed
21:19:09 <LordAro> i've seen programs "reserve" 2TB of memory before
21:20:11 <pnda> who doesn't have 2tb ram :p
21:20:21 <Samu> not sure what to call it
21:20:31 <peter1138> I... only have 32GB :/
21:24:24 <DorpsGek_II> [OpenTTD/website] auge8472 commented on pull request #84: Change: semantic HTML-elements for the pages main sections and corresponding CSS-rules https://git.io/fjmiF
21:24:25 <Samu> ok, the english version of that column is Commit (KB)
21:24:45 <Samu> openttd commited 21,800,000 KB
21:24:52 <Samu> then i decided to exit it
21:26:11 <Samu> and took about 7 minutes to "exit"
21:26:21 <Samu> was unloading it from disk it seems
21:29:07 <LordAro> or, the edge of the map
21:29:44 <LordAro> for hysterical raisins, the map is surrounded by "actual" tiles that you can't see or touch
21:29:59 <LordAro> (which is why maps are actually only (e.g.) 62x62
21:30:09 <LordAro> i don't think i've made any of that up
21:33:13 <peter1138> Originally it was 63x63. Void tiles were only on two edges.
21:33:40 <peter1138> You can still get that by disabling freeform edges.
21:34:07 <peter1138> You might then encounter a whole new load of bugs from routines which expect the edges to be invalid tiles.
21:37:37 <Samu> let's try 1.9.1, maybe that can create dump
21:45:00 *** gelignite has joined #openttd
21:49:16 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro requested changes for pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjmP3
21:50:09 <andythenorth> let's make container wagons
21:50:46 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 updated pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0B
21:51:34 <glx> LordAro: I was doing it ;)
21:54:14 <glx> let's hope I didn't introduce any errors or warnings
21:55:43 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7396: Fix: Saving SDT_INTLIST handle unsigned values properly https://git.io/fjmP8
21:56:52 <glx> nice it failed on a part I haven't touched when rebasing
22:10:29 <pnda> I take it that png_create_read_struct(PNG_LIBPNG_VER_STRING) is to load a heightmap png? And when that's NULL, does the heightmap not exist/is it not a png?
22:11:18 <LordAro> Samu: run within visual studio so you get a proper stack trace?
22:11:29 *** arikover has joined #openttd
22:11:38 <peter1138> If the stack isn't smashed
22:12:09 <glx> no, release mode works too
22:12:47 <Samu> I can wait, for months I've been trying to reproduce this bug
22:12:57 <glx> it's easier to debug with debug mode as there's less optimisation, but stack trace should be the same
22:13:11 <Samu> 4k map, 250k ops, debug mode... aww the pain
22:14:17 <pnda> Does anyone here know who made the Brianum sets?
22:17:04 <frosch123> that's literally the name of the author
22:17:12 <frosch123> probably has not been around for 10 years though
22:19:58 <pnda> there's been some sprite license issues with the guys sets
22:20:29 <frosch123> i associate brianum with autopilot
22:20:37 <frosch123> and that guy has that as most active topic :p
22:21:13 <pnda> He also created that topic
22:21:29 <frosch123> so, ask him whether he is associated with brianum set :)
22:24:54 *** Supercheese has joined #openttd
22:28:36 <milek7> this comment is outdated, right?
22:28:57 <peter1138> Looks like it. I never noticed it.
22:29:49 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 updated pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0B
22:30:12 <peter1138> milek7, trying to fit 250 into 7 bits might be fun :/
22:30:42 <peter1138> Maybe you can make CargoMonitorID a uint64.
22:33:29 <glx> oh weird MSVC was failing too, but it was ok locally
22:36:41 <peter1138> Hmm, cmake is ready for merge?
22:36:55 <peter1138> I better try it again :D
22:38:20 <glx> ok 2 warnings for win64, I don't have any locally
22:38:24 *** andythenorth is now known as Guest266
22:38:24 *** andythenorth has joined #openttd
22:48:04 *** Supercheese has joined #openttd
22:48:52 <glx> oh I was building for win32 locally, that explains
22:50:59 <peter1138> Hmm, AIs seem broken in the CMake PR.
22:52:04 <peter1138> I guess the compat* files are not in the right place. Hmm.
22:57:50 *** Supercheese has joined #openttd
22:58:25 <LordAro> would've thought the regression script would pick that up?
23:01:27 <glx> regression doesn't use compatiblity mode I think
23:01:39 <LordAro> that would make sense
23:01:55 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 updated pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm0B
23:07:03 <Samu> start live share session?
23:08:01 <DorpsGek_II> [OpenTTD/website] auge8472 updated pull request #84: Change: semantic HTML-elements for the pages main sections and corresponding CSS-rules https://git.io/fjmi9
23:10:58 <milek7> but I haven't tested it much
23:11:11 <milek7> framerate window needs fixing for more AI entries
23:11:52 <milek7> and I'm not sure of correctness of savegame conversion code
23:11:57 <Samu> glx, u using vs 2019? is that link of any use?
23:14:11 <DorpsGek_II> [OpenTTD/OpenTTD] LordAro commented on pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjmX6
23:15:40 <pnda> If there's any errors on Linux or Max OSX, please say so.
23:18:43 <LordAro> Samu: that is suspiciously short
23:18:48 <glx> enough to see an segfault
23:19:20 <glx> and probably corrupted stack too :)
23:19:23 <pnda> Why is this? This branch has conflicts that must be resolved
23:20:01 <LordAro> pnda: master branch has other changes in similar areas, so you must update your branch to match
23:20:17 <LordAro> you did this with merging earlier, but for OTTD we like to use rebasing
23:20:56 <pnda> LordAro: so what would I do exactly
23:21:48 <DorpsGek_II> [OpenTTD/website] auge8472 opened pull request #85: Change: HTML5-elements and corresponding CSS-rules for the blog article template https://git.io/fjmXN
23:22:46 <pnda> LordAro: So just git rebase upstream/master?
23:23:09 <LordAro> but you may get conflicts that you have to resolve
23:23:19 <LordAro> from what i can tell, it should be relatively easy
23:23:31 <pnda> will this remove any commits I have done to this branch? I guess no
23:27:20 <pnda> hint: Updates were rejected because the tip of your current branch is behind its remote counterpart.
23:28:29 <pnda> I did git rebase and it basically did a merge
23:31:54 <LordAro> pnda: define "basically"
23:32:04 <pnda> i still have no idea of git
23:32:19 <pnda> it wants to pull 42 commits
23:32:25 <Samu> somebody else can try reproduce it?
23:32:47 <LordAro> pnda: probably related to you using master
23:33:17 <LordAro> try `git fetch upstream`, then `git rebase upstream/master` ?
23:33:31 <LordAro> if you could paste all the output somewhere, that would be lovely
23:35:38 <pnda> Then if I resolve the conflict and then continue rebase it wants to pull
23:36:10 <LordAro> did you add changes before continuing rebase?
23:36:54 <pnda> Yes I did, I resolved the conflict
23:37:15 <LordAro> can you paste that output?
23:37:30 <pnda> Wait this worked fine this time
23:37:39 <pnda> Applying: Fix: Improve formatting of mixed RTL and LRT content when using ICU text layout.
23:37:56 <LordAro> right, now force push
23:38:16 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 commented on pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm1L
23:38:30 <pnda> why did that add so many commits
23:38:31 <LordAro> pnda: that seems better :)
23:38:51 <LordAro> pnda: were you not expecting 6 commits?
23:39:02 <pnda> well those are old commits
23:39:11 <pnda> that look like they're recommited
23:39:31 <pnda> Or is this normal that this looks like this?
23:39:38 <DorpsGek_II> [OpenTTD/OpenTTD] glx22 commented on pull request #7509: Codechange: replace left QSortT() with std::sort() https://git.io/fjm1Y
23:39:44 <LordAro> i think you have actually created 6 commits
23:39:52 <LordAro> they should probably be squashed together
23:40:03 <LordAro> you can do this with rebase -i
23:40:15 <LordAro> and also you didn't actually merge correctly - you reintroduced "NULL"
23:40:30 <pnda> i've got no idea anymore
23:41:00 <LordAro> that's not a very helpful comment
23:41:13 <LordAro> what are you trying to do?
23:41:23 <pnda> I have no idea what I can do or should do
23:41:43 <LordAro> ok, let's take it one step at a time
23:41:54 <LordAro> you want to merge all those commits together, into a single commit
23:42:12 <LordAro> you can do this via a rebase, specifically an interactive rebase
23:42:27 <pnda> yes, it has opened my editor
23:42:33 <glx> git rebase -i HEAD~<number of your commits>
23:42:46 <LordAro> glx: upstream/master is more helpful in this case
23:43:23 <LordAro> pnda: ok, now modify that file according to what you want to do to each commit. in this case, it's replace "pick" with "squash" for all except the first commit in the list
23:43:29 <glx> keep "pick" on first commit, replace other "pick" with "fixup"
23:43:40 <LordAro> ^ yes, fixup would be better
23:44:34 <pnda> so I just do pick <sha1 of commit> and then all other ones "fixup"?
23:45:06 <LordAro> don't touch anything other than the first word of each line
23:45:56 <LordAro> what command did you run to get the rebase?
23:46:14 <LordAro> `git rebase -i upstream/master`
23:46:14 <pnda> oh I should have done HEAD~1
23:46:40 <LordAro> ~1 would've only picked the "top" commit, whereas you want all the commits in your branch
23:47:01 <pnda> Ok I have 6 commits here
23:47:21 <LordAro> indeed, they're michi's
23:47:45 <glx> but they are part of the PR
23:47:55 <pnda> they just broke everything for me rly
23:48:17 <LordAro> doesn't matter, we're squashing everything together
23:50:16 <pnda> I am annoyed that those other commits still show up in the PR and as referenced in #6666
23:50:25 <LordAro> yeah, that's a GH thing
23:51:10 <LordAro> now we need to redo the merge to remove the NULLs
23:51:13 <pnda> Oh it's back to NULL instead of nullptr tho
23:51:30 <LordAro> so rebase -i again, but use "edit" this time
23:52:03 <pnda> so this? edit d0664161f Fix #6666: Fixed arabic town name directory string
23:52:39 <pnda> So now I edit the file and all changes are put into that commit?
23:52:42 <glx> then fix the NULL, git add, git commit --amend
23:53:02 <glx> and finally git rebase --continue
23:53:03 <LordAro> might also want to change the commit message while you're at it
23:53:41 <glx> other option as it's the last commit is to skip rebase and just fix NULL, git add, git commit --amend
23:53:49 <LordAro> pnda: during the commit --amend
23:54:16 <pnda> git commit -m "commit message" --amend?
23:54:36 <LordAro> i think that would work, usually --amend opens an editor
23:54:59 <pnda> So changing those three NULL to nullptr is enough?
23:55:49 <pnda> Is this good? "Fix #6666: Fix brackets in arabic strings"
23:56:13 <LordAro> duplicated Fix is not so good
23:56:35 <pnda> so just remove the second Fix?
23:56:41 <nielsm> or write LTR instead of language
23:57:07 <nielsm> (though that would imply also going over the hebrew file)
23:57:45 <LordAro> i'd probably go with something like "Mismatched parentheses in RTL languages"
23:58:03 <pnda> Ok that sounds better yes
23:58:23 <pnda> but it's only one language
23:58:33 <pnda> So maybe "Mismatched parentheses in Arabic"?
23:59:08 <glx> the gfx_layout.cpp changes touches all RTL languages ;)
23:59:13 <LordAro> pnda: except the change in gfx_layout.cpp- ^
23:59:27 <pnda> So yeah I'll do languages
23:59:56 <pnda> So I've closed the editor
continue to next day ⏵