Config
Log for #openttd on 20th August 2017:
Times are UTC Toggle Colours
00:03:53  <Wolf01> 'night
00:03:56  *** Wolf01 has quit IRC
00:19:42  *** wroom has joined #openttd
00:19:54  <wroom> hello, anyone up?
00:20:49  <wroom> anyone knows where to find more info about writing AI scripts?
00:21:48  <wroom> nevermind just found this: https://wiki.openttd.org/AI:Introduction
00:22:25  *** mescalito has quit IRC
00:28:00  *** wroom has quit IRC
00:31:35  *** Progman has quit IRC
01:01:03  *** supermop has joined #openttd
01:09:04  *** supermop has quit IRC
01:09:46  *** Flygon has joined #openttd
01:11:47  *** supermop has joined #openttd
01:14:29  *** supermop_home has joined #openttd
01:19:48  *** supermop has quit IRC
01:26:36  *** supermop_home has quit IRC
01:30:47  *** gelignite has quit IRC
01:38:12  *** luxtram has quit IRC
01:38:52  *** luxtram has joined #openttd
01:40:48  *** orudge` has quit IRC
01:40:58  *** orudge` has joined #openttd
01:40:58  *** ChanServ sets mode: +o orudge`
01:54:22  *** chomwitt has quit IRC
02:06:26  *** orudge` has quit IRC
02:06:39  *** orudge` has joined #openttd
02:06:39  *** ChanServ sets mode: +o orudge`
02:06:47  *** glx has quit IRC
03:23:34  *** debdog has quit IRC
03:28:36  *** debdog has joined #openttd
03:40:15  *** sim-al2 is now known as Guest2886
03:40:16  *** sim-al2 has joined #openttd
03:41:04  *** supermop_home has joined #openttd
03:44:50  *** Guest2886 has quit IRC
05:01:14  *** JGR__ has joined #openttd
05:07:10  *** JGR_ has quit IRC
05:11:15  *** supermop_home has quit IRC
05:13:09  *** Alberth has joined #openttd
05:13:09  *** ChanServ sets mode: +o Alberth
05:29:12  *** orudge` has quit IRC
05:29:14  *** orudge` has joined #openttd
05:29:15  *** ChanServ sets mode: +o orudge`
05:31:49  *** sla_ro|master has joined #openttd
05:31:54  <V453000> iz dog iz cat
05:31:56  <V453000> iz python
05:43:08  *** supermop has joined #openttd
05:44:14  *** chomwitt has joined #openttd
05:45:20  <Alberth> o/
05:48:17  <V453000> o/
05:48:28  <V453000> assembling giant list is really fun to debug
05:48:32  <V453000> fun as in wtf :D
05:50:06  <Alberth> can't you make the sub-lists smaller temporarily?  eg insert sub_list = [''stuff xyz"]
05:50:42  <Alberth> or split assembly out into a separate function that takes all the sublists
05:50:56  <Alberth> so you can develop and test it separately
05:53:16  <V453000> I basically do
05:53:29  <V453000> I found the issue, just added some debug code :)
05:53:40  <Alberth> yep, good tactic :)
05:54:20  <Alberth> the alternative is pdb, a debugger, but that works better if you have to closely follow all the steps it takes
05:54:47  <V453000> haha well I basically do that, I just put the debug function in every step :D
05:55:27  <Alberth> https://docs.python.org/3/library/pdb.html#module-pdb
05:55:49  <Alberth> interactive command line to step through each line, print vars, etc
05:56:35  <V453000> https://paste.openttdcoop.org/pvjucwtxl :)
05:57:05  <Alberth> :O it's even readable :p
05:57:28  <Alberth> I usually do stuff like  print(n, len(lst))
05:57:38  <V453000> yeah well I don't test it separately
05:57:42  <V453000> so I need readability
05:57:54  <V453000> as there are other things printed all over the place
05:58:11  <Alberth> ah, too much output :p
05:58:25  <V453000> now I need to see how the F do 257 items appear in the list
06:01:28  <Alberth> json?  https://paste.openttdcoop.org/pamsfeefa
06:03:13  *** andythenorth has joined #openttd
06:03:23  <Alberth> more python lovers, o/
06:15:26  <andythenorth> lo
06:16:03  * andythenorth has never learnt pdb
06:16:14  <andythenorth> print(foo) covers all evil
06:16:46  <Alberth> I hardly use pdb too
06:17:55  <Alberth> last time I had a 15-20 'if' statements, and one of them fired, and I needed to know which one, and why
06:18:22  <Alberth> startup took 6 minutes, so I didn't want to do many runs :p
06:29:12  <andythenorth> ok so I’ve rage quit on reviewing bugs :D
06:29:19  <andythenorth> well, more just quit
06:29:27  <andythenorth> bugs / patches /s
06:29:50  * andythenorth now looking at the 161 bugs in FS
06:29:51  <Alberth> yeah, it's complicated
06:30:16  <andythenorth> reviewing?
06:30:29  <Alberth> yes, reviewing is complicated
06:30:37  <andythenorth> it’s above all just boring
06:31:14  <Alberth> code isn't so bad to review, or figuring out if it is proper is also somewhat doable, but deciding whether it is a good addition is a nightmare
06:31:20  <andythenorth> working on stuff I want for the game ~= doing other fun life things > working on stuff other people want for the game
06:31:44  <Alberth> for most stuff, the entire idea is quite alien to me
06:31:55  <andythenorth> +1
06:32:09  <andythenorth> it’s also way too much like work
06:32:42  <andythenorth> 2 out of 75 patches interest me
06:32:45  <andythenorth> and one is just a typo
06:32:53  <andythenorth> in translation keys
06:32:57  <andythenorth> but code quality is important :)
06:33:05  <Alberth> that typo thing does get in the way, doesn't it? :p
06:33:24  <andythenorth> https://bugs.openttd.org/task/6608
06:33:59  <Alberth> :O a real one, how nice
06:34:02  <andythenorth> presumably changing a lang string ID breaks all current translations?
06:34:14  <peter1138> hi
06:34:29  <andythenorth> hi peter1138
06:35:19  <Alberth> no, wolf also changed the string names in the translations
06:36:37  <andythenorth> seems fair
06:37:01  <andythenorth> ha, a patch that peter1138 hasn’t lost on his filesystem https://bugs.openttd.org/task/4934
06:41:37  *** HerzogDeXtEr has joined #openttd
06:41:37  <peter1138> yes that patch wasn't satisfactory
06:44:46  * andythenorth closes a bug
06:45:38  <Alberth> hmm, how did wolf miss src/lang/frisian ?
06:46:46  <andythenorth> :)
06:48:05  <andythenorth> in other places
06:48:14  <andythenorth> some bugs get closed as ‘this is a total tarpit’
06:48:31  <andythenorth> where even diagnosing the issue outweighs any possible benefit
06:48:48  <andythenorth> I would file this under ‘tarpit’ https://bugs.openttd.org/task/6382
06:50:00  <Alberth> timetables **are** very broken
06:50:32  <andythenorth> they’re just a wrong concept
06:50:42  <andythenorth> but my prejudice against them is on record :P
06:50:52  <Alberth> not sure, they do keep the vehicles somewhat spread out over the entire route
06:51:03  <andythenorth> except when they break...
06:51:17  <Alberth> which beats clumping up, so only the first vehicle makes any profit
06:51:29  <Alberth> oh, you need loads of slack :p
06:51:42  <Alberth> and lots of patience to get themselves sorted out
06:51:52  <andythenorth> I just wonder who, ever, might sit and diagnose that bug :)
06:51:54  <Alberth> and a place where they can pass each other
06:51:58  <andythenorth> and what’s gained by fixing it :)
06:52:03  *** mescalito has joined #openttd
06:52:21  <Alberth> I use it mostly in pax & mail services
06:52:31  <andythenorth> here’s another https://bugs.openttd.org/task/6095
06:52:32  <Alberth> where you just run around
06:52:37  <andythenorth> file failed to download, once
06:52:52  <andythenorth> which given upstream issues, transient connectivity failure etc
06:53:01  <andythenorth> or local filesystem errors
06:53:08  <andythenorth> is imho a tarpit
06:54:10  <Alberth> yeah, the error cause is not trackable
06:54:15  <andythenorth> closing
06:54:22  <Alberth> but "error window not on top" is something we might want to fix
06:55:02  <andythenorth> fair
06:55:14  *** debdog has quit IRC
07:01:52  <andythenorth> I have tried to repro this, got nothing https://bugs.openttd.org/task/6216
07:02:36  *** debdog has joined #openttd
07:05:35  <Alberth> perhaps an interaction between sea level and rough land or so
07:05:45  <Alberth> but it's nice swamp-ish land :p
07:07:15  <andythenorth> no repro, no fix :)
07:07:16  <Alberth> :O  frisian isn't even used
07:09:46  <andythenorth> is there any way to see map settings on a save?
07:09:57  <andythenorth> I want to try and repro from the attached save on 6216
07:11:19  <DorpsGek> Commit by alberth :: r27894 /trunk/src (55 files in 3 dirs) (2017-08-20 09:11:08 +0200 )
07:11:20  <DorpsGek> -Fix [FS#6608]: Typo fix in STATIOV_* string names (Wolf01)
07:11:44  <Alberth> likely they are stored in the variables you can see in the console
07:12:12  * andythenorth had better learn to debug better
07:14:26  <andythenorth> ok, using same seed as save in 6216, I can’t repro
07:14:32  <andythenorth> I don’t have exact settings
07:14:41  <andythenorth> also, not being able to copy-paste in console
07:14:42  <andythenorth> is crap
07:15:06  <Alberth> you also need the exact same version
07:15:11  <andythenorth> ach
07:15:15  <Alberth> seed is version dependent
07:15:18  <andythenorth> lawks
07:15:39  <andythenorth> ok, well I’m not going back to 1.5.0 beta to repro :)
07:15:48  <andythenorth> it doesn’t happen in 1.7.1 or 1.6.1
07:16:11  <Alberth> at least not trivially reproducible :p
07:16:39  <andythenorth> we’d have reports if it was frequent
07:16:58  <Alberth> the general landscape is a major step forward compared with the original terrain generator, so who's complaining :)
07:17:20  <andythenorth> are you saying “Feature not bug”? :P
07:17:44  <Alberth> don't think so
07:18:40  <andythenorth> it’s a bit of a second class environment for developers eh?
07:18:43  <andythenorth> no tab complete
07:18:46  <andythenorth> no copy-paste
07:18:58  <andythenorth> not much in the way of tests
07:19:28  <andythenorth> no known-good test data (or known-bad test cases)
07:19:40  <Alberth> /me ponders linking the "most tests are useless" article :p
07:19:50  <andythenorth> functional tests aren’t useless
07:20:04  <Alberth> there are a few regression tests in the AI area
07:21:23  <andythenorth> one of the most valuable things I’ve seen is known-good content
07:21:33  <andythenorth> in ottd, that would be savegames
07:22:16  * andythenorth thinking
07:22:27  <Alberth> yeah, I do such tests too at work
07:22:46  <Alberth> but it mostly works if you have a quick decision check
07:22:54  *** debdog has quit IRC
07:23:21  <andythenorth> I haven’t made any so far because I’d break them all the time
07:23:30  <andythenorth> my usual case is testing newgrf
07:23:43  <Alberth> defining "it's correct" in an openttd game is far from trivial
07:23:51  <andythenorth> so, e.g. testing FIRS production means setting up vehicle routes, running the game blah blah
07:23:59  <andythenorth> but then I break the savegame with changes :P
07:24:11  <Alberth> factorio builds and runs such tests
07:24:34  <Alberth> probably by executing some script to build the setup
07:24:43  <andythenorth> AI or GS then
07:24:48  <Alberth> and deciding by something happening
07:28:19  *** supermop_home has joined #openttd
07:29:05  *** debdog has joined #openttd
07:29:35  *** supermop has quit IRC
07:41:24  *** Wolf01 has joined #openttd
07:41:41  <Wolf01> o/
07:41:44  <Alberth> o/
07:42:09  <Wolf01> "Missed the 'src/lang/frisian.txt' file, but it seems that isn't even compiled." <- I don't even have it
07:42:35  <Alberth> :O
07:42:49  <Wolf01> Something fishy?
07:43:06  <Alberth> clearly, but no idea what's happening
07:43:25  *** Progman has joined #openttd
07:43:35  *** supermop_home_ has joined #openttd
07:44:33  <Alberth> it's src/lang/unfinished/frisian.txt
07:45:25  <Alberth> svn reports it as a file in the VCS
07:45:52  <Wolf01> Yes it's there
07:46:07  <Wolf01> Oh, VS can't find those one
07:46:08  <Alberth> as you had all other unfinished languages in the patch
07:46:49  <Wolf01> I think they are excluded from the solution
07:47:13  <Alberth> it is, the file isn't build by strgen
07:47:18  <Alberth> *lng* file
07:47:46  <Wolf01> Shit, I can't rely on IDE file search
07:48:36  *** supermop_home has quit IRC
07:48:52  <Alberth> clearly, you must have all files marked as part of the project, or they don't exist :p
07:49:01  <Alberth> but silly indeed
07:49:09  <Wolf01> Even with "show all files
07:50:14  <peter1138> bash + vim isn't an IDE?
07:50:34  <Alberth> to some it isn't
07:50:43  <Alberth> they like to make their own wheel
07:51:42  <Alberth> in particular OS manufacturers that believe a computer is a useful tool without a compiler on it
07:53:05  *** orudge` has quit IRC
07:53:29  *** orudge` has joined #openttd
07:53:30  *** ChanServ sets mode: +o orudge`
07:55:12  <Wolf01> It's an OS for the masses ;)
07:57:02  <Alberth> such a shame, using it as just a glorified type writer
07:57:28  <Alberth> :)
07:58:34  *** supermop_home has joined #openttd
07:59:48  *** supermop_home_ has quit IRC
08:01:51  *** frosch123 has joined #openttd
08:01:57  <Wolf01> Quak
08:03:02  <frosch123> hoi
08:04:15  *** sim-al2 is now known as Guest2901
08:04:16  *** sim-al2 has joined #openttd
08:09:19  *** Guest2901 has quit IRC
08:11:11  <andythenorth> https://bugs.openttd.org/task/6606 o_O
08:11:15  <andythenorth> fix looks valid
08:11:57  <Wolf01> Yes
08:12:35  * andythenorth compiling it
08:13:16  *** supermop_home_ has joined #openttd
08:14:49  *** supermop_home has quit IRC
08:15:11  <Wolf01> Fix is incomplete
08:15:21  <andythenorth> https://bugs.openttd.org/task/6606#comment14589
08:15:32  <andythenorth> Wolf01: what did I miss? o_O
08:16:00  <Wolf01> Oh no, it's right, I just found twice the same result as I looked for the string
08:16:13  <Wolf01> (3 results)
08:16:52  <Alberth> language files are in some other part?
08:16:58  * Wolf01 still sleeping
08:17:58  <andythenorth> yeah that one should go in imo
08:18:28  <Wolf01> Agreed
08:18:57  *** Progman has quit IRC
08:19:10  <Wolf01> Mark it with patch
08:19:42  <Alberth> don't bother, I'll add it
08:19:59  <andythenorth> I already did it
08:20:11  <andythenorth> it’s interesting have ‘with patch’ and ‘patch’ as status and type
08:20:22  <andythenorth> bug trackers are always confusing :)
08:20:24  <Alberth> quick andy :)
08:20:41  <andythenorth> admin is my main job :P
08:20:56  <andythenorth> how do I set the game seed?
08:21:02  * andythenorth trying to make sense of https://bugs.openttd.org/task/6604
08:21:13  <andythenorth> I can’t find a console command to set the seed
08:21:25  <Wolf01> Patch type is confusing... patch for what? Feature? Bug? Just codechange?
08:21:25  <andythenorth> there is EBKAC somewhere
08:21:33  *** ToBeFree has joined #openttd
08:21:51  <andythenorth> :)
08:22:51  <Wolf01> I marked mine as "feature request" and I would have set the status as "with patch" but I have a branch for it instead
08:23:04  <andythenorth> eh, 6604 is dull, I’m not exploring that any further :P
08:24:02  <Wolf01> Set the seed via console (set generation_seed N) <- OMG there it is
08:24:53  <andythenorth> yes
08:25:08  <andythenorth> but there’s not copy-paste and no tab-complete
08:25:24  <andythenorth> I’m not sitting typing all that out to reproduce his 5 different cases
08:25:30  * andythenorth makes way too many typos for that
08:25:46  <Wolf01> You could use "1" as seed
08:26:15  <andythenorth> too lazy
08:26:28  * andythenorth looking for other FS
08:26:34  <Wolf01> I'm going to try it with the tropic tgp change
08:26:36  <andythenorth> 453 left
08:27:27  <andythenorth> anyone got 4K monitor? :P
08:27:29  <andythenorth> https://bugs.openttd.org/task/6567
08:27:54  *** supermop has joined #openttd
08:28:08  <DorpsGek> Commit by alberth :: r27895 trunk/src/vehicle_gui.cpp (2017-08-20 10:28:05 +0200 )
08:28:09  <DorpsGek> -Fix [FS#6606]: Tooltip of 'increase service interval' said 'decrease' (adf88)
08:28:18  <Wolf01> <andythenorth> but there’s not copy-paste and no tab-complete <- are you kidding? I've just done it
08:28:34  *** supermop_home has joined #openttd
08:28:36  <andythenorth> ho :)
08:28:40  <andythenorth> what am I doing wrong? o_O
08:29:02  <andythenorth> oh so there’s paste
08:29:09  <andythenorth> but not copy, because no text caret?
08:29:43  <andythenorth> is inflation a supported feature?
08:29:48  <andythenorth> https://bugs.openttd.org/task/6363
08:30:02  * andythenorth would sunset inflation w.r.t fixing it
08:30:18  <andythenorth> it’s fundamentally broken, and minor fixes are a waste of time
08:30:56  <Wolf01> OK, SE doesn't obey to the seed too
08:31:38  <Wolf01> Tried setting it after and before clicking on "random land"
08:33:28  <Alberth> making inflation somewhat configurable might not be a bad idea
08:33:34  *** supermop_home_ has quit IRC
08:33:40  <Alberth> users could then tune the disaster :p
08:34:10  <Wolf01> Ok, I know what to do: add a seed textbox and only save the seed in settings when confirmed
08:34:17  <Alberth> but I just turn it off, I am not interested in money
08:34:17  <andythenorth> Alberth: part of ES :P
08:34:22  <andythenorth> I turn it off too
08:34:27  <andythenorth> game does not need inflation
08:34:33  <andythenorth> did TTD have it?
08:34:36  <Alberth> yes
08:35:22  <andythenorth> so the OpenTTD innovation was to enable disabling it :P
08:35:26  <andythenorth> hmm
08:35:55  *** supermop has quit IRC
08:36:05  <Alberth> I don't know if it was configurable in TTD, probably not
08:36:22  <Alberth> or it was linked to bank interest rate or so
08:36:27  <Alberth> perhaps it still is
08:37:14  <andythenorth> I would delete it
08:37:20  <andythenorth> I know I say that about everything it
08:37:26  <andythenorth> but I am serious about this one
08:37:38  <andythenorth> even though it violates a core game goal (preserving TTD gameplay)
08:37:48  <andythenorth> it causes bug reports that no-one is interested in fixing
08:37:59  <andythenorth> and it also causes bug reports for newgrf authors
08:38:12  <andythenorth> delete, migrate savegames to just drop it
08:38:14  <Alberth> we also get bug reports about stupid default vehicle set
08:38:42  <andythenorth> sometimes things need killed with fire
08:38:57  <Alberth> :D
08:39:33  <andythenorth> I will field the brief inevitable whining if someone else does the rm
08:40:36  <andythenorth> an alternative is to move it to newgrf / GS
08:40:41  <andythenorth> but I think it’s TMWFTLB
08:42:26  * andythenorth wonders how it currently works
08:42:42  <andythenorth> presumably there’s an inflation factor applied to every cost calc
08:42:56  <Wolf01> >_> seed gets overwritten somewhere
08:43:00  <andythenorth> probably I look for CMD_COST or so
08:47:47  <Wolf01> Boys... GenerateWorld was called with "reset settings = true" in SE
08:48:40  <Wolf01> Now I understand why a lot of stuff I set between tests got reset
08:50:21  <Wolf01> BTW, it resets the seed anyway, even with that set as false
08:51:03  <andythenorth> is that desirable? o_O
08:51:10  <Eddi|zuHause> what would not resetting the seed help? the seed gets changed every time you generate a random number
08:51:12  <Wolf01> Yes and no
08:51:14  <andythenorth> seems odd to have console commands for settings, then throw them away?
08:55:07  *** tycoondemon has quit IRC
08:59:51  <andythenorth> 451 FS
09:00:06  <andythenorth> if I can get to 420 without cheating
09:00:17  <andythenorth> that’s ~50% of the number at start of August
09:00:24  <andythenorth> also bbl
09:00:25  *** andythenorth has quit IRC
09:02:41  <Wolf01> How do I properly debug the seed? It always shows -290403268
09:03:41  <Alberth> likely there are at least 2 seeds, one in the configuration, and one that is used in the random number generator
09:04:23  <Alberth> if you load a game, probably even 3
09:04:37  <Alberth> but basically, find uses
09:04:55  <Alberth> setting a watch on reading or writing may also work
09:05:15  <Wolf01> No, I mean, what to set in DEBUG() as number placeholder
09:05:39  <Wolf01> Ok, found it %u
09:05:49  <Alberth> yeah, I would guess printf-style
09:05:58  <Eddi|zuHause> i'd try %x
09:06:14  <Eddi|zuHause> but i always forget printf stuff
09:06:25  <Wolf01> Me too
09:16:08  *** chomwitt has quit IRC
09:17:19  <_dp_> o/
09:17:25  <Wolf01> Ok, I could set what I want to game_config, it always discards game_config and copies it from newgame_config
09:19:35  <Alberth> makes sense
09:20:39  <Wolf01> Not according to this comment: /* Copy all XXX_newgame to XXX when coming from outside the editor */
09:20:47  <Wolf01> I'm still inside the editor
09:21:25  <Alberth> :O
09:21:57  <Wolf01> That is in StartGeneratingLandscape()
09:22:32  <Wolf01> And doesn't check where we are or were we are coming from
09:23:45  <Alberth> on entering the SE it gets copied too? Otherwise you have no sane start values
09:24:03  <_dp_> yeah that game/newgame thing always looked like a bug incubator to me
09:24:27  <_dp_> in every function changing settings you need to keep track in which context is it executed
09:24:41  <_dp_> and never call one fuction in two contexts if it's not prepared
09:25:06  <_dp_> but yeah, globals :p
09:25:54  <Wolf01> That's why I wanted to switch to a singleton with accessors, and do that logic there and only there
09:26:40  <_dp_> Wolf01, singleton is just a fancy name for a global :p
09:26:44  <Wolf01> No more _game_mode changes but X.ChangeGameMode(GM_EDITOR)
09:26:58  <Wolf01> Yes, but it's not a variable without any control
09:27:15  <Wolf01> And the logic must be done there
09:27:26  <Alberth> making it an object-like thing with methods helps a lot
09:27:26  <Wolf01> So you know it always behave the same way
09:28:06  *** FLHerne has joined #openttd
09:28:16  <Alberth> also "foo = new Foo()"  and passing foo to everybody, is just as global, it's just more clear who gets it
09:28:22  <Wolf01> I started with _game_mode and works fine, but with _switch_mode I have some problems, since it seem deferred
09:28:45  <Alberth> yeah, switching game modes is weird to say the least
09:28:50  <_dp_> well, yeah, I guess it's slighly better
09:28:57  <_dp_> but still not very testable, etc.
09:28:58  <Wolf01> As you do _switch_mode = XYZ  ... logic ... SwitchToMode()
09:29:39  <Alberth> dp, small steps :)
09:29:54  <Eddi|zuHause> i think frosch123 had some "newgrf utopia" thing, which needs proper contexts where you can test stuff
09:30:25  <Alberth> likely
09:31:04  <_dp_> Alberth, :)
09:31:44  <_dp_> actually, I did pretty much the same to citymania/luukland server, moving everything to one superclass and having just one _game global
09:33:14  *** debdog has quit IRC
09:34:26  <Wolf01> https://gist.github.com/Wolfolo/b84764da56d96e08fe6ff29adda839ba
09:34:31  <_dp_> but that's about the only viable solution there, I don't want to change interfaces of vanilla functions, that would be a disaster to merge
09:34:41  *** orudge` has quit IRC
09:34:45  *** orudge` has joined #openttd
09:34:45  *** ChanServ sets mode: +o orudge`
09:36:02  <_dp_> Wolf01, I'd opt for a single _globals instance instead of statics class, would be easier to unglobal it later
09:36:21  <Wolf01> You can't put logic in variables
09:36:44  <_dp_> _globals.is_game_mode(GM_NORMAL)
09:36:55  <Eddi|zuHause> uhm, yeah you can, it's called "class"
09:36:56  <Wolf01> Oh, ok, misread
09:36:56  <_dp_> or ->
09:37:21  <Wolf01> Yes, possible
09:37:41  <Alberth> IsGameMode, but indeed
09:38:26  <_dp_> oh, I forgot methods are camel case too in openttd
09:38:31  * _dp_ too used to pep8
09:41:14  <Wolf01> I would like to work with an IoC Container
09:41:26  <Wolf01> And everything as a service
09:41:44  <Wolf01> Then for tests you mock the services in the container
09:42:56  *** debdog has joined #openttd
09:43:01  <Wolf01> The only global thing then would be the container itself
09:43:24  *** supermop_home_ has joined #openttd
09:46:00  *** supermop_home has quit IRC
09:55:57  *** debdog has quit IRC
09:56:57  *** debdog has joined #openttd
09:57:31  <Wolf01> I should learn c++
09:58:15  *** supermop_home has joined #openttd
10:02:32  <Wolf01> I still have a lot of confusion on using the * in c++
10:03:41  *** supermop_home_ has quit IRC
10:04:23  <Alberth> you know that a pointer has 2 values, the address it points to, and the value it points at, right?  * dereferences to the latter
10:04:36  <Alberth> in types, * means "pointer to this type of data"
10:05:18  <Alberth> arrays are mostly red herrings, they are just pointers created by the compiler, that also have their element count remembered
10:05:37  <Alberth> only other use of *   is for multiplication :p
10:07:19  <Alberth>  p->  is equivalent to (*p).
10:07:41  <Alberth> and p[x] is equivalent to *(p+ x)
10:09:07  <Alberth> s/element count/size/
10:09:42  <_dp_> for me hardest thing is usually to choose between passing pointer and passing reference :)
10:11:04  <Wolf01> That too
10:11:28  <_dp_> and c++11/14 doesn't help at all with all the &&
10:11:42  <milek7> i think references are only c+ sugar
10:11:47  <milek7> c++
10:12:51  <_dp_> milek7, many other languages have references, they just don't usually come together with pointers)
10:13:17  <Alberth> references should be used if the parameter is never nullptr
10:14:02  <_dp_> Alberth, sometimes it gets awkward to use reference when everything around uses pointers
10:14:21  <milek7> also don't use gcc, not enough warnings
10:14:23  <Alberth> yep, you have that with legacy C code :p
10:14:46  <Alberth> milek7: -Wall    helps a lot
10:15:47  <milek7> and -Wextra, but clang is better anyway
10:16:56  <Alberth> ok, outside is inviting me to join the sun, which I am going to try for a few hours
10:16:58  <Alberth> bbl
10:17:12  *** Alberth has left #openttd
10:17:24  *** Zuu has joined #openttd
10:18:03  <milek7> int main() { int m = 5; std::cout << "m: " + m << std::endl; }
10:18:14  <milek7> no warning on gcc
10:18:57  *** Wormnest has joined #openttd
10:20:34  *** Stimrol has joined #openttd
10:31:05  *** ToBeFree has quit IRC
10:32:10  <Wolf01> Meh... class Globals *_globals already defined everywhere, what am I missing?
10:33:39  <Wolf01> Also Globals &operator=(const Globals&); "function for operator= not found"
10:40:20  <Wolf01> Could be an intellisense bug
10:43:09  *** supermop_home has quit IRC
10:43:21  *** supermop_home has joined #openttd
10:51:00  <Wolf01> Ok, I think I found the right order to define variables
10:52:45  <Wolf01> Nope, I must be stupid
10:55:02  <Wolf01> Now I just have unresolved esternals
10:57:34  <frosch123> but a "external Foo _bar;" into one header, and put a "Foo _bar;" into *one* source
10:57:38  <frosch123> *put
10:58:16  <Wolf01> Eh, I did that
10:58:26  <Wolf01> Still 1 unresolved external
11:00:04  <Wolf01> If only it says where it is missing
11:00:44  <frosch123> my compiler usually gives a source file
11:01:05  <Wolf01> It's a linker error... it gives openttd.exe
11:01:12  <frosch123> yes, still
11:01:59  <Wolf01> Severity	Code	Description	Project	File	Line	Suppression State
11:02:00  <Wolf01> Error	LNK2001	unresolved external symbol "private: static class Globals * Globals::instance" (?instance@Globals@@0PAV1@A)	openttd	E:\progetti\OpenTTD\wolfolo\projects\openttd.obj	1
11:02:31  <_dp_> Wolf01, did you put it in a new cpp file?
11:02:36  <Wolf01> no
11:02:44  <Wolf01> It's in openttd.h
11:03:06  <milek7> it's static, do you defined it in cpp?
11:03:06  <Wolf01> (and it shouldn't be there)
11:03:29  <Wolf01> It's static inside the class
11:03:29  <_dp_> Wolf01, that's extern, where is the definition inself? it has to be in cpp
11:05:00  <Wolf01> Class definition is in openttd.h
11:05:03  *** orudge` has quit IRC
11:05:51  <Wolf01> If I move it to cpp it throws any kind of error, like missing ; or type specifiers
11:06:16  <milek7> you need Globals *Globals::instance in any cpp
11:06:27  <Wolf01> Yes, there is
11:06:45  <Wolf01> Wait, why ::instance?
11:06:51  <Wolf01> It's a private member
11:08:18  *** orudge` has joined #openttd
11:08:18  *** ChanServ sets mode: +o orudge`
11:09:57  <_dp_> Wolf01, static in class in only declaration, you need definition in some cpp as well.
11:10:02  <_dp_> Wolf01, like this https://stackoverflow.com/a/40660026
11:13:38  <Wolf01> It's not a static class, it's a singleton, it just returns a single instance
11:14:10  <V453000> weird, if I make one arg default to True, it stops accepting the -r False from console. I tried changing it to int so it was -r 0 but that fails as well. As soon as I make the thing default to 0 / False, it works. :0 Any random ideas? :D
11:15:13  <_dp_> Wolf01, instance variable is declared as static in your class, right? but that doesn't define it, you define variables in cpp, not h files
11:15:39  <Wolf01> The instance variable is internal to the class
11:16:08  <_dp_> Wolf01, still needs to be defined somewhere
11:16:16  <frosch123> Wolf01: you are doing c++, not java
11:16:41  <Wolf01> Fuck c++ private members defines outside of the class
11:16:52  <frosch123> you must define all static members, public/private makes no difference whatsoever
11:19:33  <_dp_> it's easier to grasp if you think how #include works, it pretty much just inserts text of h file in that place
11:19:52  <_dp_> if you have definition in h file and include it from two places you'll get two copies of variable
11:19:53  <Wolf01> No, I can't understand how "static" works
11:22:26  <Wolf01> Ok, now I have type redefinition...
11:36:38  <Wolf01> /* static */ Globals *Globals::instance; <- 'instance': is not a member of 'Globals'
11:37:27  <Wolf01> I think the worst part of c++ is that it isn't like java
11:37:34  <Wolf01> That's why I use c#
11:40:03  <_dp_> Wolf01, check BasePersistentStorageArray in newgrf_storage.h/cpp it has some static members
11:46:14  <Wolf01> Mmmh
12:10:04  *** supermop has joined #openttd
12:13:06  *** supermop_home has quit IRC
12:13:09  *** supermop_home has joined #openttd
12:14:32  <milek7> Wolf01: include header containing declaration in that cpp
12:16:16  *** orudge` has quit IRC
12:16:20  <Wolf01> It's already included
12:16:42  *** orudge` has joined #openttd
12:16:42  *** ChanServ sets mode: +o orudge`
12:17:14  <milek7> impossible
12:17:19  <Wolf01> Ok
12:18:05  *** supermop has quit IRC
12:20:04  <Wolf01> https://gist.github.com/Wolfolo/1824b5e2e80906f6bb439dde7dc7fb68 now I'm here
12:21:21  <_dp_> Wolf01, ofc it is redefinition look at any other class in openttd :P
12:21:33  <_dp_> Wolf01, there can't be two class Globals { }
12:22:13  <milek7> delete that Globals { from cpp
12:22:23  <_dp_> and use bool Globals::IsGameMode(GameMode mode) {} to define members
12:22:38  <_dp_> or rather methods
12:24:23  <Wolf01> Shit, I must inherit to implement methods this way
12:25:25  <_dp_> Wolf01, wut? how does inheritance get here?
12:25:40  <Wolf01> The definition in .h is like an interface
12:27:08  <V453000> omg fancy haz 7 debug levels :D
12:27:21  <_dp_> Wolf01, yeah, it mostly declares things. but inheritance is a completely diffenet thing, it's a way do define another class, while you seem to still be struggling with just one :p
12:28:25  *** supermop_home_ has joined #openttd
12:28:52  *** orudge` has quit IRC
12:28:54  *** orudge` has joined #openttd
12:28:55  *** ChanServ sets mode: +o orudge`
12:33:22  <Eddi|zuHause> Wolf01: if you think inheritance is the solution to your problem, you probably need to take a few steps back and rethink the concepts you're trying to implement
12:33:25  *** supermop_home has quit IRC
12:35:11  <Eddi|zuHause> (this is basically why my professor thought teaching OOP with C++ is a bad idea)
12:35:41  <Wolf01> Yes, I'm starting to think that too
12:35:43  <Eddi|zuHause> (because sometimes the C++ way of doing things is not the optimal way of doing things)
12:36:52  <Wolf01> Ok, back to the unresolved external symbol "private: static class Globals * Globals::instance" (?instance@Globals@@0PAV1@A)
12:37:14  <Wolf01> At least now it doesn't throw any weird error
12:37:36  <Wolf01> And I have declaration in .h and implemented the methods one by one in .cpp
12:38:04  <_dp_> Wolf01, literally, just put "Globals * Globals::instance" in cpp
12:38:16  <_dp_> Wolf01, but don't remove anythig
12:39:11  *** orudge` has quit IRC
12:39:19  <Wolf01> I really can't understand that, is the compiler so stupid it can't do it by itslef?
12:39:28  <Wolf01> Like . vs ->
12:39:35  *** orudge` has joined #openttd
12:39:35  *** ChanServ sets mode: +o orudge`
12:39:43  <milek7> no, maybe you want to assign initialization value
12:39:59  <_dp_> also you need to specifi which translation unit it belongs to
12:40:02  <michi_cc> Wolf01: Why do you need a singleton and a global instance at the same time? ('Singleton' is just a fancy dress up name for global anyway.)
12:40:26  <Wolf01> Because I'm doing it step by step
12:40:33  <_dp_> putting it in a class is just a promise that you'll define it somewhere later.
12:40:51  <_dp_> aka declaration
12:40:58  <michi_cc> Oh, and for . vs ->, don't look at c++ operator overloading :)
12:42:45  <Eddi|zuHause> <Wolf01> I really can't understand that, is the compiler so stupid it can't do it by itslef? <-- so, do you get into a stickshift car and then complain that it's too stupid to switch gears automatically like other cars?
12:43:04  *** supermop_home has joined #openttd
12:43:58  <Wolf01> No, I would complain if I should tell the shift what cog to move and in which position I want it
12:44:12  <Wolf01> The shiftstick hides all that to me
12:44:25  <Wolf01> The automatic drive is only another facade to it
12:44:39  *** supermop_home_ has quit IRC
12:45:39  <michi_cc> On a serious note, yes, the compiler really is that stupid because it doesn't have the required information. The *linker* could clean it up (and has to do it in case of template stuff), but that really is more of a kludge than a proper solution. Gets somewhat hairy if you mix and match different object files.
12:45:58  <_dp_> Wolf01, as c++  doesn't ask you the memory offset to put that variable to
12:46:07  <Eddi|zuHause> Wolf01: the point is, while moving from stickshift to automatic makes things easier, you also give up other features that people actually might want (like manually choosing whether to maximise torque or lowering fuel consumption)
12:46:41  <michi_cc> E.g. what should the linker do if one object file has the variable intialized by 0 and another by 1?
12:47:20  *** mindlesstux has quit IRC
12:47:27  <Wolf01> In this case it shouldn't, also, I should initialize it to nullptr in one place and not touch it anywhere else
12:47:49  *** mindlesstux has joined #openttd
12:48:52  <_dp_> Wolf01, that's exactly what's happening in c++, you initalize it in cpp file and don't touch (define) anywhere else
12:49:24  <_dp_> Wolf01, but you still need to declare that such variable exists so other parts of program could use it.
12:50:13  <milek7> headers are most annoying thing in c++, but maybe this will change with imports
12:50:17  <Wolf01> But that behavior should be defined by the definition, because in this case it relies on that, and no, other parts of the program shouldn't use it because is private
12:50:17  <milek7> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4681.pdf
12:51:19  <Eddi|zuHause> Wolf01: the trouble with C++ is, you need to put the private declarations in the public .h file, you can't separate it
12:51:35  <_dp_> Wolf01, you can have methods of same class defined in different translation units (~= cpp files) iirc
12:51:46  *** orudge` has quit IRC
12:52:12  <Wolf01> _dp_: Yes, I'm fine with that
12:52:17  *** orudge` has joined #openttd
12:52:17  *** ChanServ sets mode: +o orudge`
12:53:05  <Wolf01> It's what Eddi said which it doesn't look right to me
12:53:13  <Eddi|zuHause> Wolf01: and you can't (sensibly) put definitions in .h files (because that definition would be duplicated in every translation unit)
12:53:58  <_dp_> also part of the problem is that in class X {} you define class but not necessarily it members
12:54:01  *** luxtram has quit IRC
12:54:03  <Wolf01> Like that is what I want to do
12:54:31  *** luxtram has joined #openttd
12:54:37  <_dp_> Eddi|zuHause, except that sometimes you can (like inline)
12:55:42  <milek7> and sometimes you must ;p (like templates)
12:57:01  <Eddi|zuHause> yeah, C++ is silly :p
12:57:19  <_dp_> sometimes c++ is very confusing just because it's like 3 different languages in one
12:57:27  <Wolf01> Silly language, silly CVS... does that make OTTD a silly game?
12:57:38  <Eddi|zuHause> sure
12:57:41  <milek7> template error messages are the worst
12:57:43  <_dp_> in c++ they had to put object system in a way that's compatible with c linkage
12:59:07  <_dp_> and in c++11/14 things got even crazier
13:00:26  <Wolf01> https://gist.github.com/Wolfolo/76ee071dfc9f790e81598aa2026b8ce9 ok, that is
13:01:12  <Wolf01> Now I should add all those _global_variable to it
13:02:31  <Wolf01> Maybe move the definitions on a new file too, to keep openttd.cpp clean
13:03:23  <milek7> templates are imo bad design, interface-based generics would be better
13:05:52  <_dp_> it hard to judge c++ design since every small detail has a lot of reasons behind it
13:06:00  <_dp_> backwards compatibility takes a toll
13:07:35  <milek7> eh, but you usually don't call c++ members from c code
13:07:59  <_dp_> milek7, you call c ones from c++
13:08:17  <_dp_> milek7, and even other language ones
13:08:48  <milek7> but they are just function with arguments and return value
13:08:59  <milek7> no c++, virtual, objects, etc. magic
13:11:03  <_dp_> milek7, you mean why keep obj files backwards compatible?
13:11:41  <_dp_> dunno, but there must be a lot of reasons :p
13:12:36  <_dp_> probably because of dynamic linkage stuff
13:15:22  <michi_cc> The first C++ compiler (Cfront) compiled to *C*, not to object code. A lot of now historical baggage is probably due to that (e.g. the requirement to fit into the C linking model).
13:22:17  *** luxtram has quit IRC
13:26:39  <Eddi|zuHause> what's wrong with c++ templates?
13:28:07  <milek7> that they don't require to specify interface-class
13:28:26  <_dp_> Eddi|zuHause, imo "is there anything right about them" is a better question :p
13:28:31  <milek7> and that usually causes horrible error messages
13:29:14  <milek7> and that they must be compiled for each spectialization
13:29:37  <_dp_> they finally fixed >> syntax so I guess that's one fine thing about them :)
13:30:06  *** luxtram has joined #openttd
13:30:27  <milek7> i think that if they required abstract interface-class they could be compiled only once
13:32:18  <milek7> hmm
13:32:29  <milek7> but that can be done without templates
13:32:41  <milek7> so i think that templates aren't necessary at all ;p
13:39:43  <Eddi|zuHause> milek7: but you need templates for cases where you DON'T want a class/inheritance
13:41:25  <Eddi|zuHause> milek7: opposing to OOP/inheritance, which resolves at runtime, templates resolve at compile time
13:41:48  <Eddi|zuHause> milek7: which is what makes YAPF 10 times faster than NPF
13:44:19  *** Flygon has quit IRC
13:45:25  *** Alberth has joined #openttd
13:45:25  *** ChanServ sets mode: +o Alberth
13:46:17  *** sim-al2 is now known as Guest2918
13:46:18  *** sim-al2 has joined #openttd
13:46:35  *** mindlesstux has quit IRC
13:47:05  *** mindlesstux has joined #openttd
13:50:22  *** Gja has joined #openttd
13:51:16  *** Guest2918 has quit IRC
14:03:11  <supermop_home> should i steal people from japan stations to put in these trams?
14:04:47  <Eddi|zuHause> depends on your value of "steal"
14:05:06  <supermop_home> I believe its a gpl set
14:05:22  <supermop_home> but i wonder if the people will look good in a tram
14:07:22  <Wolf01> Heh... identifier byte undefined... yes
14:15:51  <Alberth> uint8  perhaps?
14:22:06  <Eddi|zuHause> wrong order of .h files?
14:22:14  <Wolf01> Nah, missing stdafx.h include
14:23:09  <Wolf01> Also yes, wrong order since the error was shown in globals.h and stdafx was included in .cpp
14:25:21  *** sim-al2 has quit IRC
14:27:21  <Wolf01> What's up with spanish.txt and spanish_MX.txt? Regenerate projects swapped all the entries
14:30:32  <_dp_> shouldn't stdafx only be included in cpp files?
14:30:56  <Wolf01> It's where I included it
14:31:49  <_dp_> ah, right, h order...
14:37:22  *** orudge` has quit IRC
14:37:34  *** orudge` has joined #openttd
14:37:35  *** ChanServ sets mode: +o orudge`
14:38:17  *** synchris has joined #openttd
14:39:01  *** gelignite has joined #openttd
14:42:08  *** Gja has quit IRC
14:50:28  *** orudge` has quit IRC
14:50:29  *** orudge` has joined #openttd
14:50:31  *** ChanServ sets mode: +o orudge`
14:57:07  <_dp_> more I try to use admin port more I want to throw it out and write my own
15:13:11  *** orudge` has quit IRC
15:13:15  *** orudge` has joined #openttd
15:13:15  *** ChanServ sets mode: +o orudge`
15:22:36  *** Stimrol has quit IRC
15:22:57  <_dp_> omg, smiles in commit messages
15:23:07  <Wolf01> What?
15:23:08  <_dp_> https://github.com/nlohmann/json
15:23:23  <_dp_> looks so silly
15:23:26  <Wolf01> Oh shit
15:23:44  <Wolf01> They are cool, but meh
15:27:07  <Wolf01> Uhm, if I move the transparency options into Globals all that remains is the transparency enum
15:27:58  <milek7> hm, but why?
15:28:06  <milek7> what's wrong with many globals?
15:28:56  <Wolf01> Read log from 6 hours ago
15:29:03  <_dp_> milek7, like, everything?
15:29:13  <_dp_> milek7, no testability, no clear state
15:29:48  <Wolf01> Also, how *BAD*is to define transparency methods in a different .cpp file? Globals as sparse class
15:34:12  <_dp_> Wolf01, you mean declare them in globals, but define in different cpp files like they are now?
15:34:18  <Wolf01> Yes
15:35:22  <_dp_> Wolf01, this whole thing with globals isn't quite right still so it's hard to tell how is it better to do it xD
15:35:26  *** andythenorth has joined #openttd
15:35:43  <_dp_> Wolf01, I'd say yes, leave in different files so it's still kind of logically groped together
15:35:50  <Wolf01> Since is clear now that you have to define method by method I would take advantage about it
15:36:35  <Wolf01> And yes, if you go on globals.h you have all the declarations there
15:40:35  <andythenorth> o/
15:42:04  <supermop_home> ok finally drew all these tram bit
15:42:05  <supermop_home> s
15:42:18  <supermop_home> well like half, but enough to start
15:42:42  <supermop_home> half the generations will have to share sprites with the prior one for now
15:44:56  <Alberth> one gets the even pixels, the other the odd pixels
15:50:30  <Wolf01> HasBit(_transparency_lock, i) <- could I convert this to _global->IsTransparencyLockSet((TransparencyOption)i)?
15:55:05  <Wolf01> Mmm no, the functions check to not be in the menu
15:56:14  <Wolf01> I might need 2 sets of functions or a parameter
15:57:33  <Wolf01> I make 2 sets of functions instead of changing the logic, it would be easy to replace them later
16:00:23  <__ln___> is there something worth seeing in Passau?
16:01:36  <_dp_> Wolf01, btw, there is SwitchToMode which is also a bit different from _game_mode = ...
16:01:39  <_dp_> Wolf01, just fyi
16:02:35  <Wolf01> Yes I know, I'm still trying to find some good logic to replace that
16:03:04  <_dp_> ... and _switch_mode =
16:04:31  <Wolf01> Yes
16:05:09  <_dp_> probably good idea to leave them be for now
16:05:10  <V453000> is there any reason at all why a palette converter should care about the windows palette for ttd?
16:05:15  <V453000> I always used the DOS palette
16:05:34  <_dp_> like, things can easily crash if you replace _switch_mode = .. with SwitchToMode
16:06:11  <Wolf01> V453000: I think you can use the one you want as OTTD automatically loads it with the right palette
16:06:25  <V453000> well sure
16:06:38  <V453000> but if you are making a script for others to use it is good to know if WIN palette is ever useful
16:06:42  <V453000> because I don't remember it being useful
16:06:52  <V453000> it has a few extra grays or something I think
16:07:02  <V453000> orsomething
16:07:11  *** Maraxus has joined #openttd
16:07:36  <V453000> idk I will just ignore it
16:08:26  <Wolf01> _dp_: yes, I already had a close encounter with that
16:09:36  <andythenorth> V453000: WIN palette is LOSE
16:09:39  <andythenorth> don’t bother
16:09:50  <andythenorth> iirc, it has less greys
16:09:54  <andythenorth> due to windows stealing some
16:10:03  * andythenorth might be spreading prejudice, not facts
16:10:31  <V453000> ye
16:10:43  <V453000> I think it's facts
16:10:48  <Wolf01> Only because you use OS X
16:12:48  *** glx has joined #openttd
16:12:48  *** ChanServ sets mode: +v glx
16:13:55  <Eddi|zuHause> V453000: WIN palette has a few extra magic pinks, and shuffled around the greys, while removing some colours. you should ignore it
16:18:05  * andythenorth looking for rude emojis to send back to Wolf01 
16:18:09  <andythenorth> can’t find any good ones :P
16:18:35  <Wolf01> ᐠ( ᐛ )ᐟ
16:21:44  <supermop_home> is running cost per articulated part?
16:22:27  <Eddi|zuHause> supermop_home: most things on articulated parts have no effect
16:22:41  <Eddi|zuHause> supermop_home: and should be set to 0
16:29:03  *** Maraxus has quit IRC
16:32:49  *** Prof_Frink has joined #openttd
16:37:28  <andythenorth> anyone help apply 3928’s patch here? https://bugs.openttd.org/task/6053#comment14591
16:44:09  <Alberth> that hunk was rejected, have a look at the source file, and insert the two lines manually
16:45:06  <Alberth> likely some code was added to the destructor
16:45:07  <andythenorth> thanks
16:45:29  <andythenorth> ugh, xcode opens .cpp files
16:45:40  <andythenorth> xcode has no line numbers, how is this supposed to be an IDE?
16:45:47  <andythenorth> probably EBKC
16:46:16  <Alberth> perhaps Apple believes line numbers are not relevant :p
16:46:28  <Alberth> or too confusing :p
16:46:43  <Wolf01> SDTG_VAR("transparency_options", SLE_UINT,          SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC, 0, _globals->GetTransparency(),  <- this fucks me out
16:47:31  <Alberth> looks like that comes from a tales/*.ini   file?
16:47:38  *** Progman has joined #openttd
16:47:38  <Alberth> settings.ini or such
16:47:45  <Wolf01> Yes
16:47:58  <milek7> what's good graphical text editor?
16:47:59  <milek7> i opened 3kl file with sublime/pluma/atom/chromium/firefox
16:48:17  <milek7> and the only one that is perfectly smooth while scrolling is firefox...
16:48:17  <Wolf01> milek7: VSCode
16:48:18  <LordAro> gvim
16:48:49  <Wolf01> Alberth: any idea?
16:49:25  <Alberth> I don't understand what you need to know
16:49:55  <Wolf01> What to put in place of the old global variable, because c++ don't like what I pasted
16:49:57  <Alberth> SDTG_VAR is a macro that folds it arguments into some struct, with defaults for all the values you didn't supply
16:50:26  <milek7> eh, i have keyboard with cursor keys so don't need weird vi modes
16:50:37  <Zuu> andythenorth: On windows alt+G or ctrl+G usually open a dialog to enter the line number in IDEs. Duno what key that would be on a mac. And no idea if xcode would follow that pattern.
16:50:53  <Alberth> o/ Zuu
16:51:10  <Zuu> Hello :)
16:51:14  <Alberth> Wolf01: perhaps the macro takes the address?
16:51:14  <andythenorth> hi Zuu
16:51:24  <andythenorth> ok this group collapse UI works
16:51:27  <andythenorth> but the counts don’t
16:51:30  <Wolf01> Alberth: could be
16:51:30  <andythenorth> they’re borked
16:51:35  <Alberth> Check pre-processor output
16:51:54  <Alberth> or track #define of SDTG_VAR & friends
16:51:58  <Wolf01> expression must be an lvalue or a function designator
16:52:23  <Alberth> lvalue means "something you can write a value into"
16:52:31  *** Gja has joined #openttd
16:52:37  <Alberth> no idea what "function designator" means
16:53:02  <Alberth> well, &func    would be valid
16:53:23  <Alberth> but likely you don't want a pointer to the getter function :p
16:53:27  <frosch123> you cannot put a getter or setter into the SDTG stuff
16:53:33  <frosch123> it must be a reference to the real variable
16:53:45  <_dp_> can go getter for reference
16:54:14  <andythenorth> collapsible groups is probably better eh?
16:54:21  <andythenorth> if we’re going to have sub-groups
16:54:24  <andythenorth> and we do
16:54:31  <Alberth> we do? :O
16:54:42  <Alberth> then, yes likely
16:54:52  <Wolf01> <frosch123> it must be a reference to the real variable <- Ha! Then I fail
16:55:20  *** Zuu has quit IRC
16:56:43  <andythenorth> https://bugs.openttd.org/task/6053/getfile/10806/group-counting.png
16:56:51  *** Zuu has joined #openttd
16:58:34  <peter1138> that's a patch for it ;p
16:58:58  <andythenorth> :D
16:59:05  <andythenorth> Zuu: still interested in this? o_O https://bugs.openttd.org/task/5208
16:59:15  * andythenorth on FS spree
17:01:02  <Zuu> Not really doing anytihng with OpenTTD at the moment other than visiting the forum a few times a year and this channel.
17:03:09  <Zuu> So, no.
17:03:58  <andythenorth> still looks like a useful patch
17:04:08  <andythenorth> Wolf01: 5208 - scenario stuff from console
17:04:22  <Zuu> But it looks like there is a patch, and I honestly doesn't remember this FS task.
17:04:58  <Zuu> But it is probably from my tutorial work.
17:05:06  <Wolf01> andythenorth: could be nice to have
17:06:19  *** Gja has quit IRC
17:10:32  <supermop_home> is there an easy way to dectect drive-on side?
17:10:35  *** JacobD88 has joined #openttd
17:10:53  <supermop_home> or do I need to have a parameter to set what side you want the doors to open on
17:11:27  *** JacobD88 has quit IRC
17:12:16  <andythenorth> supermop_: or…don’t worry about it? o_O
17:12:22  <andythenorth> such parameters
17:12:26  <supermop_home> I already drew all the doors
17:12:28  <Wolf01> Ok, I miss only the SDTG_VAR stuff...
17:12:31  <supermop_home> for both sides
17:13:04  <Wolf01> But not now, must go outside to eat stuff
17:14:47  <Alberth> supermop_home: https://newgrf-specs.tt-wiki.net/wiki/NML:General     traffic_side
17:15:32  <luxtram> Hi, I am reading the source and I am wondering what is the meaning of the mode parameter of TrainLocoHandler. Any pointers?
17:17:00  <frosch123> iirc that function is called multiple times per tick
17:17:07  <frosch123> mode is the iteration number or something
17:19:23  <andythenorth> Zuu: care to look at a couple more? o_O https://bugs.openttd.org/task/4953
17:19:34  <andythenorth> https://bugs.openttd.org/task/3479
17:19:40  <frosch123> it needs to be called multiple times, since trains can move faster than 1 coordinate per tick
17:20:00  <frosch123> on the first iteration it likely does some more stuff that during the other
17:25:38  *** pdoan has joined #openttd
17:26:20  <Zuu> andythenorth: How many many more open tasks am I responsible for ... hm I can look that up ... 5 in total. :-)
17:28:50  <Zuu> I don't feel anything in particular for any of those at the moment and I can always open new ones if I feel for, so close them if you like to. :-)
17:31:05  <luxtram> ok, but how does it help to call it twice really and why it is not possible to satisfy the situation with a single call?
17:31:25  <frosch123> it moves the train my one step on every call
17:31:35  <frosch123> and needs to check train collision, end of track and stuff
17:31:47  <frosch123> red signal etc
17:32:23  <frosch123> possibly it can be done better, by first checking with only the front how far you can drive
17:32:28  <frosch123> and then moving everything
17:32:39  <frosch123> but it's not exactly easy code :p
17:33:56  <luxtram> so the train always moves two steps during a tick?
17:34:16  <frosch123> depends on its speed :p
17:34:23  <frosch123> at 0 km/h it does not move any steps
17:34:39  <frosch123> planes iirc can move up to 4 steps per tick
17:39:01  *** supermop_home has quit IRC
17:43:11  *** supermop has joined #openttd
17:46:59  <andythenorth> Zuu: thanks \o/
17:47:04  <supermop> can I put an if thing around a sprite group?
17:47:38  <planetmaker> real sprites are unconditional
17:47:53  <supermop> so no?
17:48:15  <Zuu> Oh.. was thinking about to go out, but now it rains hevily at 45 degree angle. Good I didn't get out for a walk. :-)
17:48:16  <planetmaker> I think no. You need to decide on different sprite groups depending on parameter
17:48:57  <planetmaker> supermop, think of it as such: the sprites cannot be in the newgrf and not in the newgrf at the same time
17:49:25  <frosch123> supermop: everything which you could in an if-condition, you can also put into a switch
17:49:25  <planetmaker> they must always be there - but you can choose not to show them
17:53:05  <Alberth> time to practice your 45 degrees walk, Zuu :)
17:54:15  <Zuu> :-)
17:54:42  <frosch123> ah, that's why the brittish are so obsessed with the silly-walks-business
17:54:51  <Zuu> It is now more normal only a few degrees angled rain.
17:56:59  <supermop> https://paste.openttdcoop.org/pqgc8islu
17:57:25  <supermop> I have my traffic side switch at the bottom of that
18:05:52  <andythenorth> we practice dodging raindrops around here
18:08:16  <andythenorth> lo planetmaker
18:10:43  <andythenorth> can I close? o_O https://bugs.openttd.org/task/6114
18:11:37  <frosch123> andythenorth: make a patch that adds it to known_bugs.txt
18:12:07  * andythenorth looks
18:12:11  <frosch123> we document "won't fix" stuff there
18:12:28  <Eddi|zuHause> i'd debate whether this is a bug at all
18:12:41  <Eddi|zuHause> looks more like a feature request
18:12:45  <frosch123> even more a reason for known_bugs then
18:12:50  <andythenorth> is there any particular order to known_bugs.txt ?
18:12:58  <andythenorth> apend to end?
18:13:30  <Eddi|zuHause> of course there's the follow-up bug that payment will be screwed up
18:13:58  <andythenorth> delete neutral stations?
18:14:02  <andythenorth> problem solved
18:14:06  <frosch123> andythenorth: apprently sorted by fs number
18:14:11  <andythenorth> thanks
18:14:34  <andythenorth> there is a proposal for bouy stations
18:14:40  <planetmaker> I guess it can be closed. It's not exactly a bug
18:14:40  <andythenorth> player owned iirc
18:14:52  <planetmaker> and I like the behaviour
18:14:58  <andythenorth> bouy stations would eliminate need for industry built-in stations
18:15:12  <andythenorth> but I can’t think of any savegame migration strategy :(
18:15:30  <Eddi|zuHause> andythenorth: wasted effort, i think
18:15:33  <andythenorth> nor how to handle helicopters
18:15:49  <Eddi|zuHause> plus, people actually want more neutral stations (like city-owned airports)
18:17:10  <andythenorth> people actually also want reliable cargodist
18:17:13  <andythenorth> no griefing
18:17:16  <andythenorth> lots of things ;D
18:17:27  <V453000> andythenorth: iz win, now with the custom built color offset list and with debug levels :D https://paste.openttdcoop.org/pjadobc5u
18:17:45  <V453000> planetmaker: if you told me 4 years ago that I would eventually voluntarily learn programming, I would have told you that you are insane :)
18:17:52  <andythenorth> V453000: you are insane
18:18:04  <V453000> I wouldn't have been wrong, but you would be rihgt ;P
18:18:16  <andythenorth> good eh?
18:18:22  <V453000> andythenorth: you are insane
18:18:59  <Eddi|zuHause> postulate: there are no sane people
18:20:00  <V453000> any suggestions how to name parameters as in the shortcuts? since I am using c-s, it is not easy to use something sensible :D
18:20:04  <andythenorth> tabs eh?
18:20:10  <andythenorth> my editor makes tabs into spaces :P
18:20:14  <V453000> should be spaces
18:20:19  <V453000> tab = 2 spaces
18:20:48  <andythenorth> 4 but yes
18:21:00  <V453000> depends on settings :) in factorio we use 2 so I keep it
18:21:06  <peter1138> 3!
18:21:07  <Eddi|zuHause> python suggestion is to use 4 spaces for indent
18:21:19  <V453000> Eddi|zuHause: why?
18:21:26  <V453000> just better clarity?
18:21:28  <Eddi|zuHause> i don't know. it's what it is
18:21:42  <V453000> k :D
18:21:47  <V453000> I will use 2 for heresy
18:21:55  <Alberth> 2 is not enough, 3 doesn't quite work with the 8 of a TAB, 4 is nice
18:21:57  <_dp_> it's called pep8 a standard for code formatting in python
18:22:25  <Eddi|zuHause> there's no hard reason to actually follow pep8, though :p
18:22:40  <peter1138> tabs are useful when you use variable width fonts ;p
18:23:15  <andythenorth> frosch123: https://bugs.openttd.org/task/6114#comment14596
18:23:24  <Eddi|zuHause> peter1138: how does that have any influence on indentation, though?
18:23:35  <planetmaker> hihi @ V453000 :)
18:23:37  <peter1138> none
18:23:45  <planetmaker> but then... you are :P
18:23:50  <_dp_> Eddi|zuHause, exept every other python programmer picking on you for not following standards :p
18:23:55  <planetmaker> but what changed your mind? what do you learn?
18:25:03  * andythenorth tests https://bugs.openttd.org/task/4754#comment10296
18:26:25  <andythenorth> patch probably ‘breaks’ some FIRS industries
18:27:01  <Alberth> planetmaker: V is somewhat infacted with the "automate everything" virus from andy :)
18:27:36  <Alberth> *infected
18:28:43  <frosch123> except V is in level 1, where you automate stuff which you would do by hand otherwise
18:28:57  <frosch123> while andy is in level 5, where you automate automating automating automating automating thing
18:29:30  <Eddi|zuHause> you should meta-level that, so you automate reducing the layers of automation
18:30:05  <andythenorth> I think V453000 has actually surpassed me by some measure
18:30:29  <andythenorth> frosch123: 4754 patch does what it says on the tin: ‘fixes’ rivers in desert a bit, and probably breaks newgrf industries
18:30:40  <andythenorth> pursue, or dead?
18:35:33  <Alberth> V453000:  iz eazyer  https://paste.openttdcoop.org/pdorssulw
18:35:44  <frosch123> at some point i wanted to move half-desert into the map array
18:36:08  <supermop> what about snowy desert
18:36:30  <Alberth> it's never night in openttd
18:39:53  <peter1138> let's add shaders
18:40:14  <andythenorth> 7 year old asked for day night cycle
18:40:26  <Zuu> Or support for telestick so we can turn of the lights in the room?
18:40:27  <LordAro> peter1138: o/
18:40:28  <andythenorth> I told him totally dark made it hard to see the trains :P
18:40:37  <andythenorth> I get all the regular feature requests here
18:40:46  <andythenorth> we could close FS and forums, and get it all from one 7 year old
18:40:46  <frosch123> andythenorth: the only thing worse than day/night in a video game is weather
18:41:11  <andythenorth> I told him we’d have to remake all the sprites (he’s drawing trains now so he knows it’s work)
18:41:18  <frosch123> actually, since i no longer use solar power, i should disable it again in f
18:41:20  <andythenorth> he said we could just take screenshots and tint them with code
18:41:48  <andythenorth> AUTOMATION
18:41:50  <frosch123> andythenorth: don't show nightgfx :)
18:42:00  <frosch123> lot's of thing are bright at night
18:42:04  <frosch123> which are not during daylight
18:42:42  <andythenorth> I would like night mode
18:42:50  <andythenorth> I would put the work into the sprites :P
18:42:56  <andythenorth> or at least…automating them
18:43:25  <andythenorth> https://www.flickr.com/photos/andythenorth/albums/72157624355112320
18:43:39  <planetmaker> oh, the automation-infection. I'm no stranger to that :D
18:43:41  <andythenorth> such heatshrink wrapping of cables
18:44:22  <andythenorth> https://www.flickr.com/photos/andythenorth/4732751309/in/album-72157624355206572/
18:44:53  * andythenorth also lit a model train layout when much younger
18:45:15  * andythenorth should also write a ‘talking to V’ bot
18:45:20  <andythenorth> “iz bot"
18:45:22  <supermop> trams working
18:45:22  <andythenorth> “iz"
18:45:29  <andythenorth> supermop: such content :)
18:46:04  <frosch123> andythenorth: https://www.tt-forums.net/viewtopic.php?t=69607
18:46:15  <andythenorth> import random; swears = [list]; random.choice(swears)
18:46:35  <andythenorth> could pretty much automater
18:46:35  <LordAro> [<class 'list'>]
18:46:42  <andythenorth> window purples -> yellow
18:46:52  <andythenorth> headlight yellow -> yellow
18:47:00  <andythenorth> tail light red -> red
18:47:09  <andythenorth> everything else -> compression
18:47:20  <andythenorth> probably non-linear
18:47:28  <andythenorth> there’s probably an algorithm for it :P
18:48:38  <milek7> but roads should be lightened in patterns
18:49:11  *** pdoan has quit IRC
18:49:22  <supermop> could use more cab styles and liveries, and a better panto
18:50:48  <andythenorth> michi_cc: peter1138 will do the roads
18:50:50  <andythenorth> with shaders
18:53:25  <supermop> if I up a tram's max speed does that break grf with previous versions?
18:53:51  <andythenorth> not probably
18:54:04  <andythenorth> strictly it does, if you’re being purist
18:54:34  <supermop> realized my late 80s LRV isn't better enough than my 60s articulated tram
18:56:00  <supermop> also my ersatz Melbourne W class is too good
18:56:11  <supermop> it still is a good buy in 2000
18:57:12  <Alberth> evergreens
18:58:48  *** orudge` has quit IRC
18:58:58  <andythenorth> trams tend to evergreen
18:59:04  *** orudge` has joined #openttd
18:59:05  *** ChanServ sets mode: +o orudge`
18:59:20  * andythenorth wonders if “Landscape:” is a thing for grouping FS stuff
18:59:28  <andythenorth> seems to be a bit of that
18:59:41  <supermop> well the W class stills runs in melb
18:59:45  <frosch123> as in stuff for a potential newlandscape?
19:00:02  <andythenorth> not sure yet
19:00:12  * andythenorth needs to check
19:01:17  <andythenorth> nah, there’s not much in FS for it
19:01:27  <andythenorth> I wondered about making landscape gen pluggable
19:01:40  <supermop> i'll need to add a low floor property to make the old trams illegal after 2000
19:01:55  <andythenorth> eh, dumping raw C++ into mods…probably very very insecure? o_O
19:02:02  * andythenorth just thinking
19:02:30  <V453000> that looks nice Alberth thanks :) I will digest it first though
19:02:33  <frosch123> how about dumping opengl shader code into newgrf :p
19:02:42  <andythenorth> o_O
19:02:44  <planetmaker> :D
19:02:47  <frosch123> and wait until noone does opengl anymore :p
19:05:22  <V453000>  /me discovered andythenorth's flicker
19:05:29  <V453000> some spectacular vehicles right there
19:05:45  <frosch123> lego?
19:05:52  <V453000> arr
19:06:17  <frosch123> i think i saw those
19:06:19  *** pdoan has joined #openttd
19:06:26  <V453000> well I didn't :)
19:06:50  <frosch123> i think andy and wolf are on some legobook network or something
19:07:14  <planetmaker> lego... I'm mad at lego. The Saturn V set was sold out too soon
19:07:37  <V453000> XD
19:07:40  <V453000> "ok"
19:07:44  <planetmaker> https://shop.lego.com/de-DE/LEGO-NASA-Apollo-Saturn-V-21309
19:07:53  <planetmaker> available for like 2 weeks or so?
19:08:03  <frosch123> didn't wolf had it
19:08:17  <frosch123> and doesn't wolf regulary get rid of old sets to make space for new?
19:08:18  <planetmaker> it came out in July. Dunno?
19:08:33  <V453000> XD
19:08:35  <peter1138> much earlier than july
19:08:45  <V453000> I suddenly feel completely normal
19:08:49  <planetmaker> ok, June
19:08:55  <V453000> that shit's dope
19:09:06  <peter1138> i nearly ordered one
19:09:13  <peter1138> but then decided i didn't need £110 of lego
19:09:14  <V453000> can't wait for daughter to grow so I could justify ordering one
19:09:41  <planetmaker> I decided I do... but thought I could spend that on an occasion like Christmas. So wrong :(
19:10:02  <V453000> haha
19:10:02  <peter1138> they made it very limited for no reason i guess
19:11:02  <andythenorth> V453000: lego is like pixels
19:11:18  <andythenorth> grid system
19:11:24  <andythenorth> lack of true realism
19:11:34  <V453000> I know right :P
19:12:15  <andythenorth> also Lego teaches much about colour palette https://www.flickr.com/photos/andythenorth/sets/72157624931837766
19:12:52  <V453000> :>
19:13:07  <V453000> iz realizms though, in a way I like
19:13:15  <V453000> the shovel and stuff at the ends are giving it a really nice final touch
19:13:25  <andythenorth> greebles
19:13:41  <andythenorth> https://www.flickr.com/photos/andythenorth/14070184519/in/album-72157644406618728/
19:15:02  <V453000> hehe
19:15:11  <andythenorth> also designing in false colour, to get structure right first, same as sprites https://www.flickr.com/photos/andythenorth/14024296608/in/album-72157644311005000/
19:15:27  *** pdoan has quit IRC
19:15:47  *** luxtram has quit IRC
19:15:54  <V453000> yez
19:16:17  <V453000> Alberth: added it, script works :>
19:16:25  *** pdoan has joined #openttd
19:16:27  *** luxtram has joined #openttd
19:16:36  <V453000> btw andythenorth can I redistribute the generated palette you have in roadhog? :P under gplv2 ofc
19:17:03  <andythenorth> yes
19:17:11  *** orudge` has quit IRC
19:17:27  <V453000> gg, you get credit for this spectatular piece of art
19:17:40  <milek7> why anyone cares about palettes in 2017?
19:17:45  *** orudge` has joined #openttd
19:17:46  *** ChanServ sets mode: +o orudge`
19:17:57  <V453000> ._.
19:17:59  <V453000> heavy breathing
19:19:55  * andythenorth counting to 10 slowly
19:20:05  <V453000> milek7: openttd still won't run without some 8bpp even if you have 32bpp over it :P and as we discovered, apparently for many people the 32bpp is simply not an option due to performance
19:20:09  <V453000> 10
19:20:37  <V453000> + palette has some benefits too if you draw pixelz
19:20:55  *** pdoan has quit IRC
19:21:30  <milek7> performance? framebuffer is anyway probably stored in at least 24bit
19:21:54  *** pdoan has joined #openttd
19:21:59  <V453000> well don't ask me why but even people with beastly computers sometimes have to me unexpected problems with running 32bpp
19:22:45  <andythenorth> how can I replicate this?
19:22:46  <andythenorth> https://bugs.openttd.org/task/6337
19:23:07  <andythenorth> I might make a special rule for TGP crap: you have to tell what settings were used
19:23:14  <andythenorth> that rule will definitely work
19:23:18  <andythenorth> always :P
19:23:30  <planetmaker> andythenorth, savegame will tell
19:23:38  <andythenorth> title says 'default'
19:23:38  <planetmaker> but... not provided either :|
19:23:49  <planetmaker> default... default... that's a non-statement
19:23:49  * andythenorth tries to find defaults
19:24:13  <planetmaker> I also use default. But there's an openttd.cfg and then it doesn't care about defaults, but it uses the values stored there
19:24:29  <planetmaker> defaults are those which you get when you delete your openttd.cfg and have it rewritten by the game
19:24:34  <andythenorth> which size map, what water settings etc
19:24:45  <andythenorth> ok I’ll mv openttd.cfg
19:25:07  <planetmaker> but I'd not bet much on none of those being changed or set by the user
19:25:46  <andythenorth> ok no snow
19:26:03  <andythenorth> and no rainforest
19:26:08  <andythenorth> so completely valid bug report
19:26:27  <planetmaker> hm :)
19:26:29  <supermop> hmm
19:26:44  <supermop> my tiny tram from 1890 goes 80 kmh
19:26:50  <supermop> I think that is a mistake
19:27:27  <andythenorth> weeeee
19:27:39  <andythenorth> maybe it’s a pneumatique
19:27:47  <planetmaker> faster than a horse? That must be detrimental to the passenger's health!
19:28:12  <Eddi|zuHause> random progression i just thought of: 1890: 30km/h, 1920: 40km/h, 1950: 50km/h, 1980: 60km/h
19:28:12  <supermop> I don't enjoy playing with pitifully slow vehicles but ill need to make up some progression at least
19:28:31  <Eddi|zuHause> probably useless
19:28:36  <supermop> Eddi|zuHause sounds realistic,
19:28:54  <supermop> i think ill want 80 kmh by the 50s though to not be too boring
19:28:58  <Eddi|zuHause> 1980 should be more like 80km/h, but with inner-town speed limits
19:29:23  <andythenorth> supermop_: I don’t want to impede creative fun, but http://dev.openttdcoop.org/projects/road-hog/repository/entry/src/rosters/brit.py#L101
19:29:47  <andythenorth> bloody FS :)
19:29:53  <andythenorth> I can’t get below 449 now
19:30:02  <supermop> is that km or miles andy?
19:30:10  <supermop> 25 sounds useless
19:30:26  <andythenorth> mph
19:33:42  *** Gja has joined #openttd
19:43:10  <andythenorth> eh Wolf01 this is like the reverse of the seed issue? o_O https://bugs.openttd.org/task/6474
19:51:46  *** ToBeFree has joined #openttd
19:53:11  *** orudge` has quit IRC
19:53:15  *** orudge` has joined #openttd
19:53:15  *** ChanServ sets mode: +o orudge`
19:54:36  *** sla_ro|master has quit IRC
19:57:20  *** Alberth has left #openttd
20:02:21  <andythenorth> how creaking is the UI part of groups (vehicles list)
20:02:32  *** sim-al2 has joined #openttd
20:02:48  <andythenorth> groups themselves are quite lame, but is the UI code a horrowshow, or ok?
20:11:42  <andythenorth> nvm :)
20:11:44  <andythenorth> bye
20:11:45  *** andythenorth has quit IRC
20:18:23  <Wolf01> Eh.. he just quit
20:19:23  *** Zuu has quit IRC
20:20:26  <Wolf01> BTW yes, SE and game should be one way
20:20:38  <V453000> so how should I call my fancy conversion script
20:20:47  <V453000> Palletizer? :) Palletizator?
20:20:50  <Wolf01> DoAutomatedStuff?
20:21:34  <Wolf01> Also, back on those SDTG_VAR
20:21:54  <Wolf01> I might need a workaround
20:21:58  <frosch123> V453000: downsampler
20:22:09  <V453000> no that sounds unsuperior frosch "D
20:22:10  <V453000> :D
20:22:22  <Wolf01> frosch123, any idea for a workaround?
20:22:37  <V453000> MAXIMAL_PALLETTE_CONVERTER_8D_BEST_OF
20:22:45  <Wolf01> V453000: TheMangler?
20:22:58  <frosch123> continuous-palette-transfunctionator?
20:23:17  <frosch123> Wolf01: just let the sameload stuff access the raw private data
20:23:32  <Wolf01> Yes I thought about it but meh
20:23:36  <frosch123> saveload does binary stuff, sizeof, offsetof, endian swapping, ...
20:23:52  <V453000> Radula
20:24:14  <frosch123> Wolf01: openttd is no book about conservative oop
20:24:37  <frosch123> it's about breaking the rules when it benefits
20:24:57  <frosch123> V453000: hey-dude-wheres-my-palette?
20:26:12  <frosch123> ach, just call it slugette
20:26:21  *** Gja has quit IRC
20:26:54  <Wolf01> I'd put a comment "Needed for settings: don't use them in code, please"
20:29:15  <Wolf01> Uhmmm... what? It still throws error about _transparency_opt undeclared identifier when I replaced it
20:30:27  <Wolf01> Ooooh, misc_settings_ini not regenerated
20:34:22  <Wolf01> Or maybe I'm modifying the wrong file, I don't edit settings so much
20:35:32  <frosch123> transparency_opt probably should be a member of GUISettings
20:35:33  <Wolf01> Yes, was that
20:35:49  <frosch123> but iirc it's not possible to move all of the settings into _settings
20:36:06  <frosch123> the very early ones need to be separate or something
20:36:06  <planetmaker> slugette :D
20:36:07  <planetmaker> <3
20:36:17  <frosch123> planetmaker: sounds like chocolate
20:36:23  <planetmaker> that, too :)
20:36:30  <planetmaker> But I love chocolate, too :P
20:36:44  <frosch123> i considered ordering that slug-chocolate, but in the end it did not seem worth it
20:36:48  <Wolf01> Ok, compiled, run, access violation
20:39:02  *** Tirili has joined #openttd
20:39:43  <frosch123> planetmaker: http://www.mackenzieschocolates.com/index.php/molded-items/animals/slugs <- in case you missed them
20:41:02  <frosch123> 17 euro for 200g american chocolate of unknown quality seemed a bit steep
20:41:02  <planetmaker> I totally did!
20:41:11  <planetmaker> the perfect gift for V :P
20:41:29  <planetmaker> but... uwe... American chocolate?
20:41:43  <LordAro>   5 Reallocated_Sector_Ct   0x0033   089   089   010    Pre-fail  Always       -       14400
20:41:46  <LordAro> oh dear
20:41:48  <frosch123> it's no supermarket chocolate, you never know
20:42:13  <planetmaker> LordAro, just moving my home dir from one disk to another ;) one never knows...
20:43:07  *** FLHerne has quit IRC
20:43:14  <V453000> Hmmm slugette
20:43:30  <V453000> calling it RAINBOW_SLUG actually makes sense
20:43:31  <V453000> gg
20:43:33  <frosch123> http://www.mackenzieschocolates.com/media/catalog/product/cache/1/thumbnail/9df78eab33525d08d6e5fb8d27136e95/1/0/100387_1.jpg <- zoom in
20:44:45  <frosch123> V453000: yeah, but that name is already used
20:44:53  <planetmaker> the modelling is superb :)
20:44:57  <V453000> ._.
20:45:05  <V453000> wot
20:45:42  <frosch123> https://piecesofpink.files.wordpress.com/2015/05/img_1211.jpg <- i wonder whether it actually has banana taste
20:46:02  <V453000> oh, hand for scale
20:46:07  <V453000> larger than I imagined
20:46:20  <frosch123> i think it's a different one
20:46:31  <frosch123> the other were 200g in 8 pieces
20:46:42  <frosch123> 25g is not that large
20:46:58  <frosch123> even when hollow
20:47:05  <V453000> right
20:47:27  <planetmaker> ehm... sure that's 200g, frosch123 ?
20:47:36  *** synchris has quit IRC
20:47:45  <planetmaker> ohhh... .47lbs
20:47:46  <planetmaker> hm
20:47:46  <frosch123> Weight .47 lbs
20:47:47  <planetmaker> yes
20:47:55  <planetmaker> nasty, tiny dot :)
20:47:59  *** FLHerne has joined #openttd
20:48:07  <frosch123> 213.1884g
20:48:36  <frosch123> planetmaker: you though 20kg? :o
20:49:29  <planetmaker> it didn't look like 20kg. When I saw 20kg I started to look closer at the text - and discovered the dot
20:49:48  <planetmaker> it's not that I have any relation to what 47 lbs or .47 lbs might be
20:50:37  <frosch123> i learned to measure butter in half pounds
20:51:38  <frosch123> 1 lbs is close enough to a 500g pound
20:53:12  <planetmaker> it is indeed
20:53:32  <planetmaker> lbs doesn't even remotely look like "pound" though
20:54:34  <frosch123> well, i assume you are more used to M☉ :)
20:55:24  <planetmaker> :P
20:55:53  <Wolf01> Uhm... I can't understand why in settings.h _global is not instanciated
20:55:54  <frosch123> £ doesn't look like pound either
20:55:56  <planetmaker> honestly, in my daily work life I'm more used ot µg, and g than M_sun or M_earth
20:56:13  <frosch123> nor like sterling
20:56:20  <planetmaker> that's different... currencies never resemble anything
20:56:45  <planetmaker> and it could be a symbiosis of S and t
20:56:55  <planetmaker> underlined
20:57:03  <planetmaker> or maybe even not underlined
20:58:01  <frosch123> oh £ is actually an L
20:58:13  <frosch123> it's latin pound
20:58:17  <frosch123> "librae"
20:58:36  <frosch123> i never thought it would actually be an L desprite looking like one
20:59:12  <frosch123> and it's related to lira
20:59:25  <Wolf01> "a reasonable approximation can be made by typing an "f" over an "L"."
20:59:49  <frosch123> pff, tell them to bind caps lock to compose
20:59:55  <frosch123> or compose to caps lock?
21:00:01  <Wolf01> Lira is ₤
21:00:29  <frosch123> yeah, the = represents stability :)
21:00:31  <frosch123> like in €
21:02:19  <frosch123> planetmaker: anyway, µg sounds like chemistry, i would have expected either astronomical units, or atomar units
21:03:18  <Wolf01> frosch123, do you have a moment to apply a patch and help me to spot an access violation?
21:03:33  <frosch123> sure
21:03:39  <frosch123> i think i have a clean working copy
21:03:43  *** gelignite has quit IRC
21:04:18  <Wolf01> https://gist.github.com/Wolfolo/cff2dfcdda79d54a098e579a1327a7f0 this one compiles and runs fine
21:04:25  <DorpsGek> Commit by frosch :: r27896 /trunk/src (3 files in 3 dirs) (2017-08-20 23:04:21 +0200 )
21:04:26  <DorpsGek> -Fix: some warnings
21:04:30  <frosch123> now i do
21:05:06  <Wolf01> But if you remove ->GetInstance() from settings.ini it has _globals not initialized and throws access violation
21:05:21  <Wolf01> But _globals should be initialized at that point
21:05:28  <planetmaker> frosch123, how much does a single grain of sand weigh? How much a marble? That's my typical size scale :D
21:06:09  <frosch123> constructor workers use very different grain sizes of sand
21:06:16  <frosch123> :p
21:06:38  <frosch123> Wolf01: doesn't compile
21:06:40  <planetmaker> :) they do
21:06:51  <Wolf01> Uhm, what is missing?
21:07:00  <frosch123> oh, i guess i need to patch sdl_v, which you do not compile on windows
21:08:38  <frosch123> _exit_game?
21:09:08  <frosch123> #include "../globals.h"
21:09:36  <frosch123> Wolf01: warning: globals has non-virtual destructor
21:09:42  <Wolf01> Yes, I'm moving the globals
21:10:10  <frosch123> i definitely would move transparency settings to guisettings
21:10:13  <frosch123> not to globals
21:10:26  <frosch123> gamemode and transparencysettings is completely unrelated
21:10:54  <Wolf01> Ok
21:11:54  <Wolf01> So I should move only _game_mode, _switch_mode and _exit_game
21:12:10  <frosch123> yeah, those would seem related
21:12:12  <Eddi|zuHause> frosch123: but doesn't the title game have magic transparency values?
21:12:19  <Wolf01> Maybe renaming Globals => GameState
21:12:50  <frosch123> Eddi|zuHause: many, no pbs reserations, no breakdowns, ...
21:13:40  <frosch123> if you want to move everything that is different in title game to that class, you may have picked the wrong approach :)
21:14:01  <Wolf01> BTW, in case it would happen again, what could be that access violation? SDTG_VAR evaluated in another thread or such?
21:14:38  <Wolf01> _globals is initialized in the entry point
21:15:47  <frosch123> Wolf01: so, it compiled, what am i supposed to do next?
21:16:05  <Wolf01> Go into settings.ini and remove ->GetInstance()
21:16:11  <Wolf01> From transparency options
21:16:21  <frosch123> _globals->transparency_opt  ?
21:16:28  <Wolf01> Yes
21:16:50  <frosch123> why do you have _globals and Globals::_instance?
21:16:58  <Wolf01> Because it's a singleton
21:17:09  <frosch123> that answer makes no sense
21:17:17  <frosch123> you have a doubleton
21:17:28  <frosch123> _globals and Globals::_instance makes two
21:17:39  <Wolf01> I would like to remove the _global at the end
21:19:31  <Wolf01> I could ::GetInstance() everywhere, but it's long
21:20:08  <Eddi|zuHause> you need a get-method that autmatically creates the instance if it doesn't exist
21:20:27  *** pdoan has quit IRC
21:20:38  <frosch123> Wolf01: also calling a static method with a instance pointer is kind of pointless
21:21:25  *** pdoan has joined #openttd
21:21:49  *** supermop has quit IRC
21:22:29  <LordAro> what is the advantage to having one massive global, as opposed to lots of little ones?
21:23:04  <frosch123> LordAro: wolf wants to create it with a factory to insert some mocks
21:23:18  <Eddi|zuHause> ideally, you would have no globals, but some sort of easily switchable context
21:23:25  <LordAro> i see
21:23:29  <frosch123> or he wants to run two instaces of ottd in one task
21:24:06  <Wolf01> Don't give me weird ideas :P
21:25:55  *** pdoan has quit IRC
21:26:54  *** pdoan has joined #openttd
21:27:16  <peter1138> load the map in 16x16 chunks
21:27:56  <frosch123> Wolf01: anyway, the settings stuff has static initialisation
21:27:58  <peter1138> add the farlands
21:28:27  <frosch123> it does &_globals->GetInstance()->transparency_lock or &_globals->transparenc_lock during static intialisation
21:28:35  <frosch123> which is way before openttd_main
21:28:40  <Wolf01> Oh
21:28:44  <frosch123> so, _globals is NULL at that point
21:28:57  <frosch123> while the method forces the initialisation
21:29:09  <Wolf01> But why it didn't throw the exception until the end of openttd_main?
21:29:33  <Wolf01> "end"
21:29:34  <frosch123> for me it segfaults in LoadFromConfig
21:29:58  <frosch123> precisely when it loads the settings, and tries to store them at NULL
21:30:13  <frosch123> well, NULL+offsetof(.., transparenc...)
21:30:48  <Wolf01> Ok, but _globals is before LoadFromConfig()
21:31:13  <frosch123> btw. this also means that SLEG will never work if you want to swap instances of _globals at runtime
21:31:56  <frosch123> Wolf01: yes, but _globals is not used during LoadFromConfig, but during static initialisation
21:32:02  <frosch123> which is before main()
21:32:52  <frosch123> when you call GetInstance in openttd_main it has already been called by misc_settings.ini
21:33:06  <frosch123> GetInstance is called before main() is called
21:33:13  <Wolf01> Uhm
21:33:16  <Wolf01> I'm lost
21:33:26  <frosch123> Wolf01: read up on "static initialisation" :)
21:33:48  <frosch123> the stuff in SLEG is done during static initialisation
21:35:30  <Wolf01> Oh, because settings.h <-
21:35:41  <frosch123> no
21:36:25  <Wolf01> Aren't headers evaluated first?
21:36:39  <frosch123> SLEG is translated into "static const void* ptr_to_trans = &Globals::GetInstance()->transparency;
21:37:01  <frosch123> Wolf01: "headers" is no concept known to the compiler or linker
21:37:45  <frosch123> the point is that all "static" variables in global scope are initialised before main() is called
21:38:05  <Wolf01> Ok, makes sense
21:38:10  <frosch123> if you initialise _globals in main(), it is still NULL during static initialisation
21:38:31  <frosch123> if you call GetInstance() during static initialisation, that forces it to be called before main()
21:38:50  *** HerzogDeXtEr has quit IRC
21:39:00  <Wolf01> Globals *_globals = Globals::GetInstance(); <- this could have done the trick?
21:39:23  <frosch123> no, that is a deep rabbit hole
21:39:40  <frosch123> if you then use _globals during static initialisation, you get undefined behaviour
21:40:26  <frosch123> you can't define whether _globals is assigned before or after the SLEG
21:40:30  <Wolf01> Right, it says that in "static initialization order fiasco"
21:41:05  <frosch123> if you want to dynamically allocate those globals, you either always use GetInstance
21:41:08  <frosch123> or you get rid of SLEG
21:41:10  <Eddi|zuHause> hence you need a property with a get method
21:41:18  <frosch123> for example by moving transparency to guisettings :p
21:41:27  <Wolf01> Yes, makes sense
21:43:07  <Eddi|zuHause> the point of a property is exactly to hide this call to GetInstance
21:43:46  *** FLHerne has quit IRC
21:44:17  <Wolf01> Better if I start again, I mangled too much this local repo
21:44:37  <frosch123> do you have a list of globals
21:44:55  <frosch123> or do you just handle them when you find one?
21:45:40  <Eddi|zuHause> just grep for variables starting with _?
21:46:42  <frosch123> i thought for "extern"
21:46:56  <Wolf01> I wanted to move most of them in Globals, but it doesn't make sense because 1) different scopes; 2) problem of usage like the settings one
21:47:00  <V453000> RGB_DESTROYER
21:47:03  <V453000> gg
21:47:06  <Wolf01> +1
21:47:12  <V453000> iWin
21:47:22  <frosch123> ottd is a peaceful game
21:47:30  <V453000> graphics development isn't
21:47:33  <frosch123> RGB_SLUGGER
21:47:34  <Wolf01> RGB_BULLDOZER
21:47:46  <V453000> XD RGB DOZER
21:47:55  <guru3> am I just thinking crazy? I seem to remember that the original TT music was different from TTDs, but don't want to install them both to figure it out -_-
21:47:59  <frosch123> RGBOZER?
21:48:12  <V453000> no would be INDEXOZER
21:48:14  <Wolf01> Reggae Booze
21:48:24  <V453000> RGB_WRECKER
21:48:26  *** FLHerne has joined #openttd
21:48:43  <V453000> we haz train crashes and wrecks
21:48:57  <Wolf01> Also, RIP Jerry Lewis :(
21:51:45  *** supermop has joined #openttd
21:51:57  *** mescalito has quit IRC
21:59:50  *** supermop has quit IRC
22:10:28  *** glx has quit IRC
22:10:49  *** glx has joined #openttd
22:12:17  *** Biolunar has joined #openttd
22:22:04  *** Progman has quit IRC
22:35:30  *** pdoan has quit IRC
22:36:28  *** pdoan has joined #openttd
22:40:55  *** pdoan has quit IRC
22:41:58  *** pdoan has joined #openttd
22:49:21  *** Flygon has joined #openttd
22:53:10  <Eddi|zuHause> guru3: i think TTD added some more songs, and some of the existing ones might have been reworked. not sure
22:54:05  <Eddi|zuHause> guru3: also, how the music soundes heavily depended on your sound card
22:56:25  *** Wormnest has quit IRC
22:57:51  *** Tirili has quit IRC
22:59:47  *** supermop has joined #openttd
23:05:03  *** tycoondemon has joined #openttd
23:13:06  *** frosch123 has quit IRC
23:38:51  *** FLHerne has quit IRC
23:51:24  <Wolf01> https://www.flickr.com/photos/itlug/35703497791/ Ha! Me (left) and a friend of mine on a building contest during the last exposition

Powered by YARRSTE version: svn-trunk