IRC logs for #openttd on OFTC at 2018-04-24
⏴ go to previous day
00:39:53 *** ToBeFree has joined #openttd
01:15:24 *** HeyCitizen has joined #openttd
02:57:44 *** snail_UES_ has joined #openttd
02:59:09 *** sim-al2 has joined #openttd
03:08:56 *** supermop has joined #openttd
04:57:28 *** muffindrake2 has joined #openttd
06:26:09 *** tokai|noir has joined #openttd
06:26:09 *** ChanServ sets mode: +v tokai|noir
06:39:46 *** Wacko1976 has joined #openttd
06:59:29 *** Wacko1976 has joined #openttd
07:43:35 *** andythenorth has joined #openttd
07:43:51 *** andythenorth has left #openttd
08:11:05 *** andythenorth has joined #openttd
08:16:16 *** Alkel_U3 has joined #openttd
08:28:53 *** ToBeFree has joined #openttd
08:42:55 <Eddi|zuHause> ... can't think of a pun to put here...
08:49:38 <Pikka> something about eggs or oxen, probably
09:00:36 <andythenorth> I like flat trains
09:01:39 <Eddi|zuHause> it looks better than yesterday when the yellow front looked like it's sticking out
09:02:00 <V453000> andythenorth: I actually like it a lot
09:02:25 <andythenorth> I might steal the vectron from NARS 2 for one engine
09:02:32 <andythenorth> I have to do 4 of these slopey things
09:02:38 <andythenorth> and make them look different
09:02:47 <Pikka> looks good :D sloped fronts in the _ views are one of the hardest things to draw imo
09:03:22 <Pikka> and the subtler the slope the harder it is
09:07:24 <V453000> it doesn't have to be exact you know :P
09:10:33 * peter1138 ponders buying Locomotion on Steam.
09:11:27 <Eddi|zuHause> i think someone gave me a locomotion CD once
09:11:31 <Eddi|zuHause> never touched it
09:11:35 <peter1138> It has a very subdued palette.
09:12:26 <peter1138> And misses useful stuff like working signals.
09:12:43 <peter1138> How do I make this window shrink automatically?
09:12:55 <__ln__> it also has useful stuff that ottd doesn't
09:13:22 <Eddi|zuHause> i'm pretty satisfied with the signals in TF
09:14:08 <Eddi|zuHause> only thing about TF i actively dislike is that it disables achievements with mods
09:14:32 <Eddi|zuHause> (there are of course minor annoyances all over the place)
09:14:40 <Eddi|zuHause> (and it's still missing a planning mode)
09:42:30 <peter1138> Anyone have a copy of the vehicle group icons without the overlays?
09:50:20 <Eddi|zuHause> not even a clue what icons you mean
09:50:31 *** Zexaron has joined #openttd
09:50:55 <peter1138> Icons on the vehicle group UI.
09:56:58 *** andythenorth has joined #openttd
09:57:15 <peter1138> Do you, andythenorth?
09:58:10 <andythenorth> or I have to cut them out
09:58:42 <andythenorth> as icons go, they're not the best of the best
09:58:46 <andythenorth> that yellow star, what is it?
10:00:05 <andythenorth> Pikka: mines a P2
10:00:18 <andythenorth> I'm not doing cheese steamers
10:38:40 <peter1138> Cheese please louise.
10:39:26 <peter1138> andythenorth, I pushed an update (rebased so you need to drop local branch first)
10:39:40 <peter1138> There's a "slight" issue with it :p
10:50:18 <andythenorth> did it gain shared vehicles commands? o_O
10:50:33 <andythenorth> oh no they're in trunk too
10:50:44 *** andythenorth has left #openttd
11:06:05 *** FLHerne has joined #openttd
11:16:39 *** sla_ro|master has joined #openttd
13:09:18 *** Wacko1976 has joined #openttd
13:17:31 <__ln__> an integrated web browser?
13:27:00 <SpComb> then you could use asm.js to play openttd inside openttd?
13:27:36 <SpComb> but probably for like NewGRF READMEs on bananas
13:32:52 *** chomwitt has joined #openttd
13:32:56 <peter1138> When do we get NewMap?
13:34:28 <__ln__> are you talking about the thing that was previously talked about in ~2005?
13:35:37 <SpComb> I would like bendy 3D bridges
13:37:45 <__ln__> i need underground tunnels
13:39:25 <__ln__> fair enough, regular tunnels are underground by definition. but i mean... below sea-level, and also stations in tunnels, and so on.
13:52:00 <SpComb> openttd just isn't moddable enough :P
13:53:26 <SpComb> wtf, the latter is even "This is an official mod from the Transport Fever developer team"
14:00:02 <peter1138> Do I need to get myself Transport Fever next time it's on salae?
14:30:30 <V453000> just go bike instead :P
14:30:46 *** snail_UES_ has joined #openttd
14:34:03 <peter1138> Probably a good idea.
14:36:31 <V453000> also I finally made my resizing python script work with drag&dropping pictures/folders onto it ... I haven't worked on the trains for months and I completely forgot what format of a command does it want to eat ... apparently rewriting it was the easiest solution :d
14:46:22 *** sim-al2 has joined #openttd
15:12:02 *** supermop_work has joined #openttd
15:30:28 *** Alberth has joined #openttd
15:30:28 *** ChanServ sets mode: +o Alberth
15:51:07 *** andythenorth has joined #openttd
15:52:51 *** sla_ro|master has joined #openttd
15:53:47 *** Extrems has joined #openttd
15:54:58 <peter1138> Maybe I should get Skyrim VR.
15:58:07 <andythenorth> done up a Turtle
15:58:14 <andythenorth> fast pax diesel engine
15:59:07 <andythenorth> (the choices are just 1CC + 2CC or swapped)
16:00:38 <andythenorth> "mainly 2cc" matches the coaches
16:00:50 <andythenorth> "mainly 1cc" matches the other engines in this tech tree
16:05:20 <andythenorth> group livery UI only allows one color choice right?
16:05:26 <andythenorth> no split engines / arbitrary wagons
16:05:33 <andythenorth> or power types and stuff
16:06:59 <peter1138> Yeah, just one per group.
16:07:23 <peter1138> I did mention it could possibly have the whole normal thing per group, but that would be overkill and silly.
16:07:43 <peter1138> But now you mention it, someone will complain ;p
16:08:08 <andythenorth> the normal thing per group is fine
16:08:15 <peter1138> And that would require my UI to be completely changed again.
16:08:15 <andythenorth> it's just that the implementation is weird :)
16:09:00 <peter1138> g->livery[LS_END]? o_O
16:09:17 <andythenorth> I'd have to look that up :P
16:15:27 <peter1138> Might as well have individually assignable colours per vehicle ;p
16:15:51 <peter1138> Hmm, though having the whole set of liveries per group wouldn't make sense.
16:15:59 <peter1138> As groups have vehicle types.
16:16:06 <andythenorth> yeah, some options would be meaningless
16:16:16 <peter1138> Although it would be the easier way to implement it.
16:16:47 <andythenorth> it's potato / potato to me
16:16:56 <andythenorth> whatever's simplest to implement
16:17:00 <andythenorth> one livery is fine
16:17:14 <andythenorth> the current set of liveries is silly, but kind of useful
16:17:32 <peter1138> Actually the UI changes would be simpler ;?
16:17:37 <andythenorth> hmm do I have the right branch from your fork?
16:18:55 <FLHerne> Boolean conversions only occur with logical ops, where they're generated implicitly
16:19:02 <andythenorth> I reviewed it and discovered I don't understand it :)
16:19:09 <andythenorth> I can't commit that :)
16:19:20 <FLHerne> The current code turns !foo into !!!(foo) which turns into !!!(!!(foo)) etc
16:20:39 <FLHerne> So the end result is that running nmlc --nml=... in a loop results in an infinitely large file consisting mostly of !!() :P
16:21:04 <peter1138> andythenorth, yeah, if you scrapped it and repulled.
16:21:15 <andythenorth> I trashed the repo and recloned
16:21:32 <peter1138> there's no button in the group window any more
16:21:35 <peter1138> it's all in company colours
16:21:48 <peter1138> mainly cos i didn't want to have to design an icon :p
16:23:01 <andythenorth> if I drew an icon, button on group window could open that livery window, focussed on correct grop
16:24:46 <andythenorth> C++ is outdated and slow
16:24:54 <andythenorth> newgrf is the cause of all the performance issues in the game
16:25:01 <andythenorth> changing language makes specs unnecessary
16:25:43 <LordAro> i'm curious what he thinks would be a better language
16:26:13 <andythenorth> I'm curious about how much wrong can be in one post
16:26:30 <andythenorth> I mean there are people who have obvious mental health issues who can top that easily
16:26:44 <andythenorth> but that's high up the list for recent years
16:26:55 <andythenorth> oops I should be elsewhere
16:28:40 <peter1138> I don't even think NewGRF is particularly slow. Just that particular case.
16:45:12 <Alberth> just a bit inconvenient interface
16:45:21 <Alberth> but there are more such points in the spec
16:46:59 <Alberth> FLHerne: that patch won't fly, boolean should get limited to 0 or 1, which happens with !!
16:47:34 <FLHerne> Alberth: Yes, but the parser inserts those implicitly when parsing logical ops
16:48:02 *** Wormnest has joined #openttd
16:48:05 <FLHerne> !!(foo) appearing in the source still gets parsed and saved fine
16:48:35 <Alberth> I am not sure it's a problem, there is code for simplifying expressions too
16:49:06 <FLHerne> Alberth: Without this patch, we read !!(foo) and write it as !!!(!!!(foo))
16:49:32 <Alberth> what if you don't have a logical op? eg use it as integer index, for example
16:50:36 <Alberth> without !! as you propose
16:50:44 <FLHerne> 'Boolean' doesn't have any rule directly in the parser
16:51:00 <FLHerne> !! is always parsed as LogicalNot
16:51:08 <Alberth> integers are also booleans, like in C
16:51:23 <Alberth> 0 is false, anything else is true
16:51:30 *** andythenorth has joined #openttd
16:51:54 <Alberth> but that breaks if you use a boolean in an integer context
16:52:06 <Alberth> as it must be 0 or 1 then
16:52:13 <FLHerne> Yes, but that's also implicit...
16:52:38 <FLHerne> Hm, I need to re-explain
16:52:40 *** Wacko1976 has joined #openttd
16:54:03 <FLHerne> To the parser, !value means LogicalNot(Boolean(value))
16:54:10 <Alberth> if you can detect the child expression to be a boolean with those limits in place already, it could work
16:54:31 <FLHerne> !!value is just that, nested
16:54:34 <Alberth> and !! means (x) ? 1 : 0
16:54:45 <Alberth> which is not the same as x
16:55:04 <Alberth> namely for all values x other than 0 and 1
16:55:11 <FLHerne> Yes, but it doesn't mean that as a different symbol
16:55:48 <Alberth> (((..(x != 0) != 0) != 0) ... )
16:56:42 <FLHerne> If you actually write !!foo in the source, it's parsed as LogicalNot(Boolean(LogicalNot(Boolean(<foo>))))
16:56:58 <FLHerne> The conversion is implied by the existence of !
16:57:21 <FLHerne> So when writing out the AST, adding /extra/ !!()s for the conversions is never necessary
16:57:43 <peter1138> So, er... what patch are you talking about?
16:57:45 <FLHerne> (fwiw, this is also true for the other operators that cause int->bool conversions
16:57:58 <Alberth> for the second time, it's not, for the first time, when your child is "<foo>", it is
16:58:32 <FLHerne> Alberth: I think you're confused about what the change changes :P
16:58:54 <Alberth> that's quite possible :)
16:59:12 <FLHerne> It doesn't stop the parser creating Boolean nodes in the AST, it just stops them being written out
16:59:45 *** synchris has joined #openttd
17:00:20 <FLHerne> Because they're /always/ implicit
17:00:53 <Alberth> if a boolean mode is "2", then writing out "2" and "!!2" is not the same, so where is the !! added for the child then?
17:01:02 <FLHerne> An 'explicit' boolean conversion is parsed as a pair of logicalnots, which then implicitly get the Boolean nodes added
17:01:12 <FLHerne> Alberth: By the logicalnots
17:02:01 <Alberth> so an "assert isinstance(expr, LogicalNot)" would hold?
17:03:07 <FLHerne> No, implicit bool conversions also get generated for the other logical ops
17:03:28 <Alberth> ok, add the other logical operators too :)
17:04:00 <Alberth> assert(expr, (LogicalNot, LogicalAnd, LogicalOr))
17:04:11 <peter1138> Ah, nml. 'Nother Magic Language
17:04:53 <FLHerne> Alberth: No, it's the other way round
17:04:56 <Alberth> for me, NewGRF is the magic language :)
17:05:22 <FLHerne> Alberth: The /children/ of logicalops get Boolean conversion nodes, because that makes sense :P
17:05:39 <FLHerne> Really, I think it's a code-gen hack rather than a proper syntax tree
17:06:57 <Alberth> well, not sure, a logicalop could handle arbitrary integer values as input, unlike anything surrounding a logical expression which is not aware of it being a boolean
17:07:23 <FLHerne> Anyway, my reasoning is:
17:07:42 <FLHerne> - There is no Boolean symbol in the tokenizer/parser
17:08:11 <FLHerne> - Therefore all Booleans appearing in the AST must have been implicitly created while parsing other nodes
17:09:02 <FLHerne> - Therefore the parent node must imply the existence of the conversion
17:09:28 <Alberth> code is also created at a later stage, while simplifying an expression, or rewriting to a form that you can actually implement
17:09:35 <FLHerne> - Therefore we don't need to write out extra syntax for the conversion, because we know it's there
17:10:32 <FLHerne> That's a point, I need to check if that can happen
17:13:19 <peter1138> Alberth, I don't think anyone's called NewGRF a language before ;)
17:14:01 <andythenorth> I wanted to make a new thread for that discussion
17:14:09 <andythenorth> it's a bit unfair on JGR
17:14:27 <andythenorth> pisses me off when threads about my stuff take a 2 or 3 page diversion into blah blha blah
17:15:16 <FLHerne> Alberth: Hrm, I think you're right :-/
17:16:13 <FLHerne> It does look possible that the other nodes could get reduced away, although I haven't actually been able to make an example
17:16:34 <Alberth> expression rewriting in nml is horrible :p
17:16:52 <andythenorth> nml is horrible :)
17:17:00 <andythenorth> we should replace it
17:17:03 <andythenorth> with something fast
17:17:37 <Alberth> I once tried to avoid rewriting expressions that have been rewritten already, but even deciding an expression node is not modified anywhere is already too complicated to decide, I found
17:17:51 <andythenorth> peter1138: an MP undo knob
17:18:07 <FLHerne> Bleh, and there's no sane way to look at the parent node to make sure it implies the conversion...
17:18:14 <Alberth> andy: undo the undo :p
17:18:34 <peter1138> I'm not sure I've ever looked at nml code properly.
17:18:40 <peter1138> I don't know the structure of it.
17:18:56 <FLHerne> Oh, I can see a way to fix that, but it'll be horrible :P
17:19:03 <andythenorth> the action 0 and action 2 map in nml
17:19:21 <andythenorth> the action 3 is hidden away
17:19:35 <andythenorth> action 1 kind of maps
17:19:59 <andythenorth> there's a lot of magic, what has been done is quite an achivement
17:19:59 <Alberth> the problem of newgrf are this riddles in action X sentences
17:20:10 <Alberth> no way to understand them
17:20:12 <peter1138> varaction nonsense too
17:20:21 <andythenorth> I have a whole saved transcript "the trouble with nml"
17:20:39 <andythenorth> but apart from being terrible at bytecode, nfo never troubled me
17:20:42 <andythenorth> and I am not a programmer
17:20:45 <peter1138> The concept of having to ask what sprite to draw everything time is flawed, imho.
17:21:03 <andythenorth> is there really no caching?
17:21:20 <andythenorth> does it run the chain every time the graphics are drawn?
17:21:37 <Alberth> cache implies you know the decision ahead
17:21:46 <andythenorth> but mostly the decision doesn't need to be made
17:21:54 <Alberth> but it's arbitrary decision code
17:21:57 <peter1138> andythenorth, yes, becuase, you know, something might have changed.
17:22:10 <andythenorth> yes, the prototype might be blue on Tuesdays in 1931
17:22:12 <peter1138> like those animated steamers.
17:22:14 <andythenorth> and it might be Tuesday
17:22:29 <peter1138> where the newgrf decides which frame to draw every time
17:22:31 <andythenorth> animation is the valid special case
17:22:47 <peter1138> even that doesn't need to ask every time, if it's well designed
17:22:49 <andythenorth> but there are other ways to do animation
17:22:54 <andythenorth> animation can have defined frames
17:22:55 <peter1138> (supply a list of frames at the start)
17:23:06 <FLHerne> Would it be possible to scan the callback beforehand, to see which variables it depends on?
17:23:13 <andythenorth> like a walk cycle loop
17:23:24 <peter1138> I'm not sure but I think varaction processing is probably quicker in ttdpatch too.
17:23:26 <FLHerne> (and then only run ones where the deps could plausibly have changed)
17:23:37 <andythenorth> do we even know that newgrf is slow?
17:23:37 <peter1138> Far less support code around it.
17:23:47 *** ToBeFree has joined #openttd
17:23:54 <peter1138> It's not the slowest thing.
17:24:32 <Alberth> without assuming values, you're looking at branching into every "if", which explodes quite fast to much of the newgrf, probably
17:24:45 <peter1138> Retrying industry placement may be slow but that's not inherently newgrf's fault.
17:25:23 <Alberth> bigger points of pain is vehicle replacement, imho
17:25:32 <peter1138> Do we get the sprite for every vehicle, or just the visible ones?
17:25:41 <Alberth> industries are not created often enough
17:25:45 <andythenorth> industry placement is faster if one doesn't ECS
17:25:57 <andythenorth> maybe it shouldn't be George's responsibility
17:26:02 <andythenorth> but it is, and he's made it slow
17:26:02 <Alberth> no idea, my guess is just what needs to be drawn
17:26:17 <andythenorth> ECS is slow to place industries because the rules are far too fine-grained
17:26:36 <andythenorth> arguably the mod framework should defend authors against that
17:26:42 <andythenorth> but then it would have to be very restricted in scope
17:26:51 <peter1138> Alberth, I have a suspicion it uses the dimenions of the sprite to fill a hash to determine what is on-screen.
17:26:55 <andythenorth> if authors want control, then they have to be responsible
17:26:58 <peter1138> Not looked for ages though.
17:27:06 <andythenorth> there are lots and lots of shit minecraft mods that will cause lag or crashes
17:27:15 <peter1138> I remember writing a patch that would cache the max possible size for a vehicle and always use that.
17:27:21 <peter1138> But, you know, patches...
17:27:34 <andythenorth> now they can be unfinished branches ;)
17:27:49 <andythenorth> put em in gist :P
17:27:57 * andythenorth must to go elsewhere again
17:28:01 *** andythenorth has left #openttd
17:28:02 <peter1138> I've had minecraft packs that just flat out refused to load because 8GB wasn't enough RAM.
17:29:17 <LordAro> minecraft isn't exactly known for its efficient resource usage
17:29:48 <Sacro> I find 10-12 is enough for modpacks
17:31:19 <peter1138> I have 32GB now so that should be enough.
17:36:27 <FLHerne> Alberth: Any idea if nmlop.AND not having returns_boolean is an omission or means something?
17:39:06 <FLHerne> ( | and || are actually the same operator, and converting the args to bool in the latter case makes it behave in the logical way)
17:40:04 <Alberth> it has been a few years I last looked at that code :)
17:44:40 *** chomwitt has joined #openttd
17:45:01 *** Thedarkb-X40 has joined #openttd
18:21:56 <peter1138> I clicked on the "Net work" icon and the whole thing froze.
18:31:08 *** TheMask96 has joined #openttd
18:31:58 <peter1138> Apparently my company has a colour, but I've not seen it anywhere :p
18:35:29 <FLHerne> (also makes logical ORs and ANDs more readable even without bool conversions)
18:37:15 <FLHerne> I spent a while trying to add a `to_string_func` to Operator, but that doesn't work because Operator.to_string takes /strings/ for the exprs so can't tell whether it's a logical op
18:37:40 <FLHerne> (and it wouldn't be straightforward to change that)
18:38:33 <Alberth> I don't have the code in my head, so can't quite comment on that :)
18:39:11 <Alberth> I guess "is_boolean" is different from isinstance(expr, Boolean) ?
18:39:58 <Alberth> oh the former is also defined on operators of course
18:43:02 <Alberth> your 'not' code is the same as unpack, move the function to a more global level, and reuse?
18:47:47 <FLHerne> I'm not really familiar with nml structure, any suggestions?
18:48:04 <FLHerne> Perhaps I should just make it a staticmethod of Boolean
18:48:09 <Alberth> I was pondering why both classes are not in the same file :p
18:48:49 <FLHerne> binary vs unary ops, I think
18:49:06 <Alberth> ah, makes somewhat sense, I guess
18:49:11 <FLHerne> Well, I don't know why anyone cared
18:59:14 *** HerzogDeXtEr has joined #openttd
19:01:53 *** frosch123 has joined #openttd
19:02:57 <Wolf01> Wow, for the first time I made 249M points on pinball
19:03:48 <LordAro> i don't think i ever got more than 10M
19:04:09 <Wolf01> It took me half of the lunch break and some time now, continuous multiballs, I had 5 balls for the entire game
19:04:40 <Wolf01> (after losing 2 of the 3 balls at the beginning)
19:08:25 <LordAro> Wolf01: how are you playing? I hope you don't have an XP machine still...
19:09:14 <peter1138> How do I force a window to shrink? :S
19:10:23 <Eddi|zuHause> i don't think i've even thought of the existence of pinball over the last ~12 years
19:11:02 <frosch123> peter1138: ReInit()
19:13:19 <peter1138> Hmm, that is being called.
19:15:15 <Wolf01> peter1138: I'm going to retry abusing the UnpackIfValid to extract the RoadType from RoadTypes... or you say is it better to pass the RoadType on the function call?
19:15:37 <peter1138> Don't abuse it, that's why it doesn't work :S
19:16:13 <FLHerne> Hm, I should add a comment to binop too
19:16:28 <FLHerne> nml doesn't have enough, but that's not an excuse not to add them :P
19:16:42 *** andythenorth has joined #openttd
19:16:51 <Wolf01> Ok, then I'll remove that, pass directly the RoadType on the function call, and reimplement UnpackIfValid when we'll add subtypes
19:17:13 <Wolf01> But this mean double change on the same spot
19:18:45 <Wolf01> Or, I'll use rtid::Pack() on the function call too, which does nothing else than passing a RoadType in the current state
19:19:01 <Wolf01> So I don't have to change the function calls later
19:19:19 *** Progman has joined #openttd
19:20:23 <Wolf01> I'll rearrange the p2 bits too
19:27:03 <andythenorth> Pikka: is it not bedtime in BNE? :P
19:27:43 <FLHerne> Alberth: Are you ok to review/commit it, or do I have to nag someone else? ;P
19:27:51 <andythenorth> what colour is outside?
19:29:01 <Alberth> FLHerne: frosch123 may want to have check as well, I am not that well acquainted with nml code any more
19:29:44 <Alberth> I'll have to check what the is_bool function is doing at least :)
19:30:23 <andythenorth> FLHerne: also, how did you discover this issue? o_O
19:30:44 <Alberth> read output is my guess :p
19:31:04 <FLHerne> andythenorth: Well, I was loading and saving my file, and each time it got bigger and uglier :-(
19:31:21 <FLHerne> (with this one, it just gets ugly once and then stays unchanged with the round-trip)
19:31:47 <andythenorth> peter1138: so liveries look done eh :P
19:31:59 <andythenorth> can't ship without bugs, it's bad luck
19:33:49 <FLHerne> (not that anyone would care)
19:36:39 <FLHerne> andythenorth: n round-trips lead to 3^n exclamation marks, so exponentiation being what it is it becomes noticeable quite fast
19:44:10 <Alberth> don't recompile an nml file to itself :p
19:44:33 <Alberth> the entire is_boolean looks quite hacky
19:48:35 <frosch123> when is this stuff even used? in error messages?
19:52:57 *** Wacko1976 has joined #openttd
19:53:09 <andythenorth> futurising sets is boring
19:53:11 <andythenorth> pikka is right :P
19:53:51 <andythenorth> I need to replace the 37 in 2020
19:53:58 <andythenorth> but reality doesn't help
19:54:02 <andythenorth> no time machine :P
19:54:05 <Eddi|zuHause> i'd vote for a little bit of future, but too future-y will probably fail
19:54:35 *** Thedarkb has joined #openttd
19:54:50 <andythenorth> but it works better for the fast pax diesel in the tech tree for 2020
19:54:53 <andythenorth> so now I have nothing to draw :P
19:55:04 <Eddi|zuHause> make it a universal diesel?
19:55:11 <andythenorth> tech tree says no
19:55:22 <andythenorth> I could just have similar sprites
19:55:27 <Eddi|zuHause> make an identical one with different stats?
19:55:43 <andythenorth> the stats are already sorted :)
19:56:34 <andythenorth> but then I stole it for the Turtle
19:57:28 <andythenorth> everything is cheese by 2020
19:58:08 <V453000> Pikka may have skewed his perception of "a lot of locos" :P
19:58:18 <V453000> but yeah, minimizing iz
19:58:20 <andythenorth> V453000 pikka has same number as me
19:58:27 <andythenorth> he just hides them in A, B and C :)
19:58:47 <Pikka> I don't have as many electro-diesels ;)
19:59:03 <Eddi|zuHause> what happened to "10 locos should be enough for anyone"?
19:59:32 <Pikka> I didn't say that, I said 10 locos should make a playable set
19:59:44 <Pikka> once you have a playable set, you can start making it more fun :P
20:00:54 <andythenorth> Pikka: how many do you have now? o_O
20:02:00 <DorpsGek> andythenorth: 4.57142857143
20:02:24 <DorpsGek> ZehMatt: Error: float division by zero
20:02:36 <DorpsGek> ZehMatt: Error: float division by zero
20:02:39 <andythenorth> had to be tried eh
20:02:47 <andythenorth> stop bullying the bot
20:02:59 <ZehMatt> u'll never know when you find the first singularity
20:03:20 <andythenorth> there's always a chance
20:07:10 <ZehMatt> @calc sin(0.5)*cos(0.2)
20:07:10 <DorpsGek> ZehMatt: 0.46986894695
20:08:40 <DorpsGek> ZehMatt: Error: 'null' is not a defined function.
20:08:51 <DorpsGek> ZehMatt: Error: 'null' is not a defined function.
20:09:05 <LordAro> come on, you can do better than that
20:09:15 <DorpsGek> LordAro: Error: Something in there wasn't a valid number.
20:09:20 <DorpsGek> ZehMatt: Error: 'echo' is not a defined function.
20:09:21 <DorpsGek> LordAro: Error: Something in there wasn't a valid number.
20:09:59 <ZehMatt> oh since you are here
20:10:05 <ZehMatt> I've addressed the last review of yours
20:10:13 <ZehMatt> its ready from my end
20:10:59 <ZehMatt> moving a window on 120hz at 30hz is slightly akward to watch :p
20:12:07 <andythenorth> Pikka: shall I just refurb the 37 again? And not electro it? :P
20:12:13 <andythenorth> it's pretty close to IRL
20:12:25 <andythenorth> there are no replacements for 37s because they keep repairing them
20:13:04 <andythenorth> saves drawing eh
20:13:56 <Pikka> I thought the 37s were all gone, I guess not :P
20:14:39 <andythenorth> seems there are about 40 or so left with leasing companies
20:15:30 <peter1138> ZehMatt, on my system I get horrible glitching as there's no vsync going on :S
20:16:07 <peter1138> I haven't tried the split-up version.
20:16:09 <ZehMatt> fullscreen, windowed?
20:16:24 <peter1138> It's there in master anyway, just less noticable as there is settle-time between frames.
20:16:34 <peter1138> Windowed, I'm not a monster.
20:17:05 <ZehMatt> i wonder how thats even possible
20:17:08 *** Wacko1976 has joined #openttd
20:17:18 <peter1138> BTW you didn't update the allegro driver again, it doesn't call DrawWindows()
20:17:21 <peter1138> No, I'm on Windows.
20:17:35 <ZehMatt> i cant get it go tear
20:18:02 <peter1138> Hmm, wonder if I can capture it. Unfortunately as it's GDI OBS isn't much cop.
20:18:42 <peter1138> I made my copy update the whole screen at once and it's silky smooth, of course./
20:19:38 <ZehMatt> i keep missing those files because they are not with the VS project :D
20:19:53 <ZehMatt> one way could be to add them but exclude them from compilation
20:23:45 <peter1138> mouse cursor disappears, and windows get chopped up
20:24:11 <ZehMatt> the mouse cursor thing is visible on my end except the window chopping
20:24:13 <peter1138> scrolling the map is fine
20:24:36 <peter1138> it's visible, check the scroll bar on the depot window
20:25:14 <peter1138> it disappears because the window has overwritten it, and it hasn't redrawn the scrollbar yet
20:25:28 <peter1138> something is not right but afaik it's all magic within BitBlt()
20:25:51 <peter1138> The surface knows what is meant be updated, and BitBlt should just magically do it.
20:26:48 <peter1138> lol one change and it rebuilds it all
20:26:50 <ZehMatt> some of it doesnt happen on my end
20:27:07 <ZehMatt> so far only the mouse cursor so far is can reproduced here
20:27:14 <peter1138> anyway, this happens in master for me as well
20:27:19 *** gelignite has joined #openttd
20:27:19 <peter1138> just your patch makes it more obvious
20:27:49 <peter1138> With that small change I made that marks it all dirty
20:27:53 <peter1138> it's lovely, silky smooth
20:28:02 <ZehMatt> perhaps add it to my PR?
20:28:18 <Eddi|zuHause> that kinda defeats the whole point?
20:28:18 <ZehMatt> what exactly did you change
20:28:19 <peter1138> marking the whole screen dirty every change is definitely wrong :)
20:28:50 <peter1138> It's like GDI is doing the BitBlt in stages :S
20:29:19 <peter1138> gonna try full screen
20:29:23 <peter1138> doubt it changes anything :)
20:29:32 <ZehMatt> ok so whats the suggestion
20:29:47 <peter1138> I have none. It's not really about your PR as it happens in master.
20:29:55 <peter1138> Just bugs me and I don't know how to fix it.
20:30:06 <ZehMatt> i can actually look into that afterwards if you want me to
20:30:09 <peter1138> I don't know what's odd about my system that other people don't have it.
20:30:55 <peter1138> Still bad on fullscreen.
20:30:59 *** Zexaron has joined #openttd
20:32:48 <peter1138> I suspect something changed in Windows over the years, everything being composited now.
20:33:08 <Eddi|zuHause> so report the bug to windows?
20:33:57 <ZehMatt> well report what exactly
20:34:06 <ZehMatt> the issue needs to be isolated first
20:34:09 <peter1138> That would be "LOL WHAT YOU USE GDI!?"
20:34:16 <peter1138> Use DirectX12 kthx bye
20:34:48 <ZehMatt> well speaking of, OpenRCT2 has OpenGL rendering, how would you feel about having that in OpenTTD
20:34:50 <peter1138> So yeah, maybe we need to switch to DX9 so we can just flip.
20:35:05 <peter1138> OpenGL is fine, someone already had a partial patch to implement it.
20:35:14 <peter1138> And I don't mean my ancient patch that was terrible.
20:35:17 <ZehMatt> i wonder if that was Overv again
20:35:29 <peter1138> It was one of the other devs.
20:35:32 <ZehMatt> he started it on orct2 and me and few others picked up lately
20:35:35 <peter1138> Can't remember who. Maybe michi_cc.
20:35:53 <ZehMatt> maybe if i'll find some spare time ill have a look
20:36:02 <peter1138> All it needs is an OpenGL pixel buffer as a surface, and then swap that about.
20:36:18 <peter1138> My ancient patch actually used direct opengl calls to render individual sprites. terrible.
20:36:31 <ZehMatt> we are batching everything
20:36:58 <ZehMatt> and interpolation adds some butter to it :p
20:37:04 <peter1138> There's no much to batch if it's just a surface.
20:37:12 *** Zexaron1 has joined #openttd
20:37:27 <peter1138> Although you could then do nice stuff like making windows be a different surface
20:37:51 <ZehMatt> you are probably talking rendering to textures
20:38:08 <peter1138> Yes, I'm talking about not changing the game core so much.
20:38:49 <peter1138> The game already handles only updating bits it needs to.
20:41:33 <ZehMatt> notepad++ loves messing with me
20:42:41 <peter1138> Palette animation also becomes cheaper, with the right scheme.
20:43:43 <peter1138> Some version of my ancient OpenGL patch which was all wrong. 10 years old :p
20:43:53 <peter1138> It was occasionally fast.
20:44:48 <ZehMatt> yeah i see improvement opportunities :p
20:46:24 <ZehMatt> thats how its done there
20:48:25 <LordAro> michi_cc has an opengl branch somewhere
20:52:17 *** chomwitt has joined #openttd
21:03:02 *** Supercheese has joined #openttd
21:04:40 <_dp_> hi! is it a good idea to pass NetworkClientInfo->index in network command instead of client_id?
21:05:51 <_dp_> client_id can go up to 32bit theoretically which is too much since there are only 64 bits in parameters and a lot of other stuff I want to pass
21:06:09 <_dp_> and there are max 256 clients anyway
21:07:01 <_dp_> only problem I see with index is that theoretically another client can replace this one while command is queued
21:07:39 <_dp_> but considering it's going to be used by GS it's a 1 tick window so chances are nearly 0
21:08:03 <peter1138> That will happen all the time, then.
21:11:00 <ZehMatt> isnt it actually width * height
21:11:06 <peter1138> It may have been profiled at some point.
21:11:08 <ZehMatt> a single memset would work?
21:11:39 <peter1138> only if width = surface width.
21:11:55 <ZehMatt> _dirty_bytes_per_line == width you mean
21:12:01 <ZehMatt> since buffer is plus that
21:12:24 <ZehMatt> well at least the inner thing should use memset
21:12:48 <ZehMatt> in most cases it will use a better path to fill the buffer
21:14:36 <Eddi|zuHause> _dp_: if the chance is not exactly 0, it's worthless
21:15:49 <_dp_> Eddi|zuHause, it may actually be 0, didn't check how network server is implemented
21:16:17 <Eddi|zuHause> _dp_: if you can't prove it's 0, it's not 0
21:16:43 <_dp_> A lot of stuff in OpenTTD uses indexes already actually
21:19:26 <_dp_> lol, and in exact same way I'm going to
21:20:59 <_dp_> Actually, much worse, since I'm only gonna keep it for 1 tick while current API has no issues exposing it to GS which can keep who knows how long
21:24:13 <peter1138> ZehMatt, hmm, so openrct2 does it sort of like how i was doing it, but with decent non-primitive-tutorial level calls...
21:26:14 <peter1138> michi_cc's patch still appears to due direct calls
21:32:12 <peter1138> ZehMatt, well, if you want to integrate it... ;)
21:42:21 <ZehMatt> but first things first
21:46:26 *** supermop_work has joined #openttd
21:49:13 <andythenorth> Wolf01: think it's better or worse than the TLG official one? o_O
21:50:01 <Wolf01> Better for sure, the official one will have aesthetics > functionality
21:51:26 <Wolf01> I'll wait a month to see how EuroBricks specialists destroy the official one, then I'll decide if it's worth the purchase
22:16:31 <Wolf01> I tried building and removing road/tram, building and removing road/tram stations, depots, bridges, tunnels, and all the combinations of them, to me it seem to work
22:17:32 <Wolf01> I also already fixed some indentations on comments because VS loves to remove trailing spaces but I didn't update the patch as I already closed the CLI
22:17:52 <peter1138> InvalidateRect() leads to WM_PAINT. So every time it calls InvalidateRect() it repaints immediately.
22:18:10 <peter1138> No queuing of dirty rects.
22:22:36 <andythenorth> Wolf01: stop worrying about code style, it's literally a button in your editor
22:22:41 <peter1138> Nope, not the case at all.
22:22:42 * andythenorth is being a bad person
22:22:54 <Wolf01> I would love to have resharper
22:23:52 <Wolf01> I was too much used to PHPStorm code styling
22:25:08 <Wolf01> I never found something which can challenge that for VS, only some plugins which seem to work on 50% of the cases... and resharper (made from the same guys of PHPStorm)
22:27:02 <andythenorth> "here am I sitting in a tin can"
22:27:55 <peter1138> 3 is the magic number
22:28:33 <andythenorth> "I am the one and only"
22:28:37 <andythenorth> "nobody I'd rather be"
22:38:48 <andythenorth> literally Life On Mars is playing right now
22:50:38 *** Stimrol has joined #openttd
23:15:08 *** sim-al2 has joined #openttd
23:39:43 <andythenorth> stupid lack of deeplinks :P
23:44:31 * peter1138 whistles innocently.
23:59:41 <peter1138> Yeah, michi_cc's opengl patch fixes my glitch graphics.
continue to next day ⏵