Back to Home / #openttd / 2016 / 04 / Prev Day | Next Day
#openttd IRC Logs for 2016-04-29

---Logopened Fri Apr 29 00:00:49 2016
00:32-!-Klanticus [~quassel@] has quit [Ping timeout: 480 seconds]
00:46-!-sim-al2 [] has quit [Ping timeout: 480 seconds]
00:46-!-Klanticus [] has joined #openttd
00:52-!-sla_ro|master [slamaster@] has joined #openttd
01:01-!-ConductCat [] has joined #openttd
01:06-!-ConductorCat [] has quit [Ping timeout: 480 seconds]
01:46-!-Alberth [~alberth@2001:981:c6c5:1:be5f:f4ff:feac:e11] has joined #openttd
01:46-!-mode/#openttd [+o Alberth] by ChanServ
01:54-!-supermop_ [] has joined #openttd
01:57-!-Hiddenfunstuff [] has joined #openttd
02:00-!-Biolunar [] has joined #openttd
02:01-!-supermop [] has quit [Ping timeout: 480 seconds]
02:20-!-sla_ro|master [slamaster@] has quit []
02:42-!-MonkeyDrone [~Monkey@] has joined #openttd
02:47-!-empezar [] has joined #openttd
03:01-!-Ketsuban [~ketsuban@2a02:c7d:a34a:9000:4cb5:5806:f205:2bf8] has quit [Quit: Leaving]
03:07-!-empezar [] has quit [Ping timeout: 480 seconds]
03:12-!-Myhorta [] has joined #openttd
03:23-!-ConductingCat [] has joined #openttd
03:27-!-ConductorCat [] has joined #openttd
03:30-!-ConductCat [] has quit [Ping timeout: 480 seconds]
03:32-!-ConductingCat [] has quit [Ping timeout: 480 seconds]
03:50<Leanden>Alberth u there?
04:04<@Alberth>Leanden: ^
04:04<Leanden>I have two questions
04:04<Leanden>firstly ive uploaded my ssh public key to the dev page
04:04<Leanden>but im trying to manually compile my test GRF using nmlc
04:04<Leanden>but it keeps returning an error
04:04<Leanden>Parsing ...Illegal character '#' (character code 0x23) at "src\BRTrains.pnml", line 9, column 1
04:05<@Alberth>paste the first say 20 lines into
04:05<@Alberth>and yes, # is not in the NML language :)
04:06<@Alberth>ah, right, that's not an nml file
04:06<@Alberth>do you have cpp or gcc or cc ?
04:07<V453000> mornink humenz
04:07<@Alberth>mornink Vs
04:08<Leanden>i have a makefile
04:08<V453000>all bow before yetis
04:08<Leanden>so what do i type into my nmlc to make it compile?
04:08<@Alberth>you don't, make does that for you
04:08<@Alberth>type make -n to see what it would do if you type make
04:09<@Alberth>many improvements in the yetis industries V
04:09<V453000>yeah, all just photoshop painting :)
04:09<@Alberth>you made the yetis clean the mine platform
04:10<@Alberth>I was wondering about the oil wells thing, shouldn't there be a fence around the moving things?
04:10<Leanden>sh ok
04:10<Leanden>"No repository found*
04:11<@Alberth>it tries to get revision information from the current directory, which fails of course, if your directory in not under source control
04:11<Leanden>ok so ive updated my directory to be a .hg repository
04:11<Leanden>make: *** No rule to make target `BRTrains.grf', needed by `all'. Stop.
04:11<Leanden>I now get this error only
04:11<V453000>heh, fuck fence :P
04:11<V453000>one of the economies only has worker yards and food plants
04:11<@Alberth>V: your ore mine does have a fence around the hole :p
04:12<V453000>you produce food from yetis, might as well not care about safety
04:12<V453000>yeah point :P that is to prevent stealing of the precious brick-ore
04:12<@Alberth>ah, makes sense :)
04:12<@Alberth>doesn't look very dangerous, that fence, though :)
04:13<V453000>it bites
04:13<Leanden>i worked it out :D
04:13<Leanden>[ -f .version ] && [ "`cat .version`" = "r-1" ] || echo r-1 > .version echo "[MD5] BRTrains.md5" md5sum BRTrains.grf | sed "s/ / /;s/ / /" > BRTrains.md5 cat: BRTrains.md5: No such file or directory echo "[TXT] docs/readme.txt" cat docs/readme.ptxt \ | sed -e "s/{{GRF_TITLE}}/BRTrains r-1/" \ | sed -e "s/{{GRF_ID}}//" \ | sed -e "s/{{REPO_REVISION}}/-1/" \ | sed -e "s/{{FILENAM
04:14<Leanden>now missing md5 ll
04:14<@Alberth>yeah, don't paste in here, use a pastebin
04:14<@Alberth>np, we all make mistakes :)
04:15<Leanden>so i created a blank file called BRTrains.grf for it to write into
04:15<Leanden>but now im getting this missing .md5 error
04:15-!-AdmiralKew [~pcc31@] has quit [Ping timeout: 480 seconds]
04:16<@Alberth>creating the blank .grf file just makes that it skips building the grf
04:16<@Alberth>you want automatic building on the compile farm, I guess?
04:16<Leanden>yes but i understand thats broken atm due to a http read fault
04:17<@Alberth>apparently, but ssh is on the way
04:17<@Alberth>nothing I can do with that, sorry
04:17<@Alberth>planetmaker: ^ can you help Leanden ?
04:18<@Alberth>probably won't work
04:18<@Alberth>if you have linux, md5 is easy to add
04:18<@Alberth>otherwise, euhm, no idea
04:20<Leanden>nope windows unfortunately
04:20<@Alberth>you might want to compare with another project that uses makefiles (which is pretty much all of them)
04:20<Leanden>im using SBBset as my comparison
04:20<Leanden>(in fact ive literally copied their makefile and changed the filepaths)
04:21<@Alberth>that's a useful strategy in many cases :)
04:21<@Alberth>no md5sum thingie from where-ever you got gcc?
04:21<Leanden>oh i just remembered
04:22<Leanden>when i downloaded nmlc
04:22<Leanden>there was a md5 with that
04:22<Leanden>is that what im missing?
04:22<@Alberth>don't know, I have no idea what md5 it comes with
04:22<Leanden>no actually, thats a stupid comment, that was the md5 for the installer ;)
04:26-!-kais58_ is now known as kais58|AFK
04:26<Leanden>ok so i got an md5 generator and created the md5 hashfil
04:27-!-kais58|AFK is now known as kais58_
04:27<Leanden>so was this successful or not? :P
04:28<Leanden>i think not because i still dont have an NML file to run nmlc on
04:29<@Alberth>gcc -C -E -nostdinc -x c-header -o BTtrains.nml BTtrains.pnml
04:29<@Alberth>nmlc BTtrains.nml
04:30<Leanden>it failed
04:30<@Alberth>first command runs the C pre-processor, eliminating all the #define and #include, second command builds the grf
04:31<@Alberth>remarks like "it don't work" give no clues at all what to fix
04:31<Leanden>fatal error: src/compatibility.pnml: No such file or directory #include "src/compatibility.pnml"
04:31<Leanden>sorry i was getting there ;)
04:31<@Alberth>#include is relative to the source file it is in, I think
04:32<Leanden>ok i got it
04:32<Leanden>the base pnml shouldnt be in the src folder then
04:32<@Alberth>alternatively, you can add a -Isrc and kill all src/ prefixes
04:32<Leanden>nmlc ERROR: "src/header.pnml", line 9: Expected a string literal of length 4 Included from: "BRTrains.pnml", line 10
04:33<@Alberth>gcc worked :p
04:33<@Alberth>now fix the nml errors :)
04:34<Leanden>hmmm so theres an error in my header pnml?
04:34<Leanden>oh line 9 is my GRF ID
04:34<@Alberth>nml detects it there, but that does not imply the fix should also be there
04:34<Leanden> grfid: "JK\08\04\16";
04:35<@Alberth>looks too long :)
04:35<@Alberth>that's 5 bytes
04:35<Leanden>ok corrected that :)
04:35<Leanden>nmlc ERROR: "src/header.pnml", line 13: Unrecognized identifier 'REPO_REVISION' encountered
04:37<@Alberth>hmm, my quote at adds -D things to gcc
04:37<@Alberth>but these are generated from the makefile
04:38<Leanden>i think my make may have failed actually
04:38<@Alberth>you can fiddle with them manually, but it's messy
04:40<@Alberth>unix2dos doesn't do what the makefile expects, I think, I have such a unix2dos too
04:40<@Alberth>I fixed that somewhere, but where?
04:42<@Alberth>ah, the make-nml project, I think do you have a line like
04:42<@Alberth>UNIX2DOS_FLAGS ?= $(shell [ -n $(UNIX2DOS) ] && $(UNIX2DOS) -q --version 2>/dev/null && echo "-q" || echo "")
04:43<@Alberth>make-nml is sort of the base of the makefile stuff, which you are supposed to copy when making a new project
04:43<@Alberth>most people however copy from a random other project, and never update their files
04:43<@Alberth>which is fine, until it breaks :p
04:44<Leanden>where do i find that file?
04:45<Leanden>ye i saw that page earlier but couldnt find a download
04:46<@Alberth>not sure there is one, tbh
04:46<@Alberth>but it makes sense to have that
04:47<@Alberth>hmm, doesn't seem to work either
04:47<Leanden>ive manually downloaded the makefile
04:49<Leanden>lets see how this works
04:49<Leanden>yay yhe make file works
04:50<Leanden>im now back up to the REPO_VERSION error
04:53<@Alberth>you're running this in a repository directory?
04:54<Leanden>its a local only repository in Tortoisehg
04:56<@Alberth>oh, that's fine, tortoisehg is just a frontend for hg
04:56<Leanden>but its an unrecognized identifier
04:57<@Alberth>there is a point where they get replaced
04:58<@Alberth>maybe a custom_tags file or so that gets generated?
04:58<@Alberth> seems to do that, but it failed
04:59<@Alberth>nvm, that's for your readme file
05:03<@Alberth>scripts/Makefile.def has the commands to derive revisions, it seems
05:03<@Alberth>there are tooo many makefiles in SBB set :(
05:04<@Alberth>hg id -n | cut -d+ -f1 gets the revision
05:05<@Alberth>but hg will only work in a directory in the repository
05:05<Leanden>oh i scrapped the sbb ones
05:05<Leanden>and im using the base ones now
05:05<@Alberth>ah, ok
05:06<Leanden>ive temporarily overrident he identifier with the number 1
05:06<@Alberth> does that now
05:15<Leanden>well i have in there
05:15<Leanden>but it doesnt appear to be doing anything
05:16<Leanden>its even generated a .version file
05:20<@Alberth>0749fe4d44f9    5438    M               v5438M (0749fe4d44f9)           2014-11-21 <-- afaik it produces this kind of output
05:20<@Alberth>does hg id do anything?
05:21<@Alberth>if not your working directory is wrong
05:24<Leanden>it returns 0000000000000 tip
05:24<Leanden>hey pm :)
05:26<@planetmaker>revision 0000 tip certainly means there's nothing checked-out
05:30<Leanden>well ive now managed to compile it all the way through to the end
05:33<Leanden>obviously with the REVISION_VERSION identifier substituted
05:35<Leanden>nothing in game though :D
05:35<@Alberth>ah, not added files and committed to the repo yet ?
05:36<Leanden>perhaps not?
05:40<Leanden>ok hg id now returns: d62ab68b6469+ tip
05:40<Leanden>but the REPO_VERSION identifier is still failing
05:45*Leanden slaps planetmaker around a bit with a large fishbot
05:48<Leanden>im stuck waiting for my hg key to be activated on the dev repository :D
06:02-!-Islacrusez [] has joined #openttd
06:02-!-Islacrusez [] has quit [Read error: Connection reset by peer]
06:13-!-Deactivated [] has joined #openttd
06:14-!-Deactivated [] has left #openttd []
06:23-!-Wolf01 [] has joined #openttd
06:32<V453000>Wolf01: I guess I should put slugs in the farm :)
06:33-!-Wolf01 is now known as Guest2236
06:33-!-Wolf03 [~wolf01@] has joined #openttd
06:33-!-Wolf03 is now known as Wolf01
06:36-!-Guest2236 [] has quit [Ping timeout: 480 seconds]
06:36-!-Biolunar [] has quit [Quit: leaving]
06:42-!-JacobD88 [] has joined #openttd
07:01-!-JacobD88 [] has quit [Quit: JacobD88]
07:10-!-Samu [] has joined #openttd
07:11-!-Wolf03 [~wolf01@] has joined #openttd
07:11-!-Wolf01 is now known as Guest2239
07:11-!-Wolf03 is now known as Wolf01
07:11<Samu>bool IsDead(CompanyID slot) const
07:11<Samu>i think i did it
07:14<Samu>im not sure what void and const do though
07:15<Samu>or virtual void
07:15<@Alberth>I see no void there
07:15<@Alberth>const means the function does not change the object
07:16<@Alberth>virtual means derived classes may redefine the function
07:16-!-Guest2239 [] has quit [Ping timeout: 480 seconds]
07:21<Samu>static bool IsDead(CompanyID slot)
07:24<Wolf01>static mean the function is callable without an instance (and has some other nice properties)
07:25<Wolf01>also, it might have a cached value
07:27<@Alberth>and it's not available outside the .cpp file it is in
07:28<@Alberth>oh, it's a function member eh? the latter only holds for normal functions, sorry
07:33<Samu>i got to copy paste the whole function?
07:35<@Alberth>to do what?
07:35<Samu> - i've put in lines 86 to 97
07:36<Samu>then i used the IsDead in lines 111 and 130 so far
07:36<Samu>havent edited the rest yet
07:38<@Alberth>it's much better if you make the already available function available everywhere you need it
07:38<@Alberth>duplicating code creates major headaches if you want to change thigs
07:39-!-SWAT [] has quit [Ping timeout: 480 seconds]
07:39<Samu>it is also used in another big function, the AI Debug window function
07:39<V453000>I wonder if the best way to build factorio railways is one huge 1-way loop
07:40<Samu>hmm, so where do i put this IsDead at
07:41<@Alberth>V: if all trains must vist A -> B -> C -> ... -> A, then looks like it :)
07:41<V453000>no, even when they don't
07:41<V453000>building junctions is generally quite an issue without bridges
07:41<V453000>chain signals are great but trains still need to cross
07:41<Samu>sec, let me get the list of all functions it would help
07:41<@Alberth>no worm holes, just no bridges :p
07:41<V453000>.. :)
07:42<Samu>struct AIConfigWindow : public Window {
07:42<@Alberth>double track around the stations they don't need to transfer cargo?
07:42<Samu>struct AISettingsWindow : public Window {
07:44<@Alberth>a number of connected circles like an 8 but more circles could work perhaps
07:44<Samu>struct AIDebugWindow : public Window {
07:44<Wolf01>V, do you bother about delivering speed in factorio?
07:44<Wolf01>I bother about stuff getting delivered and not chewed by biters around the map
07:45<Wolf01>also... all my bases are under attack...
07:46<V453000>defense is eazy
07:46<V453000>just blueprint more laser wall :D
07:46-!-MonkeyDrone [~Monkey@] has quit [Quit: Leaving]
07:47<Wolf01>yes, you can defend every single outpost, but I really need a chinese great wall now
07:47<Wolf01>aliens seem to have learned to pass between the outposts instead of attacking them
07:48-!-SWAT [] has joined #openttd
07:48<Samu>there's an already available function inside struct AIDebugWindow : public Window {, it's where I copied the code from
07:48<Samu>how do i make it available for the other 2
07:49<@Alberth>move it out of the window class/struct
07:50<V453000>yeah, great wall is usually a good idea
07:50<Alkel_U3>Yesterday I tried the oxygen mod with train outposts mod. I died so fast I didn't even get to see a biter on radar
07:52<Wolf01> mmh underground train
07:54<@Alberth>no bridges eh? :)
07:57<Wolf01>I think I'll install the shuttle train mod and the fat controller mod, at least I could call a train to go to different outposts
07:58<Wolf01>:( the attachment does not exist anymore
08:00<V453000>well the cursed rail thing is cute but it's just an unobstructed separater railway
08:00<V453000>I don't have a problem with making my factory fit elsewhere
08:00<V453000>I have the problem of trains colliding with each other
08:00<V453000>which I bet this thing keeps
08:01<Wolf01>how do you get colliding trains=
08:02<V453000>at the junction of course
08:02<V453000>if you can't have multilevel junction
08:02<V453000>I guess tunnels would work
08:03<Wolf01>I set up chain signals and trains wait for free block without blocking the junction
08:03<Wolf01>I don't use it, no need to
08:03<Wolf01>too bad is for 0.11
08:09-!-SWAT [] has quit [Ping timeout: 480 seconds]
08:14<V453000>well that's bad as well, the extra tunnel should require quite a bit of space so that it costs you stuff
08:14<V453000>not just "we can cross now"
08:24<@peter1138>but realism!
08:24<Wolf01>fuck realism?
08:29<Samu>how do you pause a script? i see code about IsPaused
08:29<Samu>how do i do this in a game?
08:30<Wolf01>iirc IsPaused() is when the script is doing nothing because it doesn't need to do anything
08:31-!-Supercheese [] has quit [Read error: Connection reset by peer]
08:31-!-Supercheese [] has joined #openttd
08:31<Flygon>Where was that thing that put townnames onto scenario maps again?...
08:32<Wolf01>mmmh, I don't want to know what will happen when the fire nation will attack the southern outpost...
08:32<Flygon>I'm bored, and a friend of mine is daring me to make a 4096*4096 Australia scenario
08:32<Flygon>So now I'm going "Fuggit, fine"
08:32<Flygon>Even though I think a 16k*16k scenario is a better use of time :P
08:35<V453000>one thing is realism fucking which is sensible, but just common sense is important
08:35<V453000>having trains cross is weird
08:35<Wolf01>I remember ottd having 90° turns and train crossing themselves
08:37<Samu>i don't know how to trigger the execution of these lines in a game
08:38<Samu>line 1339
08:40<@Alberth>looks like hitting a debugging breakpoint
08:40<Samu>also line 1279
08:42<Samu>I don't see a Continue button in AI Debug window... what am i missing
08:46<V453000>Wolf01: doesn't mean it is a good thing :P
08:46<Wolf01>Samu: what you do need to continue? the AI is dead
08:46<Wolf01>oh, !isdead
08:47<@Alberth>Samu: no explanation at the wiki about the break thing?
08:48-!-Eddi|zuHause2 is now known as Eddi|zuHause
08:52<Samu>ah i did not know about this
08:53<Samu>interesting, the continue button is there
08:56-!-Prof_Frink [~proffrink@] has quit [Read error: Connection reset by peer]
08:56<Samu>ohh.... another color
09:01-!-Prof_Frink [~proffrink@] has joined #openttd
09:03<Samu>I see now how it pauses
09:08<Samu>nice, my code replacement works
09:12<Samu>i must have an IsDead compatible for all the 3 different functions
09:12<Samu>or whatever they're called
09:14-!-Klanticus [] has quit [Read error: Connection reset by peer]
09:17<Samu>hmm i'm unsure if my IsDead adaptation works for all the 3 structs
09:27-!-sla_ro|master [slamaster@] has joined #openttd
09:29<Samu>am i doing it right?
09:34<Samu>i'm gonna ruin the entire code, see if it works
09:34<@Alberth>looks ok-ish
09:34<@Alberth>no "this" in the moved function
09:35<@Alberth>so it shouldn't access anything from the debug window
09:35<Samu>it's originally !this-IsDead()
09:36<Samu>oops !this->IsDead()
09:36<@Alberth>yes, the function is now not a member any more, so you can't access it through this
09:37<Samu>I must have screwed somewhere, because if (!IsDead(this->ai_debug_company)) { was working
09:38-!-tokai|noir [] has joined #openttd
09:39-!-mode/#openttd [+v tokai|noir] by ChanServ
09:42-!-tokai [] has quit [Ping timeout: 480 seconds]
09:54<Flygon> Just to be clear, is this the most up-to-date method of making heightmaps?
09:56<@peter1138>er, you can make a heightmap however you like
09:57<@peter1138>open image editor, draw...
09:57<Flygon>Yes, but from real world locations
09:59<Samu>now I can replace this huge line "(this->slot == OWNER_DEITY && !Game::GetInstance()->IsDead()) || (Company::IsValidAiID(this->slot) && !Company::Get(this->slot)->ai_instance->IsDead())" to just this line "!IsDead(this->slot)"? or is it "!IsDead(slot)"?
09:59<Samu>this->slot vs slot is what's still confusing me
10:00-!-supermop [] has joined #openttd
10:01<@Alberth>sometimes they are the same thing and sometimes not
10:01<@Alberth>this->slot is the "slot" variable in the class/struct
10:01<@Alberth>slot is a local variable in the code, or, if it does not exist, this->slot in the class/struct
10:02<@Alberth>openttd code however forbids the latter, hence all code uses "this->" prefix to refer to variables (and functions) in the class/struct
10:03<@Alberth>hi hi supermop
10:03<@Alberth>it needed a cliff hanger :p
10:07<Samu>okay, so this->slot
10:07<Samu>is correct
10:08<Wolf01>this.x vs this->x is that confuses me :)
10:10<argoneus>this is a pointer
10:10<argoneus>so either (*this).x or this->x
10:10<argoneus>they're equivalent
10:11<Wolf01>ok, then I'm confused about this and (*this)
10:11<argoneus>this is a pointer
10:11<Wolf01>I just can't understand why C++ is not able to handle the difference by itself
10:11<argoneus>*this resolves a value where it points
10:11<@Alberth>Wolf01: it can, that's why you get an error :p
10:12<argoneus>"this" is a pointer to the current instance of the class/struct
10:12<@Alberth>it's largely historical, I think
10:12<argoneus>it has to be like that
10:12<argoneus>you want to access one specific instance of the class in the memory
10:13<argoneus>so you need a pointer to the one specific instance
10:13<@Alberth>argoneus: what Wolf01 is arguing about is that there is no point in making the difference. You cannot do . on a pointer anyway
10:13<argoneus>oh, like that
10:13<@Alberth>so why not automagically . to ->
10:14<@Alberth>like eg Java, and I guess C#
10:14<argoneus>I guess that's historical then
10:14<argoneus>thing is
10:14<argoneus>you can't do (*this).bla in java
10:14<argoneus>in java everything is a magic reference or whatever they are
10:14<@Alberth>* doesn't exist
10:15<argoneus>and you pass around reference
10:15<@Alberth>I think the idea is that * and -> are different on objects, and you want consistency in operations
10:15<@Alberth>argoneus: not entirely, the simple types (int, float etc) are by value
10:16<@Alberth>to make it simpler :p
10:16<argoneus>right, primitives
10:16<argoneus>BUT WAIT, THERE'S MORE
10:16<argoneus>you can do Integer x;
10:16<argoneus>because... reasons?
10:16<@Alberth>List<int> doesn't work
10:16<argoneus>huh, it doesn't?
10:16<@Alberth>although they are working on it
10:16<argoneus>wait really?
10:16<Wolf01>in C# everything is an object, and everything uses "."
10:16<argoneus>I never knew
10:17<@Alberth>nope, must be List<Integer>
10:17<Wolf01>(and you can do List<int> in C#)
10:17<argoneus>"the java specification forbids the use of primitives in generics"
10:17<argoneus>for some reason I never needed this I guess
10:17<argoneus>thanks, I learned something new
10:17<@Alberth>java spec is borked at lost of places :)
10:18<@peter1138>Does java have unsigned integers yet?
10:18<@Alberth>no, not that I know
10:18<@Alberth>although you can just use the 32 bits, if you ignore the weird values
10:19<argoneus>this is one of the reasons why packing structs is annoying with Java
10:19<argoneus>you need to use byte arrays
10:19<argoneus>I tried doing something like that for openttd and it was a pain
10:19<argoneus>openttd uses packed structs for networking, right
10:20<@Alberth>quite normal to use packed structs :)
10:20<argoneus>I can't say I've seen it somewhere else
10:20<argoneus>then again I've never really done networking on a low level
10:20<@Alberth>although I always expand it to reading bytes and glueing them together again
10:21<argoneus>I feel slightly bad for picking up software engineering at uni
10:21<argoneus>I thought it would teach me how to code
10:21<argoneus>and how to work with large codebases
10:21<argoneus>but nope
10:21<@Alberth>I could have told you that :p
10:22<@Alberth>many people believe CS is about programming :)
10:22<argoneus>well, in the end, these degrees are similar, right
10:22<argoneus>in terms of practical usability
10:22<argoneus>you have to learn most things in the field anyway
10:22<argoneus>and I know the basics of CS and automata and stuff
10:23<argoneus>a friend of mine picked up CS instead of softeng and the only difference is when I was drawing UML diagrams he was writing a front-end for gcc
10:23<argoneus>(which I suppose is much more fun and useful)
10:23<@Alberth>euhm, not sure about that :p
10:24<@Alberth>in general, uni teaches you to find structure in apparent chaotic problems
10:25<@Alberth>and then use that structure to solve the problem
10:27<@Alberth>how to work with tools, documents, and programming is learned by experience, and the uni doesn't have enough hours to teach you that
10:27<@Alberth>since it takes several years at least
10:27<argoneus>also each company has different styles and policies and technologies
10:27<argoneus>and it's physically impossible to cover those
10:28<@Alberth>but your "find structure in apparent chaos" skills do work there
10:28<Wolf01><Alberth> in general, uni teaches you to find structure in apparent chaotic problems <- and I reaaly need to do that but I never made it to that point of the course :(
10:28<@Alberth>which is why you are able to find your way around it
10:29<@Alberth>Wolf01: ha :) Well, I found it doesn't teach you how to recognize apparent chaos from real chaos either :)
10:29<argoneus>by the way, real talk, you have a lot more experience than me
10:30<@Alberth>I found out after 10 years :p
10:30<argoneus>is it a bad idea to work at a start-up?
10:30<argoneus>I used to think it was a hip thing where you have to work 80 hours a week and may or may not get results
10:30<argoneus>but the flip side is you get to work on non-legacy code with enthusiastic people who don't suffer from depression
10:30<argoneus>does it generally work or not work?
10:31<@Alberth>it really depends on what you like and need to have around you
10:31<argoneus>I'm not sure what kind of dev job I want to do :(
10:31<argoneus>I considered trying to apply for Factorio since that seems really fun and interesting
10:31<argoneus>but they are only looking for senior developers
10:32<argoneus>senior game developers, even
10:32<@Alberth>game industry is quite difficult, every kid wants to make games
10:32<argoneus>I'm neither of those
10:32<supermop>argoneus: start up = free beer
10:32<supermop>my fiance's start up has two kegs on tap at all times
10:32<argoneus>V453000: that's right, right
10:32<argoneus>supermop: the fuck
10:32<supermop>also the fire people all the time, so trade off
10:33<argoneus>I just want a job where I don't work on 30 year old legacy code
10:33<supermop>but that's a NYC start up which are more ruthless than in california or boston or europe
10:33<Samu>the biggest line i had on ai_gui.cpp has been reduced to just this:
10:33<argoneus>and my job is actually important to the company
10:33<Samu>bool editable = _game_mode != GM_NORMAL || IsDead(this->slot) || (config_item.flags & SCRIPTCONFIG_INGAME) != 0;
10:33<Samu>this is really cool
10:33<argoneus>I did a part-time job at Oracle, doing QA
10:33<argoneus>and it drained me mentally
10:33<argoneus>really hard
10:33<argoneus>not only was the work boring, no one even appreciated it or cared about it
10:33<@Alberth>QA sucks badly
10:34<argoneus>and the devs sometimes gave me chores
10:34<argoneus>that they didn't want to do
10:34<argoneus>such is life being a part-time student at a super-company, right
10:34<supermop>argoneus: also legacy code may be written by people who know what they are doing, at some start ups, most of the entry level devs might be straight out of a ruby bootcamp and have no idea yet
10:34<argoneus>>ruby bootcamp
10:34<argoneus>NO WEBDEV
10:35-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
10:35<@Alberth>argoneus: legacy code is an order of magnitude more complicated than new code
10:35<supermop>Alberth: my fiance's frustration is not with code but with people she works with
10:36<argoneus>Alberth: I saw some Solaris code
10:36<argoneus>that code
10:36<argoneus>it's basically super-optimized for the specific compiler version they're using
10:36<supermop>but she is a data scientist so she is somewhat removed from their day to day work
10:36<argoneus>some lines that seemed to make no sense actually helped it run faster somehow
10:36<supermop>ie she writes and works on her own
10:36-!-TheMask96 [] has joined #openttd
10:36<argoneus>and the code was hard to read
10:36<@Alberth>ha, that even happens with new code :p
10:37<@Alberth>I was trying to make a kinect decoder runs faster, and removed an always-false if condition. It slowed down :p
10:37<@Alberth>argoneus: yep, genius programmers can write complicated code :p
10:38<supermop>argoneus: depends also on the start up scene and culture of the city you live in/want to live in
10:38<argoneus>but yeah, basically, I have absolutely no clue what kind of job I want to do
10:38<@Alberth>I am guessing it has to do with branch prediction
10:38<argoneus>I'm not one to wear thick glasses and drink coffee from a fancy mug
10:38<argoneus>I can't even grow a beard
10:38<supermop>what about fancy coffee from a thick mug?
10:39<argoneus>fancy coffee?
10:39<argoneus>so starbucks?
10:39<supermop>starbucks is shit
10:39<argoneus>I have no idea, I don't like coffee
10:39<argoneus>too bitter for me
10:40<supermop>im off to buy fancy coffee from the above in a paper cup
10:40<argoneus>why is their logo half my screen
10:40<argoneus>I have to scroll down to even read text
10:40<@Alberth>screen too small? :p
10:40<supermop>but only because there is no intelligentsia, counter culture, or stumptown nearer to the office
10:40<supermop>yeah fine on my screen
10:41<argoneus>click on "Coffee"
10:41<argoneus>on that page
10:41<argoneus>THAT logo.
10:41<supermop>that one better?
10:41<argoneus>V453000: I was just being sad you are only recruiting senior game developers
10:42<supermop>V453000: argoneus instinctively highlighted you when i mentioned BEER
10:42<argoneus>that looks nice supermop
10:42<V453000>is the only difference between junior and senior that one knows his shit better?
10:42<argoneus>V453000: I thought senior was "sorry you don't have 15 years of experience"
10:43<argoneus>I mean
10:43<argoneus>technically, it doesn't say you need experience
10:43<V453000>idk what are the criteria and I doubt they are super strict
10:43<argoneus>I might try applying for Factorio after finals
10:43<argoneus>literally living in prague
10:44<supermop>argoneus: if you dont like bitter, start with roasters like these, 3rd wave light roasts, especially the Kenyans and Ethiopians are fruiting and sweet
10:44<supermop>slightly sour, not at all bitter
10:44-!-sim-al2 [] has joined #openttd
10:44<supermop>like a fruity tea
10:44<argoneus>supermop: m8 I don't even know what this is
10:44<argoneus>I just bought some cheap coffee at my local grocery store
10:44<argoneus>and decided I don't like coffee
10:45<supermop>i didnt drink coffee until abt 4 years ago when i go into this stuff
10:45<supermop>theres you problem
10:45<supermop>im sure prague has a good 3rd wave roaster
10:45<supermop>V453000: true?
10:46<V453000>3rd wave roaster?
10:48<argoneus>Alberth: if I may ask, what kind of job do you personally think is the most "fun"?
10:48<argoneus>in terms of development
10:49<argoneus>or at least some jobs I should really avoid (other than QA)
10:49<argoneus>you have a lot of experience, right
10:49<supermop>idk if you can trust this argoneus but here is something:
10:49<@Alberth>that has no meaning to you
10:49<V453000>I would avoid bathroom hygiene levels manager
10:50<argoneus>I bet that's more fun than QA
10:50<@Alberth>you should ask yourself what environment do you need, what kind of work do I enjoy or hate, what languages
10:50<@Alberth>do you want to go deep, same kind of stuff for 10 years
10:50<V453000>yeah, I don't think there is an universal scale of more fun > less fun
10:50<argoneus>I suppose a small-ish stable company working on a cool project with C#/C++/Python/whatever could be nice
10:50<@Alberth>or do something else every 3 months
10:51<argoneus>something like Factorio seems really comfy
10:51<@Alberth>is stable job important, or place where the work is, or duration of journey
10:51<argoneus>so instead of looking for one specific thing
10:51<argoneus>I should just filter existing things and pick the best one?
10:52<@Alberth>one solution is no solution
10:52<argoneus>it really is a privilege being able to choose the job
10:52<argoneus>I sure am glad I'm not a lawyer
10:52<@Alberth>you cannot judge it, as there is no alternative
10:52<argoneus>or a mentally ill webdev
10:53<@Alberth>so yeah, looks what's there, and picture yourself in that job
10:53<argoneus>to be honest, at one point I was even wondering if I even like programming, as I absolutely hated QA
10:53<argoneus>but from the reactions of other people it's normal to......not love that job
10:53<supermop>if you are still fairly young and have not financial obligations or debt, you could just do whatever jobs to try them out
10:54<@Alberth>QA is not even near programming
10:54<argoneus>I did code some stuff in perl
10:54<argoneus>but that was mostly maintaining legacy tools
10:54<@Alberth>although you get in contact with it
10:55<argoneus>I was actually assigned to a new internal project and I had fun with it
10:55<supermop>i thin it is good to try things from tiny garage start up with no funding up to huge government bureaucracy, just to find where you best fit
10:55<argoneus>but then they hired a graduate full-time, kicked me off it, moved me to another desk and that was that
10:55<supermop>that goes for any industry
10:55<argoneus>supermop: I thought it was really bad for your CV to jump jobs a lot
10:56<argoneus>is that not the case then?
10:56<supermop>depends on where you are in your career
10:56<@Alberth>as long as you can explain things, I think it would be alright
10:56<argoneus>so a fresh graduate having 3 jobs in the span of 2 years is fine?
10:56<supermop>and obviously spend longer than a month each place
10:56<supermop>yes thats ideal
10:56<@Alberth>"I moved to a new employer because they paid $5 more / hour" :p
10:56<argoneus>I thought I had to commit
10:57<argoneus>well I feel a bit better now
10:57<supermop>there has been a change
10:58<supermop>and it depends on the place, but the culture of one job cradle to grave is gone
10:58<argoneus>oh, that's good
10:58<supermop>you need to spin it as a learning experience
10:58<argoneus>so something like
10:58<argoneus>"I joined a company to work on this new project"
10:58<argoneus>"and left when it was done"
10:58<argoneus>or something?
10:59<@Alberth>there are also companies that hire you, and then send you to different companies for a period to do a job
10:59<supermop>that way the person hiring can say, they built up this broad experience, seeking to learn what they needed to
10:59<@Alberth>not sure what's called in English, perhaps posting?
10:59<supermop>temp agency
11:00<supermop>also in 5-10 years when you are looking for a more senior position doing a specific thing, not only will you know what you want, but the company will know, this guy has seen enough to know that he wants to do this
11:01<argoneus>I didn't see it that way
11:01<supermop>he's not going to discover that he hates it and walk out in 2 months
11:01<argoneus>like "okay he's been in like 6 different jobs"
11:01<argoneus>"and he's signing up for something he's done before"
11:01<argoneus>"that's a good sign"
11:01<argoneus>like that?
11:01<supermop>nor has he been doing the same thing all his live and now it has driven him crazy
11:01<argoneus>I see
11:01<@Alberth>there is no inherent good or bad in anything, the reasoning is at least as important
11:01<supermop>but there is a balance and it depends on how you pitch it
11:01<argoneus>I'm glad to hear that
11:02<argoneus>I thought I had to pick and stick with something
11:02<argoneus>after graduating
11:02<supermop>what alberth said ^
11:02<supermop>also it almost doesnt matter at all what yo do right after graduating
11:03<@Alberth>do a world tour for 50 years :p
11:08<supermop>again, what Alberth said ^
11:21<Wolf01>mmmh, I knew I would have started again this trend... mod it until it does crash, like Skyrim
11:23-!-Doge [] has joined #openttd
11:23<Doge>1 Say fridge 5 times 2 Say hotdog 2 times 3 hold ur breath till u post this one another game check your voice
11:24<Doge>Alberth is always here
11:24<@Alberth>nah, you're not around often enough to notice I am not :)
11:25<Doge>LOL :P
11:25<Doge>Im not always on the OpenTTD
11:25<Doge>Because i have other stuff to do
11:25<Doge>Play roblox..
11:25<Doge>Make new operating system...
11:26<Doge>And school.
11:26<Doge>I have linux operating system.
11:27-!-Progman [] has joined #openttd
11:27<Doge>I mean Ubuntu,Windows 95,Xp,Windows 7,8.1 And 10
11:30-!-Doge [] has quit [Quit: Page closed]
11:35<Flygon>I'm still amused OTTD totally compiles for 9x still :3
11:35<supermop>ok got my coffee
11:36<Flygon>I mean
11:36<Flygon>Not unhappy, actually rather quite happy
11:36<Flygon>Just amused
11:36<blathijs>Flygon: IIRC vim (the text editor) dropped support for MS-DOS only recently :-)
11:36<Flygon>Yeah, I noticed that
11:36<Flygon>Kind of a sad moment... but
11:36<Flygon>Er, I don't think anyone really used it O_o
11:37<Flygon>Then again
11:37<Flygon>I'm the guy that got upset when Ragnarok Online client didn't work on Windows 98SE
11:38<Flygon>(I wanted to see how the 90s era internal graphics would handle it :P)
11:38<Flygon>Turns out post-2010ish clients require XP and up
11:38-!-Wormnest [] has joined #openttd
11:43<@Alberth>with video display moving to the video card, the days of cpu blitting are pretty much over
11:46-!-Ketsuban [~ketsuban@2a02:c7d:a34a:9000:4847:e308:f702:6de3] has joined #openttd
11:46<supermop>V453000: how many manhours do you spend painting up sprites post-render?
12:02<@Alberth>can't answer you now, he's too busy painting up sprites :p
12:02<Samu>bah i found a bug with the move up / move down slot stuff, grrr
12:04-!-sim-al2 [] has quit [Ping timeout: 480 seconds]
12:04<supermop>i wonder what typical, non vocal players want in a new grf
12:04<supermop>or if they do not want new grfs at all
12:05<@Alberth>I would say playing
12:06<@Alberth>ie firs is popular, since it's designed to play
12:06<supermop>yet only like 5% of servers seem to run firs
12:07<@Alberth>yes, only reddit does afaik
12:07<@Alberth>a far bigger percentage of MP at least, just play vanilla
12:07<supermop>needs to be an official Andy server playing FIRS CHIPS RH IH Squid 24/7
12:07<@Alberth>downloading grfs before play is a big hurdle
12:08<@Alberth>don't know about train sets
12:08-!-Quatroking [] has joined #openttd
12:08<@Alberth>you see a lot of nationalism there, I think
12:09<@Alberth>german players like DBset, dutch players the Dutch set, and so on
12:10<@Alberth>although most are not designed for play, but more as replicating the trains of a country
12:10<@Alberth>even if it makes no sense, game-play wise
12:10<Samu>darn slot 15 is now bugging me
12:10<Samu>i can move slot 15 down.... that's not supposed to happen
12:11<Samu>it's my code that's bugged, must find out where
12:11-!-Progman [] has quit [Remote host closed the connection]
12:12<@Alberth>A problem in slow adaption is perhaps unclarity what a newgrf offers
12:12<@Alberth>just a name has no meaning for all but a few nerds that read graphics tt-forums and/or hangout at #openttd
12:12<@Alberth>or #tycoon, or so
12:13<@Alberth>as a new player, you got this insane list of newgrfs, and no pointers at all about what they do, or the quality
12:18<@Alberth>we need an hour or more to set up a MP game with newgrfs, a newbie is not going to manage it at all, imho
12:22-!-Islacrusez [] has joined #openttd
12:22-!-Islacrusez [] has quit [Read error: Connection reset by peer]
12:23-!-Myhorta [] has quit [Ping timeout: 480 seconds]
12:26<Samu>okay, the bug is in IsEditable
12:26<Samu>that for cycle is ruining something
12:26<Samu>it is saying that a supposedly slot 16 is editable
12:27<Samu>there are no 16 slots grrr
12:30<@Alberth>likely, it has undefined behavior for out-of-range slots
12:33<Samu>i solved it, i got rid of that for
12:34<Samu>also got rid of max_slot
12:34<Samu>return slot < MAX_COMPANIES;
12:34<Samu>this does it
12:35<Samu>I was always wondering what was the for cycle doing
12:35<Samu>i didn't know for sure, so i let it stay there
12:43<Samu>IsDead might need a better name
12:44-!-Islacrusez [] has joined #openttd
12:44-!-Islacrusez [] has quit [Read error: Connection reset by peer]
12:45<Samu>the issue i have with the name is about human companies
12:46<Samu>IsDead is also taking care of what to return when the slot is a human company
12:46<Samu>but also what to return when the slot doesn't have any company started
12:46<Samu>hmm :(
12:47-!-Islacrusez [] has joined #openttd
12:48<Samu>move up and down code is making use of IsDead, but sometimes there's not even a Human company in the slot above or below
12:48<Samu>it assumes those slots are dead
12:49<Samu>the assumption is correct, but the name "IsDead" makes little sense now
12:54-!-HerzogDeXtEr [] has joined #openttd
12:56-!-sim-al2 [] has joined #openttd
12:57-!-glx [] has joined #openttd
12:57-!-mode/#openttd [+v glx] by ChanServ
12:57<Samu>IsNotStartedOrStartedButDead ?
12:59-!-_johannes [] has joined #openttd
13:03-!-Gja [] has joined #openttd
13:05<_johannes>I'm still writing that savegame->route-network-pdf exporter... Someone said it should not be included in the openttd main tree - is that correct?
13:06<Samu>did someone say "savegame"?
13:07<Samu>i made this patch, don't know if you seen it *cough*
13:07<Samu>for savegame stuff
13:07<Samu>no idea if it's related to what you're doing
13:15<_johannes>no, it's not ;)
13:37-!-gelignite [] has joined #openttd
13:46<supermop>Alberth: so just simple but pretty sets are not the answer?
13:46<supermop>i guess that was the approach pineapple took
13:46<supermop>and ive never seen a server running pineapple
13:47<@Alberth>simple but pretty may be the answer
13:47-!-ToneKnee_ [] has joined #openttd
13:47<@Alberth>but basing it on real-life, including speeds, costs, and other details, without regard to game play, is not, imho
13:47<@Alberth>at least not for all non-rail-enthousiasts
13:48<@Alberth>"you can buy the engine for 5 years"
13:48<@Alberth>wtf, before I finished a piece of track I am 10 years further in the game
13:48<Alkel_U3>I've run a server with Pineapple for some time and people I had there liked it
13:49<supermop>but it seems pineapple meets the simple but pretty goal, but you still run into the issue of new users don't know about it, don't want to have to download before playing mp
13:49<supermop>Alkel_U3: never seen your servers online...
13:50<Alkel_U3>supermop: just saying for good measure, I don't run the server too regularly
13:50<supermop>V453000 was talking a bit ago about modularizing train sprites, i like that idea
13:51<supermop>i think a lot of the wonder and fun of 'progression' in the game is lost if the train set is too prescriptive
13:51<Alkel_U3>hm, I've been getting ready to get the server back up for at least a month now... :/
13:51<supermop>there being only one thing that makes sense to use, you know when it comes about, wtc
13:52<supermop>back in circa 1994, playing as a child
13:52-!-ToneKnee [] has quit [Ping timeout: 480 seconds]
13:52<supermop>the first time playing was so fun because i would be legitimately surprised when a new train came out to use
13:53<supermop>and also i was not familiar with the BR prototypes
13:55<supermop>no way to replicate that in this game though
13:56<Alkel_U3>I had an idea - you would task the manufactuers for a certain category of vehicles, they would be too busy to develop other things for some time and then they would give you a new engine, for example. I'm sure it doesn't sound impossible, not too sure how difficuilt it would be to actualy get it into openttd (probly hella) and not at all sure how viable that would be from gameplay perspective
13:57<Alkel_U3>also modula sprites
13:58<Alkel_U3>I usually think about this in the shower to pass time :-)
13:59<supermop>well it could be simpler than that, but
13:59-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
14:01<supermop>if a train sprite can be randomly composited of 2-3 images, and if vehicle names could be generated like towns
14:01<supermop>you could have vehicles that you do not yet recognize in each game
14:01<supermop>assuming hp and intro date etc changes as well
14:02<Islacrusez>one approach would be to build an entirely fictional tech tree and have their stats randomized (or perhaps procedurally generated might be a better term?); the graphics are technically secondary
14:03<Islacrusez>you could also have a system where you pay a company to develop a design, unlocking retrofits that improve certain aspects of the design
14:03<supermop>but i do not think there would be a way to have say, one game you have 4 electric locomotives over the course of 50 years, and the next game only 2
14:03<Alkel_U3>that would be good. The graphics are important, imho, for the right feel
14:04<supermop>Islacrusez: i dont think the idea of tech trees or research really helps openttd gameplay
14:04<Islacrusez>tech tree is the wrong word, more like a timeline
14:04<supermop>some railroads did in fact develop technology themselves, but it was never a case of "unlocking" anything
14:05<supermop>for example, if got a 10B$ contract to build a railway tomorrow, i could lay miles and miles of track, or i could call up hitachi and go ahead buy a shinkansen
14:06<supermop>i don't need to first figure out what a steam engine is
14:06<Islacrusez>supermop: I'm using the term to represent a new technology being developed and thus being revealed to the player; no point in trying to surprise them if they can see all the retrofits ahead of time
14:07<Alkel_U3>well, a tech tree from the manufacturing companis' points of view, right? They would just kinda at random decide, what area to advance next, so you may have a game with early advanced expensive el. trains and late diesels or vice versa, maybe some advancements to keep steam in the business longer. Right?
14:07<@Alberth>Islacrusez: in a newgrf, that is too complicated
14:07<Alkel_U3>on an unrelated note, I need a new keabord :I
14:07<supermop>well my main issue is less ambitious
14:07<Alkel_U3>or learn to type
14:08<@Alberth>supermop: add more engines that you give to the player, and skip a few at random each time?
14:08<supermop>Alberth: yes
14:08<@Alberth>eg have 8 or 10, and give 4or5
14:08<@Alberth>openttd also does a bit stat randomizing, not sure how much
14:09<supermop>now, if i play default, by the late 70s/early 80s i know not to buy anymore manley morels because i can just feel that Dash around the corner
14:09<@Alberth>oh, you actually bother about such things? :)
14:10<@Alberth>I just run autoreplace on everything every now and then
14:10<supermop>in 94 etc, i often went bankrupt early in game, the first time i even saw a DMU i had my mind blown
14:10<supermop>then blown again the first time i got far enough to see the monorail
14:10<@Alberth>ah yes, the early games :)
14:11<Islacrusez>Alkel_U3, yeah pretty much like that
14:12<supermop>if the game could randomly introduce "DMU 1" with a 50s style locomotive cab one game, that would be exciting
14:12<Islacrusez>Alberth, considering how much we managed to do before OTTD became a necessity, I doubt it's impossible; economy of effort is another matter though
14:13<Islacrusez>I'm also speaking more generally, implementation is rarely the same as the concept that it follows
14:14-!-DDR [] has joined #openttd
14:15-!-frosch123 [] has joined #openttd
14:18<Islacrusez>having more engines than needed is certainly one way of doing it; if that can be made to work then it could perhaps be refined so that certain combinations become more or less likely (for flavour/balance reasons); and if one really wanted to go nuts you could design a set of alternate "solutions" to the problems that every engine made in reality was designed to solve, essentially creating a new alternate history of locomotion
14:18<Islacrusez>every time the game was played
14:19<Islacrusez>and isn't that what we play the game for?
14:22<@Alberth>nope, I don't :)
14:22<supermop>well there is also the issue that any railroad witht e insane profits that you make in the game could develop and commission any type of bespoke train it desired
14:23<@Alberth>I always desire fast maglevs early in the game for my back bone, never happened thus far :p
14:23<supermop>or it could just build new luxury apartments for everyone right next to their place of work so that they do not even need a train
14:24<@Alberth>and let others get my money, nah
14:25<supermop>it seems though that this idea only really has legs if it is somewhat likely to randomly screw over players some games
14:26<supermop>like release an early prototype channel maglev, player spends billions building maglev network, then only release transrapid style maglevs from then on
14:27<supermop>or, say have only a kirby paul until 2010
14:27<Islacrusez>abandoning the idea of directing the research in any way (for now at least; I have)
14:28<Islacrusez>it shouldn't be too crazy, or at least it should have a setting for crazy
14:28<Islacrusez>because I have to say, a ______ challenge sounds hilarious
14:29<supermop>Islacrusez: much of what makes trains and railways so fascinating and idiosyncratic is a result of nearly 200 years of frequent bad decisions and mistakes
14:30<Islacrusez>supermop, all we're doing is looking at those bad decisions and mistakes (as well as good decisions) and looking to see what other choices there were
14:30<Islacrusez>and then randomising the results
14:31<Islacrusez>so you get about as many good and bad decisions, they're just in different places
14:31<supermop>people out there love steam trains, but a time traveller from today would have gone all in on electrics from the 1890s on
14:32<supermop>basically if you could direct the research with modern knowledge, you would always make the "best" choice
14:33<supermop>and it gets even more boring than knowing that your uu37 soon is made obsolete by a floss 47
14:33<Islacrusez>that's kinda the point I'm addressing, isn't it?
14:38<Islacrusez>unless I'm missing something?
14:38<supermop>not sure
14:38<supermop>yo frosch123
14:41<supermop>Alberth: dozens of unused vehicles seems like best way, but then grf gets huge unless they have some way of reusing some standard graphic elements
14:42<@Alberth>"huge" is bigger then 200MB, with yetis around :)
14:42<@Alberth>and zbase :p
14:43<@Alberth>but yeah, re-use of parts would be great, as it's a simple way to make loads of different engines
14:44<supermop>esp if everything is same length
14:44<Islacrusez>if you go with the alternative options theory, you could get away with simply reusing a lot of sprites from mutually exclusive engines; though ultimately modular engines would be very useful for a number of reasons
14:45<supermop>cut every vehicle into 3 parts or so - 25% cab, 50% car body, 25% other cab
14:47<supermop>where vehicle is "first generation diesel", chose 1 cab from list "mk1 cabs" chose mk1 carbody, etc
14:47<Islacrusez>supermop, you could use the same technique to make vehicles of different length; though it may make some trickery to make it not throw a fit
14:48-!-Wolf01 [~Wolf01@] has joined #openttd
14:50-!-Myhorta [] has joined #openttd
14:57<supermop>hmm my tiny 3d printed monorail jewelry has too much slack in the coupler
14:58<Samu>hey Alberth - I am in doubt where exactly to place that IsDead function
14:58<supermop>the space between the car and the 'bellows' can vary from 0-2mm depending on if you are pushing or pulling it along the track
14:58<Samu>that's the full patch with everything already edited to make use of IsDead
14:58<supermop>that is a lot of slack when the car is only 1cm long
14:59<Samu>I'm not 100% sure about where IsDead should be placed, any advice?
15:01<@Alberth>seems fine to me
15:01<@Alberth>it misses a description of the slot parameter
15:03<@Alberth>everybody can find it, without forward declaration, you can't get it much better than that
15:05-!-sim-al2 [] has quit [Ping timeout: 480 seconds]
15:07-!-andythenorth [] has joined #openttd
15:07<supermop>maybe i need alittle cotter pin or something to hold the coupler tight to the car
15:08<andythenorth>cat iz
15:09<supermop>yo andythenorth
15:11<Islacrusez>supermop, apparently I'm an idiot and can't read
15:11<Islacrusez>I now understand what you meant
15:12<Islacrusez>and I agree, too much agency in that sort of tech progression would be bad
15:12<Islacrusez>kinda like rushing go-karts in RCT
15:15<Islacrusez>and thinking about it, balancing that would be more trouble than it's worth; you'd need a civ3-esque tech tree and that'd not fit the game at all
15:21<Islacrusez>I'm imagining creating a tech "tree", where you map the tech progression through history and with every new engine, design, or technology, you go through all the choices made against the requirements to produce that design; then you look at the other options, and make your tech "tree" choose randomly (weighted by previous decisions perhaps) as to which decision it makes... then you build the tree to completion, and make smaller
15:21<Islacrusez>iterative jumps in designs more likely but larger jumps possible; a number of designs would be mutually exclusive (or a high likelihood of being so) to prevent spamming up the world with similar designs for the same uses...
15:21<Islacrusez>In theory you could go monorail before you go diesel xD
15:23<Islacrusez>in fact you could complete the game and never see a diesel engine, which would be amusing
15:27*andythenorth wonders how you could short-cut that
15:27<andythenorth>there’s probably a way to get the result without much complexity
15:28<Islacrusez>the easy way is to fake it; come up with those scenarios and decisions and requirements based on the tech tree you want
15:28<Islacrusez>cuts out all of that pesky research ;)
15:29<@Alberth>randomly add a bit, certain bit combinations enable adding an engine
15:29<@Alberth>if "sufficient" bits are on, make the engine available
15:30<@Alberth>could be problematic on eg model lifetime
15:30<@Alberth>but that also holds for the complicated idea
15:31<@Alberth>could add bits until next engine released
15:31<Islacrusez>the complicated idea just needs a lot of protections like any procedurally generated anything
15:31<Islacrusez>though the idea of a procedurally generated tech tree is a weird one
15:32<Islacrusez>it sounds fun though, I'd love to see it done
15:33<Islacrusez>you'd probably want to change the probability of a new tech/design being developed, increasing it as existing designs get old
15:34<Islacrusez>the in-world analogue being designs being seen as unsuitable over time and new tenders being placed for better ones
15:35<@Alberth>nah, just add more bits to represent each piece of progress
15:35-!-Alberth [~alberth@2001:981:c6c5:1:be5f:f4ff:feac:e11] has left #openttd []
15:38<Islacrusez>I suspect that this is what the relationship between a designer and a developer feels like
15:54-!-_johannes [] has quit [Ping timeout: 480 seconds]
15:57-!-m4rek [] has joined #openttd
15:58<m4rek>well, gotta run a download and apparently even IRC won't cope with what's left of the bandwidth
15:58-!-m4rek [] has quit []
15:59-!-Islacrusez [] has quit [Ping timeout: 480 seconds]
16:08<supermop>i wonder if this is safe for MP?
16:11-!-frosch123 [] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
16:12<Samu>i was having dinner
16:15-!-Wolf01 [] has quit [Ping timeout: 480 seconds]
16:15-!-Wolf01 [~Wolf01@] has joined #openttd
16:18<Samu>oh, right, the description for IsDead, i nearly forgot about it
16:19<Samu>description kinda depends on the structure
16:23<Samu>it is compatible with the 3 windows that make use of it. debug window checks if the selected script is dead. config window checks if the selected slot is dead. parameters window checks if the parameters of the currently selected script is dead.
16:23<Samu>but they're all compatible
16:24<Samu>maybe i shouldn't call it "slot"
16:25-!-drac_boy [] has joined #openttd
16:25<Samu>hmm, id?
16:26<drac_boy>just curious but anyone here from england/europe area and able to name a particular large rail books publisher? (I mean I already know of Platform 5 from england but still, just curious)
16:26<Samu>meh, slot it is, it's the least confusing name
16:27-!-Wolf01 [] has quit [Ping timeout: 480 seconds]
16:30<Samu>it can return 4 types of true's
16:32-!-Wolf01 [~Wolf01@] has joined #openttd
16:42<Samu>Description: * Check whether a Game Script is not running, or if it is running, if it is dead. Check whether an AI slot is not started, or if it is started, it is not an AI, or if it is an AI, if it is dead.
16:45<Samu>every single outcome is useful
16:45<Samu>that's why I'm having a hard time describing it
16:51<Wolf01>I think that you should split it in more functions which do just one thing
16:51<Wolf01>like IsAiDead() IsAiSlot()
16:52<Wolf01>so if it's not an AI slot, it's not necessary to check if it's dead
16:53<Wolf01>and you should ad asserts here and there to be sure to pass only the right thing
16:53<Wolf01>for example you shouldn't pass a OWNER_DEITY slot to IsAiDead()
16:56-!-sim-al2 [] has joined #openttd
17:02<drac_boy>hi sim :)
17:04-!-andythenorth [] has quit [Quit: andythenorth]
17:09-!-Gja [] has quit [Quit: Going offline, see ya! (]
17:13-!-M-E [] has quit [Ping timeout: 480 seconds]
17:18-!-Hiddenfunstuff [] has quit [Quit: HydraIRC -> <- Organize your IRC]
17:44<drac_boy>how doing?
17:44<Samu>i'm having a headache
17:44<Samu>can't think
17:45<Samu>i orchestrated a function too much that it's now too hard to describe it
17:46*drac_boy unfunctions samu? :)
17:46<Samu>it works for what I intended it to do, but.... it's like a 5-in-1 function
17:48<Samu>splitting it into 2 functions could mean.... larger lines on already large lines
17:49<drac_boy>(I was just being a bit silly ofc)
17:49-!-sla_ro|master [slamaster@] has quit []
17:50<Samu>the function is used on 3 different struct's
17:50<Samu>must think
17:52<drac_boy>heh hm interesting
17:53<drac_boy>its £20 anyhow
17:54<sim-al2>Lol I didn't know they have opening engine room windows
17:54<drac_boy>well sim..some of the locomotives actually had center doors
17:54<drac_boy>or were you talking about the smoke instead? :)
17:55<sim-al2>The guy hanging out of the middle, doesn't look like the door
17:56<sim-al2>Doesn't look like they even have center doors"
17:56<drac_boy> I had to check and I found a 52 outline .. its actually windows .. probably to make the engine walkways much less darker without having to bother with light bulbs
17:56<drac_boy>the window location corresponds to the internals tho .. center window is inbetween the two engines .. and the outward windows are between engine and cab
17:56<sim-al2>Yeah lots of locomotives of the 50s-70s have them, I wonder why they disapppeared anyway
17:57<drac_boy>regulations may be to point at me think (especially only 1 or 2 person on a locomotive compared to before)
17:57<drac_boy>heck even on emd geeps it wasn't too unusual to find at least one or more men just standing around on the walkway while train was underway
17:58<Wolf01>oh, it's history channel time :)
17:59*drac_boy whumps wolf01 with a pillow
17:59<sim-al2>I don't know of any regulations on that. It seems cost would be a more pressing reason, with automatic light timers and stuff
18:00<sim-al2>Of course, the modern electircs have center walkways, since they have so much equipment
18:01<sim-al2>Hmm, the Chinese diesels seem to have them:
18:02-!-Wormnest [] has quit [Quit: Leaving]
18:03<drac_boy>that looks like a dual unit russia-style to me :)
18:04<sim-al2>Yeah, they seem to like those. The high power electrics for coal haulage are also built that way
18:04<drac_boy>btw looking more through the catalogue booklet here I also found this which probably is amusing gift idea to some steam lover in an english country perhaps heh:,204,203,200_.jpg
18:04<sim-al2>However, most of the locomotives are still single units
18:05<drac_boy>hm too bad the catalogue doesn't seem to list any books for ivatt steam locomotives (I wouldn't had mind thinking about ordering one)
18:07<Samu>split IsValidAiID from IsDead
18:08<Samu>or just IsValid
18:08-!-FLHerne [] has joined #openttd
18:08<Samu>for both AI and GS
18:08<Samu>instead of IsValid
18:09<drac_boy>ah.. bluebell railway for £5 clearance .. too bad its not something I would want to read much
18:11<drac_boy>btw sim-a12 about 'single units' .. did you know that one of the green russia electric locomotive (I'll have to look it up later re which one) actually was semi-permanently coupled together together with the unused cab being boarded up and corridors added
18:11<drac_boy>only a few examples were done
18:11<drac_boy>kinda a bit unusual move but I guess if they often needed the extra power .. this seem to make sense
18:12<sim-al2>Yeah, I guess they didn't want to change the body work
18:12<drac_boy>well it was only a few of them probably not worth the cost of new units ;)
18:12<sim-al2>I think they actually did that on serveral types. I remember the M62 having it more often, there were even a few 4 packs
18:13<drac_boy>reminds me of old emd geeps having their doors sealed and some windows boarded up to basically turn them into slave units
18:13<sim-al2>I assume the assembly line just cranked them, and the windows were plated over afterwards
18:13<Samu>arf.... it's too difficult to split this function
18:13<drac_boy>yeah M62 looks like the exactly same thing
18:17<sim-al2>Oh, the North Koreans made some interesting mods to a few M62s
18:18<sim-al2>And Azerbaijan too, apparently
18:18<drac_boy>heh...good name for a book "disconnected! broken links in britian's rail policy" .. it doesn't mention so but I suspect its mainly about the breech axe era too :)
18:19<drac_boy>(I think the gov probably somewhat forgot that small lines actually feeds the big heavy lines)
18:20<drac_boy>anyway sim..sorry about this but have to afk to grill some supper so have fun till another time ok? :)
18:20<sim-al2>Ok later
18:20-!-drac_boy [] has left #openttd []
18:26<Samu>2 functions now
18:31-!-liq3 [] has joined #openttd
18:34-!-liq3 [] has quit []
18:34-!-Samu [] has quit [Quit: Page closed]
18:34-!-Samu [] has joined #openttd
18:46<Samu>assert (IsStarted(slot));
18:50<Samu>static inline bool or static bool?
19:04<Wolf01>at least try to understand what are you asking
19:06-!-tokai|noir [] has quit [Quit: c('~' )o]
19:12-!-smoke_fumus [~smoke_fum@] has joined #openttd
19:15<Samu>i can't do this split at least now
19:16<Samu>well, i could, but i'm tired, and the function already works
19:16<Samu>it would also mean, wherever it would be used, splitting it into 2 functions would only increase the size of those lines
19:17<Samu>and those lines are already quite sized
19:17<Samu>are these comments clear?
19:18<Wolf01>just not saying that a function which just returns the result of another function is useless
19:18-!-_johannes [] has joined #openttd
19:19<Wolf01>it makes some sense
19:21<Samu>ty ty
19:28<Samu>instead of IsDead
19:29<Wolf01>IsDead is right
19:48-!-_johannes [] has quit [Ping timeout: 480 seconds]
19:54<Wolf01>also, good night
19:54-!-Wolf01 [] has left #openttd []
20:05-!-Quatroking [] has quit [Read error: Connection reset by peer]
20:12-!-Stimrol [~Stimrol@] has quit [Ping timeout: 480 seconds]
20:18-!-tokai [] has joined #openttd
20:18-!-mode/#openttd [+v tokai] by ChanServ
20:19-!-FLHerne [] has quit [Quit: There's a real world out here!]
20:19-!-FLHerne [] has joined #openttd
20:19-!-FLHerne [] has quit []
20:20-!-Mazur [] has quit [Ping timeout: 480 seconds]
20:30-!-Mazur [] has joined #openttd
20:35-!-Stimrol [~Stimrol@] has joined #openttd
20:44-!-gelignite_ [] has joined #openttd
20:44-!-gelignite_ [] has quit []
20:48-!-Samu [] has quit [Quit: Page closed]
20:52-!-gelignite [] has quit [Ping timeout: 480 seconds]
21:02-!-Defaultti [] has quit [Ping timeout: 480 seconds]
21:02-!-Bluelight [] has joined #openttd
21:09-!-drac_boy [] has joined #openttd
21:09<drac_boy>back for a bit :)
21:10-!-Defaultti [] has joined #openttd
21:27<drac_boy>hm think just going to go to bed
21:27-!-drac_boy [] has left #openttd []
21:47-!-Bluelight [] has quit [Quit: ChatZilla 0.9.92 [Firefox 46.0/20160421124000]]
22:02-!-_dp_ [~dP@2600:3c02::f03c:91ff:fe69:152c] has quit [Ping timeout: 480 seconds]
22:06-!-ConductCat [] has joined #openttd
22:07-!-ConductCat [] has quit [Read error: Connection reset by peer]
22:09-!-dP [~dP@2600:3c02::f03c:91ff:fe69:152c] has joined #openttd
22:09-!-dP is now known as _dp_
22:12-!-ConductorCat [] has quit [Ping timeout: 480 seconds]
22:16-!-ConductorCat [] has joined #openttd
22:58-!-smoke_fumus [~smoke_fum@] has quit [Quit: KVIrc 4.2.0 Equilibrium]
23:16-!-glx [] has quit [Quit: Bye]
23:23-!-Myhorta [] has quit [Ping timeout: 480 seconds]
23:27<Flygon>Ah crap
23:27<Flygon> website won't let me cover the entirety of New Zealand
---Logclosed Sat Apr 30 00:00:50 2016