IRC logs for #openttd on OFTC at 2019-03-14
⏴ go to previous day
00:00:39 *** supermop_work_ has joined #openttd
00:21:23 *** supermop_work_ has quit IRC
00:24:48 <DorpsGek_II> [OpenTTD/OpenTTD] stale[bot] commented on issue #6328: Try to preserve existing depot orders when demolishing / rebuilding a depot. https://git.io/fjecY
00:34:11 <Eddi|zuHause> are we gonna do something about that?
00:39:13 <DorpsGek_II> [OpenTTD/OpenTTD] nikolas updated pull request #7086: Change #6173: Update SDL driver to use SDL 2.0 https://git.io/fhamZ
01:53:29 *** Wormnest has joined #openttd
02:21:53 *** dihedral has joined #openttd
02:38:08 *** TrueBrain has joined #openttd
02:38:18 *** TrueBrain_ has joined #openttd
03:28:21 *** Thedarkb2-T60 has joined #openttd
03:29:13 *** Thedarkb-X40 has joined #openttd
04:52:51 *** tokai|noir has joined #openttd
04:52:51 *** ChanServ sets mode: +v tokai|noir
06:46:12 *** lastvillico has joined #openttd
07:54:30 *** Beerbelott has joined #openttd
08:46:35 *** Beerbelott has left #openttd
09:04:46 *** andythenorth has joined #openttd
09:31:51 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on issue #6266: UI Zoom: ugly lists in network windows on double/quad interface sizes with custom fonts https://git.io/fjeBe
09:56:57 *** andythenorth has joined #openttd
09:58:38 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fjeBC
10:07:37 *** th0bse is now known as Guest3248
10:15:00 *** m3henry has joined #openttd
11:19:18 <DorpsGek_II> [OpenTTD/OpenTTD] PeterN commented on issue #7371: Kdtree is built too early in savegame loading process https://git.io/fjeRx
11:44:58 *** lastvillico has joined #openttd
11:52:30 *** m3henry has joined #openttd
12:51:51 <peter1138> planetmaker, you're a graphics forum moderator, right?
12:52:17 <planetmaker> I can moderate in any
12:52:26 <planetmaker> basically global mod
12:52:42 <planetmaker> I just like OpenTTD colour better :P
12:52:44 <peter1138> I'm 'just' an OpenTTD mod :)
12:53:42 <planetmaker> you mean like to OpenTTD as in "railtype selection GUI"?
12:54:34 <peter1138> Hmm, good point, not sure where it should go. Graphics Development maybe?
12:54:51 <planetmaker> I don't care much... ok
12:55:31 <peter1138> I posted the original image to encourage the author to actually draw these icons :)
12:55:43 <peter1138> So graphics dev works well I think, rather than openttd.
12:56:07 <planetmaker> I'll leave your first posting attached to the original as it's relevant there. It's quoted by the first one split
12:56:25 <planetmaker> so it's essentially in both
13:21:31 *** andythenorth has joined #openttd
13:51:22 *** Criador15 has joined #openttd
13:52:12 <Criador15> first time here, i have a question but dont want to make a post about
13:52:53 <Criador15> some of you ever had the idea of a factory on OPENTTD that make the train you use to transport?
13:53:27 <planetmaker> :) I might have heard of that idea vaguely long time ago.
13:53:37 <Criador15> know something about?
13:54:15 <planetmaker> It is something which is very hard to achieve with OpenTTD as-is as industries and vehicles are currently not tied at all
13:54:51 <Criador15> i dont understand the (not tied) part
13:54:52 <planetmaker> coneceptually they don't talk to eachother. Maybe one can come up with some way by means of game scripts though and achieve something like that
13:55:03 <planetmaker> tied. related. connected. In that sense
13:55:54 <Criador15> you are one of the people of know how to develop?
13:56:57 <planetmaker> All I know about programming is what I taught myself in my own free time
13:57:47 <Criador15> this was global or just i see it?
13:58:20 <planetmaker> anyone can query that, but that is only you
13:59:14 <Criador15> so in your experience, did you know about the method that the depot use to 'input' train when the user click buy train?
13:59:52 <Criador15> if you know about this method, a factory can use it?
14:00:10 <planetmaker> No, factories and trains have no means to communicate
14:00:52 <planetmaker> So you either need to go and look at how to make a game script for OpenTTD. You might pull-off something which does that approximately with a game script for OpenTTD
14:01:00 <planetmaker> Or you need to actually modify OpenTTD itself
14:01:11 <Criador15> the best way is the second
14:01:30 <planetmaker> Game scripts can read both, what happens to a factory. And they can create, delete or otherwise manipulate vehicles
14:02:22 <planetmaker> But I know of no game scripts which actually does something like this. But I only know very few game scripts
14:02:45 <planetmaker> (game scripts are an add-on type to OpenTTD)... meh
14:03:01 <planetmaker> the best way would be game script :P
14:04:58 *** Criador15 has joined #openttd
14:06:05 <peter1138> I don't think GameScripts can do anything with vehicles? AIs can, of course.
14:06:15 <Criador15> ok, thanks for the information
14:06:43 <Criador15> i will try at least :D
14:06:50 <planetmaker> peter1138, they can do everything an AI can. And more. Even in your name they can
14:07:02 <planetmaker> they can switch company-context
14:07:23 <peter1138> Ah right, so they can change context.
14:07:44 <Criador15> i dont know, but think they can even change the profile photo
14:08:01 <planetmaker> yes, I think so, too
14:08:04 <peter1138> I had some weird idea about that the other... uploading an actual image.
14:08:07 <peter1138> Then I realised... dicks.
14:12:59 <Criador15> "'Gamescripts' can modify the way towns behave, delete objects, place new in-game industries, and town buildings, as well as inquire about the state of the game, and do several other in-game actions. "
14:16:40 <Criador15> there not is a class in GameScript to make new trains
14:18:19 <Criador15> tthis is the method i say early
14:18:22 <Criador15> static VehicleID GSVehicle::BuildVehicle ( TileIndex depot, EngineID engine_id )
14:19:49 <planetmaker> so.. It can do exactly that: build a vehicle in a depot
14:20:28 *** Gustavo6046 has joined #openttd
14:20:28 <Criador15> yeah, in c++ exist inheritance?
14:21:10 <peter1138> Yes but the GS are written in Squirrel.
14:21:31 <planetmaker> but that knows inheritance, too
14:22:38 <Criador15> just thinking but, if the factory class, extends the vehicles class, the factory will can run on rails and roads AND built vehicles?
14:24:16 <planetmaker> I don't see how that helps with the suggestion to have supplied factories build vehicles
14:24:22 *** Wormnest has joined #openttd
14:26:28 <Criador15> override some factory with the extended version, when its loads, it calls the build vehicle method instead of the fill station
14:26:49 <peter1138> Yeah, that's not how our inheritance works.
14:27:10 <peter1138> That's a very simplistic view that doesn't work in reality.
14:27:58 <Eddi|zuHause> that's like when two architects designed a building each, and then some random dude with no experience says "how about we put one building on top of the other?"
14:29:00 <Criador15> its like i dont have the will of make the entire game again just to make industries build trains
14:29:30 <planetmaker> And I'm telling you: try the game script way. Start with a simple script which gives you a train at a certain date
14:29:32 <peter1138> Yeah, that's not how it works either :P
14:29:58 <planetmaker> then try a script which says hello when you service a certain industry
14:30:12 <planetmaker> then combine the two things, and have it give you a vehicle when you service that industry
14:30:37 <planetmaker> then make it more complicated and only have it give you the vehicle when you delivered a certain amount of combination of cargoes to the industry
14:30:52 <planetmaker> That's how I'd tackle it, were I to write a GS
14:31:30 <Criador15> give you mean (now you can buy this type of train) or take that train in that specific depot?
14:31:43 <planetmaker> put that train into a depot
14:32:18 <planetmaker> you cannot change vehicle introduction dates and properties
14:33:08 <planetmaker> if you want anyone forbid buying the vehicle, simply always stop the vehicle and sell it, should the player buy it. Or intercept where players click - you have access to the GUI, too
14:33:41 <peter1138> "intercept where players click" I'm... pretty sure that is not a thing.
14:34:20 <Criador15> detect mouse click{
14:34:46 <planetmaker> it was introduced so that we can make a tutorial script
14:35:05 <planetmaker> it is needed to know where players click for that purpose. So...
14:35:13 <planetmaker> trunk = current development version
14:35:27 <planetmaker> but 1.8.0 is about the same. And so is 1.9…0-rc1
14:35:54 <peter1138> Ok. That'll work if the widget is highlighted.
14:36:05 <peter1138> Not going to work in network games...
14:40:40 *** Criador15 has joined #openttd
14:44:32 <Criador15> where i download NoGo?
14:44:47 <Eddi|zuHause> NoGo is not a download
14:45:22 <Eddi|zuHause> it's the script api that is already built into the game
14:45:37 <planetmaker> OpenTTD supports scripts. These scripts can make use of the functions and methods described in the API documentation
14:51:45 <planetmaker> oh, we get now different track types which will mainly differ in the look of the tunnel entrances...
14:51:46 *** supermop_work has joined #openttd
14:52:05 *** Criador15 has joined #openttd
14:52:23 <Criador15> network problems, did you know where i find the API?
14:55:26 <Criador15> ok, lemme do a search
14:55:38 <Criador15> and thanks for the log
14:58:45 <Criador15> until later dudes o/ (and i will someday put one of the building on top of the other and call it a new thing and laugh)
14:59:47 <planetmaker> one can call it art when doing stupid stuff, when done with enough determination
15:00:05 <Criador15> thats how art works
15:00:27 <planetmaker> dunno how to properly translate... "Ist das Kunst oder kann das weg?" :P
15:00:38 <planetmaker> is it art or can it be dumped?
15:01:58 <Criador15> art is to be see, tools are art that do something useful
15:03:18 <Criador15> you sure know about art and tools
16:13:35 *** criador15 has joined #openttd
16:21:08 <criador15> i am a bit curious about AI Making, so my openttd dont understand my to files as a AI, what can i do to debug this?(know why it dont recon)
16:24:37 <nielsm> there's lots of things that could be wrong, and some of it might also depend on what version of OTTD you're testing with
16:25:44 <nielsm> hmm, I think the bug with BOM in reading squirrel files was only if the files were in TAR archives, and when you're developing that's probably not the case so let's ignore that possibility :)
16:26:15 <nielsm> what folder are you putting your files in?
16:26:35 <criador15> path is like :OpenTTD\ai\TrainsMaker
16:27:06 <criador15> tried both here and in content download folder
16:27:09 <nielsm> are the files named .nut (and not something like .nut.txt)
16:27:25 <nielsm> and you have a main.nut file?
16:27:39 <criador15> the encoding change somethind?(yes i have)
16:28:03 <criador15> ANSI from UTF-8, or something else?
16:28:57 <nielsm> but the worst that could happen if you use the wrong is that text might show up wrong in the game, not total malfunction
16:30:17 <nielsm> you also have the info.nut file, and it contains a class TrainsMaker extends AIInfo ?
16:30:36 <criador15> and the game dont find the AI in the folder
16:30:37 <planetmaker> keep clear of the content_download folder. That's for ... download :) Manual stuff is in the identically-named folders at the same level as content_download
16:31:18 <planetmaker> and... you might need to change the 4-letter identifier to something else than given in the example
16:31:21 <criador15> content_download only have the standart library folder
16:32:23 <criador15> function GetShortName() { return "TsM"; }
16:32:36 <nielsm> it needs to be 4 letters exactly
16:33:47 <criador15> i am not of USA contry, and the acronym TsMa is offensive?
16:34:30 *** sla_ro|master has joined #openttd
16:34:59 <planetmaker> "doesn't work" is pretty vague. Doesn't it find it? Does it throw an error (which?)...
16:35:03 <planetmaker> did you activate it?
16:39:38 *** criador15 has joined #openttd
16:40:20 <criador15> yes, when i try to select it in the AI/GameScript tab the game dont find it, and dont give me any options besides the standart
16:41:29 <criador15> yes, when i try to select it in the AI/GameScript tab the game dont find it, and dont give me any options besides the standart
16:41:39 <planetmaker> did you restart openttd or at least re-scan for new content?
16:41:54 <criador15> yes, exit and open a new one
16:43:10 <criador15> yes, exit and open a new one
16:46:10 <criador15> i open the game, its checks for new GRFs, when load i click on AI/GameScript tab, choose 1 oponent, click to insert a Random AI, but it dont list any new AIs
16:47:24 <criador15> and show a red warning message saying that i dont have compatibles AIs
16:47:39 <nielsm> can you share your entire info.nut and main.nut on pastebin.com (or similar)?
16:48:55 <nielsm> hmm you normally shouldn't, I think
16:50:04 <planetmaker> paste.openttdcoop.org definitely needs no sign-in
16:53:32 *** synchris has joined #openttd
16:55:35 <criador15> so i did the AI right?
16:57:00 <nielsm> you're missing a line at the end of info.nut
16:58:39 <nielsm> it works for me after I add that
17:00:39 <peter1138> Congrats, your first AI/GS :D
17:01:23 <criador15> my first AI on OpenTTd
17:01:44 <planetmaker> I should at some stage make a crazy GS just to annoy people :P
17:02:27 <criador15> a awesome AI that makes the trains crazy and start to colide when you gain a specific amount of money
17:02:53 <criador15> a awesome means(its works very fine, and after thats its goes bad)
17:03:19 * andythenorth makes silly statements
17:03:37 <planetmaker> GS is quite popular
17:04:00 <criador15> mod would be better
17:04:21 <andythenorth> I use GS in every game
17:04:37 <andythenorth> but it has failed to produce a GS-oriented modding culture
17:04:43 <planetmaker> I have one activated, too, by default. Like giving additional goals / subsidies
17:04:44 <andythenorth> so it's fail as a content project
17:04:56 *** Alberth has joined #openttd
17:04:56 *** ChanServ sets mode: +o Alberth
17:05:22 <planetmaker> I think you and alberth wrote that GS, andythenorth ;)
17:05:27 <andythenorth> I did work on some GS with Alberth, but it's really programming at a level above what I can do
17:05:27 <criador15> moin is some type of hello but from another language?
17:05:41 <andythenorth> it's from Friesian or something?
17:05:49 <planetmaker> Dutch / Frisian / Northern German
17:05:53 <criador15> andythenorth you know c++?
17:06:24 <criador15> so above is up or down?
17:06:25 <andythenorth> GS requires too much programming awareness to get results quickly
17:06:35 <Alberth> what am I supposed to have written planetmaker ?
17:06:49 <planetmaker> Alberth, some goal / subsidy game script for openttd
17:07:06 <criador15> like realy develop a town
17:07:16 <Alberth> so you haven't played BB yet planetmaker?
17:07:30 <criador15> instead to try to load coal on a city and fails because there is no coal plant
17:07:38 <planetmaker> I just said before you joined "it somehow ended up in my default config"
17:08:09 <planetmaker> unobtrusive, but nice guidance when unsure what to do :)
17:08:13 <Alberth> nicely non-intrusive, and it gives you something to do if bored
17:08:38 <criador15> BB is a acronym for what?
17:08:44 <planetmaker> BusyBee game script
17:09:06 <criador15> i am a curious person
17:09:06 <Alberth> for all the busy bees that must transport
17:09:31 <Alberth> it gives random transport assignments
17:10:08 <criador15> Alberth and andythenorth only made it?
17:10:12 <andythenorth> I can't remember why I got stuck with Busy Bee
17:10:26 <andythenorth> iirc there's too much state to manage
17:10:47 <Alberth> I wrote most if not all code :)
17:10:48 <planetmaker> with complicated stuff there's A LOT of state to manage for scripts, I think
17:10:51 <andythenorth> there's the stuff about limits per tick, but I didn't run into that
17:11:01 <andythenorth> it was the initial state, and the saveload stuff
17:11:13 <andythenorth> it's quite a lot of programming overhead
17:11:16 <planetmaker> Alberth, if I'm not mistaken, stable.o.o server running 1.9.0-rc1 has it enabled
17:11:16 <Alberth> andy provided ideas and feedback
17:11:20 <criador15> if someday i made what i thing, you two can try to use it?
17:11:43 <criador15> 1.9.0 test edition is disponible
17:12:05 <Alberth> not much of a fan for baby-sitting a town tbh
17:12:10 <nielsm> it would be nice if there was a way to completely "freeze" and take image of a squirrel VM
17:12:21 <Alberth> did you try silicon valley?
17:12:21 <nielsm> and just restore the complete state again later
17:12:25 <criador15> in C maybe you can do it
17:12:34 <nielsm> instead of the script having to manage saving state itself
17:13:31 <Alberth> it's questionable how much you should save, probably, especially for an AI
17:13:39 <planetmaker> hm, no, another game on the server now. not from me
17:13:48 <andythenorth> when I work with state in a web, the DB connection takes care of the actual state
17:13:56 <andythenorth> I just send / receive objects
17:14:04 <andythenorth> and I get transaction success or fail
17:14:14 <Alberth> criador15: information that you need when the game is loaded again
17:15:06 <andythenorth> not sure why I found save stuff hard tbh
17:15:10 <criador15> OTTD uses which internal DB?
17:15:53 <andythenorth> oh yeah, have to do stuff like walking companies saving each goal
17:15:57 <andythenorth> can't just dump all GS state
17:16:05 <andythenorth> it's not rocket science hard
17:16:20 <planetmaker> but sounds tedious
17:16:23 <andythenorth> but it's not the kind of programming I'm good at :P
17:17:22 <criador15> there is much to ask and little time
17:17:47 <Alberth> andy, you can also make a smart data structure, that has a "save" entry point, and can also be accessed for normal play
17:18:20 <Alberth> just ask criador15, one question at a time :)
17:18:51 <Alberth> mostly if you'd get all answers at the same time, you'd drown in the information anyway
17:19:34 <criador15> i would sugest you make a list with all possible objectives, and make the game iterates over then one by one, and when you finish, its restart the list,but mutiply the amount need, and put a limitation
17:19:51 <criador15> because have to transport 300M of coal its not cool
17:21:01 *** Wormnest has joined #openttd
17:21:30 <criador15> so, 1) how you made the list of objectives?
17:22:42 <Alberth> I don't, when I need a new goal, I randomly pick a town or factory and another town or factory, check some limits, and if all is fine, generate an amount, and that's it
17:23:07 <criador15> tried to make progression?
17:23:12 <peter1138> nielsm, pretty sure it must be possible.
17:23:16 <Alberth> same list with even more transport is boring, as the player has a route with trains after the first assignment
17:23:28 <peter1138> 16:15 < criador15> OTTD uses which internal DB?
17:23:35 <planetmaker> criador15, the answer to that question is the in essence one of "what do I want?". And that may very well be VERY different for different people
17:23:36 <peter1138> criador15, there is no internal DB.
17:23:45 <Alberth> so, doing the second assignment doesn't need any action
17:24:02 <planetmaker> Alberth, "clone, clone, clone" :P
17:24:34 <planetmaker> (assuming 3x the 1st year's quantity or such)
17:24:52 <criador15> the need is the same, but the location to transport not
17:24:54 <nielsm> peter1138, as it is, the squrrel 2 implementation does not have a mechanism to separate allocations from different VMs
17:25:13 <criador15> like found a city, then suplly
17:25:29 <criador15> after connect it to another and make it grown
17:25:42 <nielsm> I tried to have it use separate arenas for each AI/GS running but decided it would be too much uprooting the entire VM structure
17:25:43 <planetmaker> nielsm, I think TB once looked into updating the VMs. Looked... like boring and tedious work
17:26:10 <nielsm> I did try some months ago
17:26:24 <nielsm> mainly for measuring memory usage for each script
17:26:37 <criador15> how i send the red message?
17:28:02 <andythenorth> we spent quite a lot of time at work on python wrappers for common attributes, that can serialise / deserialise cleanly
17:28:12 <criador15> the red looks like private but in the same tab
17:28:12 <andythenorth> which makes state management trivial
17:28:55 <Alberth> we have red messages?
17:29:04 <Alberth> or just text in red colour or so?
17:29:16 <Alberth> strings can have colour, including red
17:30:57 <criador15> like that message : <@Alberth> just ask criador15, one question at a time :)
17:31:21 <peter1138> Oh that's your IRC client doing that.
17:31:30 <planetmaker> we have a red message box with white or yellow text
17:31:42 <planetmaker> like the error message of newgrf mess-up
17:32:18 <Alberth> I mentioned your name, so your client highlights you, just like mine if you mention my name
17:32:55 <criador15> the 'list' of objetives might be very vast, like found citys, transport to multi towns, supply anothers, supplys factory
17:33:05 <criador15> and like i am trying to do
17:34:15 <Alberth> why do you have a long list? The user cannot do 1000 things at the same time
17:34:19 <peter1138> Is it safe to listen to Kate Bush yet?
17:34:29 <peter1138> There was that palaver about her being a Tory...
17:35:00 <Alberth> I tried in the '90s or so, and survived. Does that count?
17:35:31 <peter1138> Actually there is one album that has Rolf Harris on it. That's slightly more problematic...
17:35:45 <peter1138> I think she's remastered that one to fix that.
17:36:08 <Alberth> Oh you actually know stuff, I never got that far
17:39:02 <criador15> list of possible goals to add to the list that the player has of goals
17:39:35 <criador15> a list not of goals, but possible goals, or progressive goals
17:40:02 <criador15> or goals needed to achieve a certain amount of money, or supply from a factory
17:40:40 <Alberth> yeah, so 2048x2048 map, 1300-something towns and industries
17:41:08 <criador15> and you suggest to supply each of then, one by one
17:41:23 <criador15> after x000 hour you make it
17:41:42 <criador15> or maybe x0.000.000 hours
17:41:44 <Alberth> you generate them all at the start, I generate the next one when I need it
17:41:55 <Alberth> but start much smaller
17:42:08 <criador15> i dont make anything yet
17:42:27 <Alberth> first, just pick two towns, and ask the player to setup a passenger service
17:42:29 <criador15> i will try to make a industry craft a train to me
17:42:56 <Alberth> monitor progress, and declare done when appropriate
17:43:00 <planetmaker> criador15, so your next GS will ask the player to service a particular industry :)
17:43:24 <criador15> when is done, you dont receive money
17:43:27 <Alberth> that sets up the whole infra structure for managing goals for the player
17:43:40 <criador15> or another industry
17:44:02 <planetmaker> you probably will have to do that manually: remove money earned, give money for buying vehicle, buy vehicle
17:44:17 <planetmaker> and ecommunicate it as "you got the vehicle, but not the money"
17:44:45 <criador15> the game is to transport,
17:45:00 <criador15> you encommend, transport the resource, pay and use
17:45:22 <Alberth> you can't build all that in one time, way too big and complicated. Start small, and gradually expand
17:45:47 <criador15> i have time o/, not will force
17:45:49 <Alberth> dreaming of solutions is simple, implementing them is a lot of work
17:46:06 <Alberth> it's not time, it's complexity of handling it all
17:46:39 <planetmaker> but a vision or goal keeps you motivated :)
17:46:50 <Alberth> sure, vision is great
17:47:12 <criador15> thats why i think busybee is very promising
17:47:21 <Alberth> just warning that realizing is much more complicated than you may think
17:48:08 <Alberth> well, BB is gpl-licensed, if you can live by those rules, feel free to fork it and extend
17:49:06 <criador15> for now, i have another goal
17:49:15 <criador15> but later, and if i suceed
17:49:44 <criador15> you can at least see if its useful the idea of the industries craft a vehicle?
17:50:59 <planetmaker> I'm also sure such GS will have its audience
17:51:29 <criador15> what the diference?
17:51:49 <planetmaker> audire = to hear; ludere = to play
17:52:05 <criador15> i barely understand you in english
17:52:13 <Alberth> right, never saw that before, but I haven't studied latin
17:52:26 <planetmaker> I just made it up on the spot
17:52:36 <criador15> you made a joke, right?
17:52:37 <planetmaker> except the verbs actually exist
17:52:52 <planetmaker> yes... and failed hard :D
17:53:21 <criador15> pun are hard when you mix more than one language
17:54:27 <criador15> Alberth o/, to make a goal, i place it in main.nut, with the especific params?
17:54:37 <criador15> have to use pointers?
17:54:52 <peter1138> Ah, Kate Bush's famous song about... washing machines.
17:55:30 <Alberth> my goal creation code ended up in main, but that's not a fixed rule, you can have it in any .nut file
17:55:52 <Alberth> squirrel has no pointers, it has references
17:56:10 <criador15> TrainsMaker::Start() the :: is what?
17:56:11 <Alberth> hmm, not entirely true, it also knows about null
17:56:45 <Alberth> used to denote that Start is a method in the TrainsMaker class
17:57:05 <Alberth> you have read a squirrel 2 document, right
17:58:13 <planetmaker> a flaky connection surely is flaky
18:03:12 *** Gustavo6046 has joined #openttd
18:10:47 <Alberth> first some food is required
18:11:22 <planetmaker> indeed. And then some people need explaining what they could see on the sky if it were not raining cats and dogs...
18:13:36 *** HerzogDeXtEr has joined #openttd
18:17:25 *** Progman has joined #openttd
18:18:09 *** supermop_work has joined #openttd
18:27:30 *** criador15 has joined #openttd
18:29:04 <criador15> 'a flaky connection surely is flaky' mostly know as lunch here
18:29:30 <criador15> Alberth not, i not read it yet
18:34:55 <criador15> squirrels has pointers, but they are not the same like others non C language
18:37:30 <criador15> Alberth, do you have time to explaim me some things?
18:39:49 <criador15> the := do something in squirrel?
18:40:28 <Alberth> looks like assignment, doesn't the manual explain that?
18:43:07 <criador15> i know this is for assign value to local vars =, but this := is for assign to global vars(like the off class)
18:43:32 <Alberth> where do you find that := ?
18:44:09 <Alberth> stat:= 'throw' exp <- like that ?
18:44:13 <nielsm> oh, in the syntax definitions
18:44:14 <criador15> "Global variables are stored in a table called the root table. Usually in the global scope the environment object is the root table, but to explicitly access the global table from another scope, the slot name must be prefixed with '::' (::foo)."
18:44:40 <nielsm> read up on "backus-naur form"
18:45:11 <criador15> A single identifier refers to a local variable or a slot in the environment object. derefexp := id;
18:45:15 <Alberth> and likely hardly ever needed
18:46:06 <Alberth> it's of the language they use for defining squirrel, it's not squirrel itself
18:46:24 <criador15> its from C and sons right?
18:46:41 <Alberth> the explanation has a concept "derefexp", the := means "is defined as"
18:46:51 <nielsm> well, the formatting in the squrrel manual is terrible, and they don't visually distinguish between examples written in squirrel, and other code blocks that are not squirrel
18:47:30 <Alberth> Likely you can find similar syntax somewhere in an appendix of a C/C++ manual
18:47:41 <criador15> just to know, some of you know about java?
18:47:44 <Alberth> you can safely ignore the := and everything before it
18:48:03 <Alberth> I know java, also drink a lot of coffee
18:48:05 <criador15> i did it, and after asked you
18:49:43 <criador15> so this a:=b, is the same as a=b?
18:50:01 <nielsm> there is no := symbol in the squrrel language
18:50:17 <Alberth> the " a :=" part is explanation, it's not part of squirrel
18:50:18 <nielsm> := is a symbol the manual uses to explain the syntax
18:50:41 <Alberth> you can safely ignore the := and everything before it
18:51:01 <nielsm> stat:= 'while' '(' exp ')' stat
18:51:55 <nielsm> that means that when they write "stat" somewhere else in a syntax diagram, it refers to the sequence of the word "while", following by a (, followed by an expression, followed by a ), followed by a statement
18:52:02 <criador15> so AI is like to develop on squirrel and C++ implicity, but you can use GUI?
18:52:25 <nielsm> squirrel is a programming language used in ottd to write AI and GS
18:52:42 <Alberth> you have to create a tekst-file, if you want to use a graphical editor for that , it's fine
18:52:46 <criador15> if i do a calculator inside a AI, and run it, is like compile in squirrel?
18:53:02 <criador15> but with expensive computing cost
18:53:03 <nielsm> the squirrel language is interpreted by a C++ library which is included in ottd, and the syntax of the squirrel language itself is inspired by C++, but C++ is not relevant for writing squirrel
18:54:41 <Alberth> tea would be great I think
18:55:05 <criador15> then it would be java
18:55:35 <Alberth> no, tea in the evening
18:56:14 <criador15> for me its 15:00 or 3:00 pm
18:56:22 <Alberth> I did have coffee today, even without touching java
18:57:18 <Alberth> survival stuff and all that
18:58:30 <criador15> you are talking about that thing you do to keep doing things?
19:04:28 <Alberth> it has a lot of challenges
19:04:51 <criador15> did i sucessfully send you a private question?
19:05:40 <criador15> please especify, dont do question in private mode, or dont do private question?
19:06:05 <criador15> i mean, did i send a question only to Alberth?
19:07:28 <criador15> the query option do what?
19:21:10 *** m3henry has joined #openttd
19:22:05 *** Thedarkb-T60 has joined #openttd
19:23:55 <criador15> where i find the id of towns?
19:24:58 <DorpsGek_II> [OpenTTD/OpenTTD] M3Henry commented on pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fjeo1
19:26:47 <DorpsGek_II> [OpenTTD/OpenTTD] M3Henry updated pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fhSz0
19:42:16 *** andythenorth has joined #openttd
19:44:22 *** frosch123 has joined #openttd
19:44:54 *** Thedarkb-T60 has joined #openttd
19:46:56 *** Thedarkb-T60 has joined #openttd
19:49:31 <Alberth> moving boxes of steel
19:50:21 <Alberth> or in your case, moving boxes of bits
19:50:55 *** Thedarkb-T60 has joined #openttd
19:52:44 *** gelignite has joined #openttd
19:54:18 *** Thedarkb-T60 has joined #openttd
19:56:15 *** Thedarkb-T60 has joined #openttd
19:57:23 *** Thedarkb1-T60 has joined #openttd
20:04:23 *** DorpsGek sets mode: +o LordAro
20:05:05 *** Thedarkb1-T60 has joined #openttd
20:05:20 <frosch123> @ban 100000 Thedarkb1-T60
20:05:34 <frosch123> @ban Thedarkb1-T60 100000
20:09:05 *** criador15 has joined #openttd
20:10:19 <criador15> hey o/, anyone can edit the introduction tutorial of AIs?
20:12:01 <criador15> you thing is good to mention that AIs only run while the game is not paused?
20:13:16 <nielsm> that should be obvious
20:13:17 <criador15> and hi o/ you are a new person to me
20:13:40 <peter1138> nielsm, well, players can build while paused, so...
20:13:57 <peter1138> Which is a bit silly :/
20:14:30 <criador15> 30 minutes trying to make a simple String apears, but my games always start paused....
20:17:03 <DorpsGek_II> [OpenTTD/OpenTTD] M3Henry updated pull request #7165: [core] Implement SmallVector using std::vector https://git.io/fhSz0
20:17:16 <m3henry> After much fumbling with rebases, that might be all of the amendments
20:20:46 <peter1138> People using track types just to have different tunnel sprites? o_O
20:21:52 <Alberth> although it makes sense I guess, only way to get any variation in those sprites
20:22:13 <Alberth> hmm, would random sprite selection work?
20:22:35 <peter1138> What would be good is to say "can we have different tunnel head sprites"
20:23:21 <Alberth> never avoid creating an XY problem if you can :p
20:24:53 <peter1138> "Variable 10 can be used to distinguish between several requested tunnel variations: "
20:25:06 <peter1138> all over values "reserved"
20:27:30 <Eddi|zuHause> i guess that's a "this was never implemented"?
20:28:09 <Eddi|zuHause> so all that needs is a few map bits and a gui
20:28:33 <Alberth> I wonder if you should define something for the other values
20:29:12 <Eddi|zuHause> there's also this TTDP feature where you can build rails on top
20:29:22 <peter1138> Yeah but TTDP doesn't support railtypes.
20:29:47 <Alberth> someone will invent a "system" covering all known and unknown tunnel entry sprites
20:30:26 <Eddi|zuHause> would also be helpful with roads, especially for "subway" style train networks
20:30:39 <peter1138> That's the thing, would you want tunnel sprites to be clearly defined (like have proper IDs)
20:30:39 <LordAro> i feel like very few people would complain if the TTDP-only bits of the grf spec were dropped
20:31:12 <peter1138> Or be like refits (depend on a variable and rely on a different graphic coming back to detect it)
20:31:35 <LordAro> Alberth: YATH (yet another tunnel head) ?
20:32:08 <Eddi|zuHause> peter1138: i'm not sure i understand what you mean
20:32:17 <Alberth> clearly you need separate tunnels sprites for 100, 120, 160, and 200 km/h entry speeds
20:32:33 <Eddi|zuHause> Alberth: that's what railtypes can already do
20:32:51 <peter1138> Only based on the speed limit attribute of the railtype, though.
20:32:53 <Alberth> not to mention 50, and 125KV, with catenary or 3rd rail
20:33:09 <peter1138> But yes, railtypes do already specify the tunnel graphics
20:33:37 <Alberth> and so you arrive at railtypes defining tunnel sprites :p
20:34:00 <peter1138> Eddi|zuHause, ottd has to detect what refits are available by testing for all combinations.
20:34:11 <peter1138> Eddi|zuHause, this is part of what makings refits so shitty to deal with
20:34:26 <peter1138> They can come & go depending on date... o_O
20:34:47 <Eddi|zuHause> peter1138: but station construction can also come and go depending on date?
20:35:07 <peter1138> How is that relevant?
20:35:26 <Eddi|zuHause> i would imagine tunnel portals would be more like that, than refit
20:35:35 <peter1138> stations have proper defined IDs
20:35:54 <peter1138> tunnel portals are graphics for a railtype
20:36:06 <peter1138> (because the sprites include the rails)
20:38:16 <Eddi|zuHause> say, we find somewhere 4 map bits we could use for tunnel portals (that makes 16 types per railtype), we could make a property/callback where the railtype can enable each single portal in a bitmask
20:38:28 <andythenorth> we need a full on landscape construction kit
20:38:28 <DorpsGek_II> [OpenTTD/OpenTTD] stale[bot] commented on issue #3848: Orders: different STR_ORDER_GO_TO for each transport type https://git.io/fjeKh
20:39:21 <Eddi|zuHause> the sprite selection callback then gets passed these 4 map bits, the GRF is responsible for providing any graphics that it had enabled and the selection gui could exclude the ones disabled
20:40:12 <andythenorth> I'm not even trolling
20:40:16 <Eddi|zuHause> there's some complexity with the graphics to combine tunnel portals with grass/sand/whatever ground
20:41:42 <Eddi|zuHause> the bitmask would allow the GRF to enable/disable them at dates, and avoid the mess that is refit subtypes
20:42:10 <Eddi|zuHause> subtypes have a problem with that, because they have to be consecutive
20:43:07 <Eddi|zuHause> allowing non-consecutive has the advantage that the GRF can still provide graphics for the already built but now disabled types
20:43:08 <peter1138> "but only 16 types!" ;)
20:43:27 <peter1138> so callback for "which tunnel types are available"
20:43:32 <peter1138> Do they need names? :p
20:43:42 <Eddi|zuHause> peter1138: but the callback can only return 15 bits :p
20:46:33 <Alberth> have 0 always available
20:46:53 <Eddi|zuHause> that doesn't make a lot of sense
20:47:44 <Alberth> grf can disable all tunnel sprites?
20:48:32 <Eddi|zuHause> would disable tunnel construction for that railtype
20:50:16 <Alberth> if it's static, that would work
20:56:37 <peter1138> Can a callback return 15 bits or was there some 14 bit limit?
20:56:49 <peter1138> Or was that a bit being used for something else in some var?
20:57:06 <Eddi|zuHause> 14 bit was only for the articulation callback, as 15 was special
20:57:25 <peter1138> Some cost thing too, I'm sure.
20:57:49 <Eddi|zuHause> dunno, but the callback can return all 15 bits
20:58:03 <peter1138> Ok, let's write the unit tests ;)
20:58:42 <Eddi|zuHause> do we have a framework for those yet? :p
20:58:47 <peter1138> And... have 15 types, or 16 types with the first one always available?
20:59:39 <peter1138> Hmm, there are callbacks for rails, I guess.
21:00:21 <Eddi|zuHause> i'm against having a fixed one. a GRF might want to have an "old" and a "new" set, so would want to disable all "old" while making sure at least one is available at any time
21:00:44 <Eddi|zuHause> so 15 would be better, can always increase that later
21:01:03 <Eddi|zuHause> the property could support all 16 maybe
21:01:18 <peter1138> I ... wasn't going to implement a property :p
21:01:19 <Eddi|zuHause> (this still under the assumption we have 4 map bits)
21:01:41 <peter1138> m2 is free for bridges and thus tunnels
21:01:55 <peter1138> Don't need 65536 tunnel types though
21:02:03 <Eddi|zuHause> ok. no property, and CB_FAILED indicates old behaviour
21:03:10 <Eddi|zuHause> i'm pretty sure m2 is used by every custom bridge head patch ever
21:03:24 <peter1138> And that patch to assign town ids to bridges.
21:03:47 <Eddi|zuHause> that sounds incredibly wasteful
21:04:16 <frosch123> callbacks returning signed integers have these weird 15 bit integers, with 14bit for positive numbers
21:05:27 <Eddi|zuHause> well, it's not like 2-complement is restricted to power-of-two bits
21:06:44 <Eddi|zuHause> the bigger problem there is that the callback itself has no knowledge of its signedness, so the conversion is done in a weird place
21:07:37 <Alberth> define as unsigned after adding n/2
21:08:13 <Eddi|zuHause> the callback handling code expects all callbacks to be unsigned
21:08:15 <frosch123> oh, right... title game competition
21:08:28 <frosch123> i keep forgetting to look at them
21:09:57 <frosch123> actually... is voting open? there is no separate post about it
21:12:38 <frosch123> Eddi|zuHause: no, the callback handling code expects all callbacks to return 15 bit binary data
21:13:07 <frosch123> bit fields are extracted and converted later
21:15:59 <Eddi|zuHause> frosch123: ok, but bitfields are fine when handled as unsigned
21:21:09 <peter1138> Hmm, how do we normally do variables that need to be available before the object exists...
21:26:09 <frosch123> we create a fake object
21:26:21 <frosch123> see articulated_vehicles.cpp
21:27:27 <frosch123> ok, only one function CountArticulatedParts
21:28:36 <m3henry> :v why are the Windows builds failing to find headers in CI?
21:31:48 <m3henry> png.h, ft2build.h and zlib.h are missing
21:34:33 <Eddi|zuHause> because it's not set up to install them?
21:35:16 <m3henry> Surely that sort of thing would be left alone once it was setup
21:38:15 *** Thedarkb-T60 has joined #openttd
21:38:22 <Thedarkb-T60> frosch123, Sorry about that.
21:38:31 <Thedarkb-T60> I was away from my computer at the time.
21:38:41 <Thedarkb-T60> If I start lagging out like that again, just kick me.
21:38:46 <Thedarkb-T60> I'd rather not be banned :)
21:44:47 <frosch123> it was a timed bad, but did not work :p
22:08:19 <peter1138> Hmm, tunnel gui? :o
22:13:36 <andythenorth> signals in tunnels
22:14:09 *** Thedarkb-T60 has joined #openttd
22:20:08 *** Thedarkb-T60 has joined #openttd
22:35:45 *** Supercheese has joined #openttd
22:53:17 *** HerzogDeXtEr1 has joined #openttd
23:00:22 *** Lejving has joined #openttd
23:20:27 *** andythenorth has left #openttd
23:41:31 *** supermop_work has joined #openttd
23:43:27 *** supermop_work_ has joined #openttd
23:45:19 *** drac_boy has joined #openttd
23:58:55 <drac_boy> anything interesting?
continue to next day ⏵