Back to Home / #openttd / 2017 / 08 / Prev Day | Next Day
#openttd IRC Logs for 2017-08-20

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