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

---Logopened Sun Apr 03 00:00:11 2016
00:04-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has quit [Quit: Snail]
00:10-!-Ketsuban [~ketsuban@2a02:c7d:a34a:9000:35e4:4b:13e:e068] has quit [Quit: Leaving]
00:13-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has joined #openttd
00:17-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has quit []
00:21-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has joined #openttd
00:46-!-_johannes [~johannes@port-92-203-187-62.dynamic.qsc.de] has joined #openttd
01:02-!-Ketsuban [~ketsuban@2a02:c7d:a34a:9000:a08f:babc:787b:40e5] has joined #openttd
01:12-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has quit [Quit: Snail]
02:00-!-sla_ro|master [slamaster@89.136.141.100] has joined #openttd
02:17-!-Alberth [~alberth@2001:981:c6c5:1:be5f:f4ff:feac:e11] has joined #openttd
02:17-!-mode/#openttd [+o Alberth] by ChanServ
02:34-!-Arveen [~Arveen@ip-95-223-75-47.hsi16.unitymediagroup.de] has joined #openttd
02:45-!-Ketsuban [~ketsuban@2a02:c7d:a34a:9000:a08f:babc:787b:40e5] has quit [Quit: Leaving]
02:50-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has joined #openttd
02:50<andythenorth>o/
02:58-!-Progman [~progman@p57A1819B.dip0.t-ipconnect.de] has joined #openttd
03:04-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has quit [Ping timeout: 480 seconds]
03:05-!-Supercheese [~Superchee@cpe-76-178-136-186.natnow.res.rr.com] has quit [Quit: Valete omnes]
03:07<@Alberth>moin andy
03:51-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has joined #openttd
03:55-!-Hiddenfunstuff [~Geth@y32.ip1.anvianet.fi] has joined #openttd
03:57-!-Wolf01 [~wolf01@0001288e.user.oftc.net] has joined #openttd
03:57<Wolf01>o/
04:03<@Alberth>hi hi
04:08<_johannes>Can there be trains that are engines but have unit number 0 ?
04:10<_johannes>ah, if the train has multiple engines, the others can have id 0
04:27-!-sla_ro|master [slamaster@89.136.141.100] has quit []
04:35-!-Clockworker_ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has joined #openttd
04:42<andythenorth>stupid alumninium plant
04:42<andythenorth>is unbalanced
04:42-!-Clockworker__ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 480 seconds]
04:43<andythenorth>:D
05:00<@Alberth>add more buildings :p
05:04<Wolf01>o/
05:06<Wolf01>lol andy, I got 300 more vip points as excuse reward because I just asked why the inversion switch was removed from the power functions switch
05:06<Wolf01>official answer " The version of the LPF Control switch with the control direction switch on is discontinued and replaced by a newer version without this switch. The reason for removing the switch in the newer version is that it was not used often and had quite a cost overhead"
05:06-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has quit [Ping timeout: 480 seconds]
05:06<Wolf01>;_; andy
05:20-!-frosch123 [~frosch@00013ce7.user.oftc.net] has joined #openttd
05:21-!-MonkeyDrone [~Monkey@84.255.150.202] has joined #openttd
05:28-!-Quatroking [~Quatrokin@ip226-139-211-87.adsl2.static.versatel.nl] has joined #openttd
05:31-!-ConductCat [~Conductor@pool-108-56-8-121.washdc.east.verizon.net] has joined #openttd
05:38-!-ConductorCat [~Conductor@pool-108-56-8-121.washdc.east.verizon.net] has quit [Ping timeout: 480 seconds]
05:53-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has joined #openttd
05:54<andythenorth>ho
05:54*andythenorth ‘won’ Silicon Valley in 42 years
05:54<andythenorth>just missed bronze :P
05:59-!-tokai|noir [~tokai@00012860.user.oftc.net] has joined #openttd
05:59-!-mode/#openttd [+v tokai|noir] by ChanServ
06:00<frosch123>cookies are the best, you can eat them :)
06:01<andythenorth>so I need to get subtype into GetTileTrackStatus_Road
06:01<andythenorth>seems stuffing submode parameter is better than adding another parameter?
06:01<frosch123>definitely :)
06:01<frosch123>because it is shared with rail and ship
06:01<andythenorth>hmm
06:02<frosch123>you could change all of them into a struct ofc
06:03<andythenorth>that’s just words to me right now :D
06:03<andythenorth>not sure if I patch veh.compatible_roadtypes (probably not)
06:03<andythenorth>or find all places RVs call GetTileTrackStatus
06:03<andythenorth>and patch those calls
06:03<andythenorth>seems more like the latter
06:06<frosch123>i think you already patched all of them :p
06:06-!-tokai [~tokai@00012860.user.oftc.net] has quit [Ping timeout: 480 seconds]
06:07<andythenorth>nah, not yapf and npf ones yet
06:07<andythenorth>nor overtaking :x
06:11<andythenorth>hmm only 22 uses of compatible_roadtypes
06:11<andythenorth>can I stuff that and leave all the other things alone? o_O
06:11-!-Wormnest [~Wormnest@s5596abd2.adsl.online.nl] has joined #openttd
06:11<andythenorth>compatibility is a union of mode (tram / road) and subtype
06:12<andythenorth>unrelated, ROADTYPE would be better renamed MODE or so :P
06:25<frosch123>if you add some INVALID roadtype and tramtype, you likely do not need the RoadTypes in the submode
06:29-!-Nathan1852 [~Nathan185@HSI-KBW-134-3-201-222.hsi14.kabel-badenwuerttemberg.de] has joined #openttd
06:35-!-Defaultti [defaultti@lakka.kapsi.fi] has quit [Quit: Quitting.]
06:36-!-Defaultti [defaultti@lakka.kapsi.fi] has joined #openttd
06:41<andythenorth>hmm
06:41<andythenorth>don’t I need them to get the right set of track bits?
06:42<frosch123>TypeError: endswith first arg must be bytes or a tuple of bytes, not str <- i don't get that
06:42<frosch123> changes = [w[3:] for w in changes if w.endswith(file_ext)] <- what is the first arg? "w" or "file_ext"?
06:45<@Alberth>w
06:45<@Alberth>x.f(y) <--> f(x, y)
06:45<frosch123>to my understanding both "w" and "file_ext" should be strings
06:48<frosch123>i may need to add a "universal_newlines=True" to subprocess.check_output
06:48<Eddi|zuHause>the "first argument" of "x.blah(y)" is "x"
06:48<Eddi|zuHause>but that error makes not a lot of sense
06:48<andythenorth>is w bytes or string
06:48<@Alberth>you do, check_output has weird semantics for text-files if you don't provide that
06:49<andythenorth>bytes.endswith() somehow?
06:49<@Alberth>I think it gets confused on a weird combination of bytes and str
06:50<Eddi|zuHause>what if you try "str(w).endswith(...)"?
06:57<frosch123>universal_newlines fixed it
06:57-!-Samu [~oftc-webi@po-217-129-255-23.netvisao.pt] has joined #openttd
06:58<frosch123>https://dev.openttdcoop.org/projects/openttd-android-translate/repository/diff?utf8=%E2%9C%93&rev=b01fc7c7abd2b143a63d20ef3122dc533778db39&rev_to=6cf248be5eae8a175a8285eb463715129d46fada <- eints' first git commit :)
07:00<Eddi|zuHause>so that's a "it works \o/"?
07:01<frosch123>i guess so
07:01<frosch123>i just learned about ssh ControlMaster though, so maybe i can speed up eints scritps a lot
07:08<frosch123>hmm, it slowed it down from 30s to 160s?
07:08<frosch123>what :p
07:11<andythenorth>biddle bobble
07:15<andythenorth>compatible_roadtypes returns RoadTypes not RoadType?
07:15*andythenorth assumes from reading it
07:21<andythenorth>but RoadTypeToRoadTypes takes just one roadtype
07:21*andythenorth confused
07:28<frosch123>compatible_roadtypes makes little sense with your patch
07:28<frosch123>you define compatiblity on subtype level, while road and tram are always separate
07:32<andythenorth>so I can replace it
07:32<andythenorth>but I need to preserve the bits for is road / is tram
07:34<andythenorth>hmm if there are no compatible subtypes on the tile, that’s equivalent to ROADTYPES_NONE
07:35<andythenorth>frosch123: so INVALID might be a subtype for each of roadtype and tramtype?
07:35<andythenorth>0 or so
07:36<frosch123>usually 0xFF
07:43-!-andythenorth is now known as Guest10197
07:43-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has joined #openttd
07:44<andythenorth>seems like I could patch compatible_roadtypes
07:44<andythenorth>and return 1st bit as bool, road/tram, and then the subtype bits
07:45<andythenorth>and that would be enough
07:45<andythenorth>and for places that are looking only at road/tram, it’s a trivial fix
07:46-!-Guest10197 [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has quit [Ping timeout: 480 seconds]
07:47<andythenorth>but RoadType and RoadTypes are enums, so now I am lost :D
07:47<andythenorth>I know an enum is just a list, but how do I bitstuff that?
07:49<@Alberth>?
07:50<andythenorth>exactly :|
07:51<@Alberth>/me is mostly confused about "enum is a list" :)
07:51<@Alberth>but looking at the source, RoadType is a single roadtype, each with a number (0=road, 1=tram)
07:52<@Alberth>RoadTypes is the bitset already
07:52-!-liq3 [liq3@CPE-120-147-195-191.gdiv2.lon.bigpond.net.au] has joined #openttd
07:53<@Alberth>roadtypes_road is the bitset with only road, roadtypes_tram is the bitset with only tram, and roadtypes_all is the bitset with both road and tram
07:53<andythenorth>I need to patch v->compatible_roadtypes
07:53<andythenorth>which expects RoadTypeToRoadTypes
07:53<andythenorth>which returns RoadTypes
07:54<@Alberth>ok
07:54<andythenorth>not sure how I extend RoadTypes :)
07:54<andythenorth>I want the first bit to be the roadtype, and the remaining bits to be the subtype
07:55<andythenorth>ach, maybe I just don’t use RoadTypes
07:55<@Alberth>roadtypes has 2 bits now, 1 for road and 1 for tram
07:55<@Alberth>ie 4 possible values (nothing, only road, only tram, or both)
07:56<@Alberth>lots of aren't used yet, there :p
07:56<@Alberth>+bits
07:57<@Alberth>but maybe code expects only 2 bits always, which must be verified
07:57<@Alberth>and/or fixed
07:57*andythenorth tries to understand
07:57<andythenorth>when working with tiles, the RoadTypes structure makes sense
07:57<andythenorth>but when working with vehicles, there can only be one roadtype
07:58<andythenorth>this extensible structure is a dead end
07:58<andythenorth>maybe
07:59<andythenorth>road or tram is just a single bit
08:00<@Alberth>you can use a bitset with 1 bit set (ie only road or only tram), or you can use a RoadType value
08:00<andythenorth>can I pack the subtype bits into RoadTypes as well?
08:01<@Alberth>you can add a new field for the subtype
08:01<@Alberth>but existing code doesn't expect extra bits
08:02<@Alberth>so you need a masking function to pull just the current bitset out, and apply that everywhere
08:02<@Alberth>or at least check things don't break if you don't
08:02<andythenorth>seems most efficient to change what compatible_roadtypes is doing
08:02<andythenorth>and stop returning RoadTypes from it
08:02<andythenorth>and instead return a bitset containing what I need
08:03<@Alberth>you can also make another bitset, but then we'll have 3 sets for road and tram :p
08:04*andythenorth has brain ache :)
08:12<Wolf01>if you want I can give you more :)
08:13*Wolf01 waits another "connection reset by pear"
08:13<Wolf01>or by beer
08:13<Wolf01>sure is not peer
08:14<@Alberth>we'll wait for the message and see :p
08:15<Wolf01>andythenorth: I've got an official response from lego about the new pf switch without the inversion switch, it's just to reduce the costs
08:15<Wolf01>also I've got 300 more vip points because I only asked why they decided to change this
08:16<@Alberth>ask more questions :)
08:16<Samu>I finally got what the hell is wrong with my research! 3 variables that I got to work with: slopes, edges and corners
08:17<Samu>I was working with the slopes and corners the wrong way
08:17<Wolf01>is there a right way to work with slopes and corners?
08:18<Wolf01>(+5 points to griffindor)
08:18<Samu>if I am seeing this right, the edge_offset has to be split into edge_offset and corner_offset
08:19<@Alberth>recursive splitting!
08:19-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has quit [Quit: andythenorth]
08:19<Samu>it's hard to find what to do, but I'm getting somewhere
08:20-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has joined #openttd
08:24-!-gelignite [~gelignite@x4e3033df.dyn.telefonica.de] has joined #openttd
08:24<andythenorth>meh
08:24<andythenorth>function_name(my_param = {tram_flag: False, subtype: 0})
08:25<andythenorth>is all I want to do, but in C++
08:25<@Alberth>:)
08:26<@Alberth>where do you want that dictionary?
08:26<andythenorth>in place of compatible_roadtypes
08:26<@Alberth>(probably not as dictionary, but in an enum or so?
08:27-!-HerzogDeXtEr [~farci@i59F6AE4C.versanet.de] has joined #openttd
08:27<@Alberth>RoadTypes compatible_roadtypes; <-- change that type?
08:28<andythenorth>I think so
08:28<andythenorth>can I just use a uint and shift it? :P
08:28-!-MonkeyDrone [~Monkey@84.255.150.202] has quit [Read error: Connection reset by peer]
08:29<@Alberth>hmm, field name would be wrong too, I guess
08:34<andythenorth>the places that consume compatible_roadtypes are just looking for a bit currently
08:34<andythenorth>seems over-engineered :)
08:36*andythenorth biab
08:36-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has quit [Quit: andythenorth]
08:58-!-MonkeyDrone [~MonkDAce@80.88.255.40] has joined #openttd
08:59-!-FLHerne [~flh@dsl-217-155-24-22.zen.co.uk] has joined #openttd
09:04<Eddi|zuHause>Wolf01: the best one i've seen yet is "Peer Gynt"
09:07<Wolf01>hah poor guy :D
09:10<Wolf01>I've never read that poem, but I think I've had it on my school book
09:11<Eddi|zuHause>i only know the music...
09:16<Wolf01>Yeah, the music is famous
09:23<Wolf01>bah, I'm tired of making lego pantographs... need something else to do
09:27-!-norro_ [~quassel@vm-1-2.k023.de] has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
09:27-!-norro [~quassel@vm-1-2.k023.de] has joined #openttd
09:31<Eddi|zuHause>get me a replacement pantograph for an old E69 model (in H0)
09:38-!-FLHerne [~flh@dsl-217-155-24-22.zen.co.uk] has quit [Read error: No route to host]
09:38-!-FLHerne [~flh@dsl-217-155-24-22.zen.co.uk] has joined #openttd
09:41-!-norro [~quassel@vm-1-2.k023.de] has quit [Remote host closed the connection]
09:42-!-norro [~quassel@vm-1-2.k023.de] has joined #openttd
09:42-!-norro [~quassel@vm-1-2.k023.de] has quit [Remote host closed the connection]
09:42-!-norro [~quassel@vm-1-2.k023.de] has joined #openttd
10:08-!-norro [~quassel@vm-1-2.k023.de] has quit [Remote host closed the connection]
10:16-!-Eddi|zuHause [~johekr@p5B0DAE69.dip0.t-ipconnect.de] has quit []
10:23-!-Eddi|zuHause [~johekr@p5B0DAE69.dip0.t-ipconnect.de] has joined #openttd
10:28-!-Eddi|zuHause [~johekr@p5B0DAE69.dip0.t-ipconnect.de] has quit []
10:30-!-Eddi|zuHause [~johekr@p5B0DAE69.dip0.t-ipconnect.de] has joined #openttd
10:47-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has joined #openttd
10:51<@Alberth>https://paste.openttdcoop.org/p3rj9kpfy hi hi, random-ish attempt to make an extended RT version, for inspiration :)
10:52<Wolf01>:thumb_up:
10:53*andythenorth is going to have to learn what an enum actually is
10:53<andythenorth>google knows
10:56*andythenorth needs a better google
10:56<Wolf01>ask here
10:57<andythenorth>it looks like a dumb class
10:57*andythenorth struggling to see the purpose
10:59<@Alberth>enum does 2 things
10:59<@Alberth>1: introduce names for magic numbers
10:59<@Alberth>sort of const, but scales better for bigger amounts of constants
11:00<andythenorth>this guide starts to make sense http://www.learncpp.com/cpp-tutorial/45-enumerated-types/
11:00<@Alberth>2: Introduce a type, so names are grouped under an umbrella
11:01<andythenorth>is it odd to keep unrelated things in same enum?
11:01*andythenorth assumes so
11:01<@Alberth>it is
11:01<@Alberth>hmm, negative numbers aren't actually allowed in an enum
11:03<andythenorth>ok, so it makes sense to be able to write code using ROADTYPE_TRAM
11:04<andythenorth>rather than checking a specific bit is 1 in 19 places
11:05<andythenorth>so ROAD_FOO_ROAD = 1 << ROADTYPE_ROAD
11:05<andythenorth>is shifting by 0 or 1?
11:05<@Alberth>yep, it helps a lot, I'd say
11:06<@Alberth>don't understand the 0/1 question
11:06<@Alberth>lowest bit is numbered 0
11:06<@Alberth>1 == (1 << 0)
11:07<@Alberth>1 == 2**0
11:09<andythenorth>trying to understand what RoadFoo does :)
11:09<andythenorth>seems the subtypes would need to be in an enum for sanity
11:11<@Alberth>yup, uint8 is a bit blunt :p
11:11<@Alberth>you also likely don't have 256 subtypes
11:11<andythenorth>no
11:11<andythenorth>but there are two types of subtype
11:11<andythenorth>tram and road
11:12<@Alberth>and you can have both at the same time?
11:12<andythenorth>yes
11:12<andythenorth>tram and road are completely independent, they happen to occupy same tile
11:12<@Alberth>make a "no road" sub-type, and a "no-tram" sub-type, and the road and tram bits can be removed
11:13<@Alberth>(lack of tram bit == "no-tram" sub-type)
11:13<Eddi|zuHause>andythenorth: maybe you should further separate them in the code. so you have one data type TramType and one RoadType
11:13<@Alberth>so you only have road sub-type and tram sub-type
11:13<Eddi|zuHause>then you don't have to fiddle with weird orthogonal combinations
11:13<Eddi|zuHause>every tile gets a roadtype and a tramtype
11:14<@Alberth>+1
11:14<andythenorth>that seems counter-intuitive to me, having read the code a lot :)
11:14<andythenorth>RoadType is only used to distinguish between road and tram
11:14<andythenorth>if they’re split, what do you use to distinguish them?
11:15<Eddi|zuHause>what i named "roadtype" here would be the subtype
11:15<andythenorth>i.e. there is much code of the type (ROADTYPE_ROAD ? 1 : 0)
11:15<andythenorth>which is then used for RV or tram bits, movement code, drawing etc
11:16<andythenorth>I considered splitting them, but it would mean copying all the functions redundantly, afaict
11:16<andythenorth>much more legible though
11:16<Eddi|zuHause>you could also replace all those by (IsRoadSubtype(subtype)?1:0)
11:16<Eddi|zuHause>then have all subtypes as either a road or a tram type (defined by newgrf)
11:16<andythenorth>that would be appealing, but it needs some way to map subtypes back to road or tram
11:16<andythenorth>which I can’t conceive how to do
11:16<Eddi|zuHause>then you have 16 subtypes, which the newgrf can divide up as it wishes
11:17<andythenorth>yes
11:20<andythenorth>all of the is beyond me right now tbh
11:21<Eddi|zuHause>this is usually the point where you stop coding and start planning
11:21<andythenorth>I think I have enough prototype thrown at the wall
11:22<andythenorth>but I would like to get rid of current compatible_roadtypes use before I stop
11:22<andythenorth>I don’t really understand it, nor what breaks if it is changed
11:22<Eddi|zuHause>i can't help you with that
11:22<andythenorth>nah
11:22<andythenorth>I’ve set it to 0
11:23<andythenorth>for stupidity, and now I need to find how it’s used
11:23<andythenorth>maybe 1 is better
11:24<andythenorth>ROADTYPE_ROAD seems to be 0 sometimes, and 1 other times
11:26<andythenorth>yeah ok, changing current use of compatible_roadtypes breaks a bunch of stuff
11:27<andythenorth>it relies on checking multiple bits to detect if vehicle is road or tram
11:27<andythenorth>moving that to a flag in one bit doesn’t work
11:32<andythenorth>the simplest thing would be simply to add a subtype parameter to all the get_tile_track_status_proc functions
11:32<andythenorth>but that seems like total string
11:38-!-Ketsuban [~ketsuban@2a02:c7d:a34a:9000:1191:95f8:c397:ed86] has joined #openttd
11:39-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has left #openttd []
11:49-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has joined #openttd
11:49<andythenorth>how do I count how many bits an enum uses?
11:51<andythenorth>stack overflow says I shouldn’t try, it’s not safe
11:51<andythenorth>but I need to know
11:52<@Alberth>at value level, or memory storage level (ie how many bytes the compiler gave the type)
11:53<andythenorth>specifically I need to know how big compatible_roadtypes is
11:53<@Alberth>at value level, find the biggest number of the enum, and how many bits that number needs
11:53<andythenorth>so I can shift some other bits alongside it
11:53<andythenorth>that will be value level
11:54<andythenorth>highest value is 255?
11:54<@Alberth>biggest number is 0xff (INVALID_ROADTYPES), ie 8 bits
11:55<andythenorth>thanks
11:55<andythenorth>frosch gave me the method to implement this specific part of the patch yesterday btw, but until I understand why, I understand nothing much :)
11:55<andythenorth>and as yet, I understand nothing much :P
11:55<@Alberth>:)
11:56<@Alberth>that's where it always starts
11:56<@Alberth>exploding into nice generic solution also always happens :p
11:56<andythenorth>it now makes sense why the sub_mode parameter to GetTileTrackStatus_Road should be “road_types | road_subtype << 8 | tram_subtype << 16"
11:57<@Alberth>needs parentheses
11:57<andythenorth>yup :)
11:57<andythenorth>only needs to be added in 11 places :P
11:57<Samu>I could composite the edges of river tiles on slopes, but I have bad news :( the green color combinations of the edge stripes won't match... different greens
11:58<Samu>what to do?
11:58<Samu>need more greens!
11:58<andythenorth>nah, it must be possible
11:59<andythenorth>I drew the current river sprites, I was not short of greens
11:59<@Alberth>blues were a bigger problem I guess :p
11:59<Samu>the stripes are aligned, but the scolors doesn't really look good
11:59<Samu>colors*
11:59<andythenorth>screenshot?
11:59<@Alberth>what's the value of road_subtype if road_types has no road bit?
12:00<andythenorth>meaningless
12:00<andythenorth>it defaults to 0
12:00<andythenorth>currently I wouldn’t bother trying to read it anywhere, I’d check the road bit first
12:00<@Alberth>if you redefine 0 as "no road" you don't need the road bit of road_types
12:00<@Alberth>and similarly for tram bit
12:00<andythenorth>yes
12:01<andythenorth>lots of places use it, I think it’s a refactoring goal rather than a prototype
12:02*andythenorth should write a spec and plan
12:02<@Alberth>fair enough
12:03<andythenorth>hmm Arctic Basic is as popular as cold sick apparently
12:03<andythenorth>can’t win em all :(
12:03<Samu>http://i.imgur.com/9GcNZIC.png
12:04<Samu>i still dont have the water sprite
12:04<Samu>and i didn't align corners yet
12:04<andythenorth>what’s the problem with greens? o_O
12:04<Samu>but the NE edge vs NW edge... the colors
12:04<@Alberth>ugh, "it is not realistic -> not good" :(
12:05<Samu>the different greens
12:05<andythenorth>it’s not lit correctly
12:05<andythenorth>the greens are available in the palette
12:05<andythenorth>don’t worry about that too much at that moment, as long as you have the right pieces
12:05-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has joined #openttd
12:05<andythenorth>if I was doing this, I’d actually draw pink / red / yellow / blue sprites, to avoid looking too much at the appearance
12:06<andythenorth>and instead focus on getting the right sprite in the right place :)
12:06<Samu>speaking of corners
12:07<andythenorth>Alberth: I can’t see past the antagonistic stuff about car industries :P
12:07<Samu>I don't have a N corner sprite :(
12:07<Samu>well I have many N corner sprites, but not one that aligns well given those 2 edges configurations
12:07<andythenorth>I’m not nationalistic, but UK car industry is ~same size as France, bigger than Italy. Provocative assertions, based on wrong facts :|
12:08<andythenorth>Samu: the sprites you need likely don’t exist yet
12:08<andythenorth>if you try and composite existing riverbank sprites you’ll get the effect in the screenshot :)
12:08<@Alberth>it's arctic -> greenland -> has no car industries -> wrong
12:09<andythenorth>they’re factually correct, maybe I just remove ‘inspired by’ :P
12:09<@Alberth>while in my view, it's good to have something different than the ever coal / wood thingies
12:09<andythenorth>indeed :)
12:10<andythenorth>so if road / tram bits went away and instead subtype 0 was “TRAM_NONE” or similar
12:10<andythenorth>inline bool IsTram() { return IsRoadTT() && HasBit(RoadVehicle::From(m_veh)->compatible_roadtypes, ROADTYPE_TRAM); }
12:10-!-NGC3982 is now known as NGC1
12:10<andythenorth>would be simpler no?
12:11<@Alberth>it would, less duplication of state, so simpler to manage. however I can see the point of making it work first
12:11<Eddi|zuHause>that doesn't make a lot of sense
12:12<andythenorth>Eddi|zuHause: as it currently exists?
12:12<andythenorth>or my proposal?
12:12<Eddi|zuHause>the "TRAM_NONE" thing
12:13<andythenorth>does it make sense to drop the road / tram bits?
12:13<Eddi|zuHause>"compatible_roadtypes" should probably be replaced by something derived from the newgrf, like for railtypes
12:13<andythenorth>I don’t understand that tbh
12:14<andythenorth>newgrf can’t change the definitions of ROADTYPE_ROAD and ROADTYPE_TRAM
12:14<andythenorth>that’s well out of scope
12:14<Eddi|zuHause>yes, but they can add more, that are either compatible to ROAD, TRAM or neither
12:14<andythenorth>no they can’t
12:14<andythenorth>well, not the way I’m planning to do it
12:14<Eddi|zuHause>but they should become able to
12:14<andythenorth>that’s a whole other ball game
12:15<Eddi|zuHause>then i don't understand what you're trying to achieve
12:15<andythenorth>why add more types?
12:16<Eddi|zuHause>narrow gauge trams, broad gauge trams, subways, trails, whatever
12:16<andythenorth>yes but that’s not what ROADTYPE does
12:16<Eddi|zuHause>but maybe that's what it should do?
12:16<andythenorth>I don’t see anyone ever achieving that tbh
12:16<andythenorth>nobody has wanted to so far
12:17<andythenorth>seems better to just stick with ROADTYPE_ROAD and ROADTYPE_TRAM as they exist
12:18<Eddi|zuHause>so then what's the difference between tram subtypes?
12:19<Eddi|zuHause>and why bother adding tram subtypes if you can't make them incompatible?
12:19*andythenorth wonders about ROADTYPE_SUBWAY now
12:19<andythenorth>doesn’t need drawing
12:19<andythenorth>nothing to patch in the drawing functions...
12:20<Wolf01>I have that feeling like "I should offer my help"
12:20<Eddi|zuHause>you probably should cast that subway thought aside very quickly
12:20<Eddi|zuHause>"subway" should simply be a tram built underground
12:20<andythenorth>if I leave RoadTypes untouched, then it’s plausible that $someone can come along and add more types in future
12:21*andythenorth wonders if that can be done whilst still eliminating the 2 road/tram bits
12:21<Eddi|zuHause>the point was that you don't think about what types to add, but the newgrf does
12:21<sim-al2>I don't know if roads can hide vehicles somehow, but subway probably wouldn't work if you can't
12:21<andythenorth>just don’t draw them :)
12:22<sim-al2>Ok fair enough
12:22<Eddi|zuHause>sim-al2: there is a "fake subway" grf
12:22<Wolf01>I also want highways
12:22<andythenorth>‘want’ :P
12:22<andythenorth>my 6 year old wants ‘faster roads that cost more'
12:22<Eddi|zuHause>Wolf01: that's easy, just implement objects with state machines
12:23<andythenorth>I explained that speed is set by vehicle not road :P
12:23<andythenorth>he still wants them
12:23<Eddi|zuHause>andythenorth: i'd call that a "highway" :p
12:23<Wolf01>eddi: like I never tried
12:24<andythenorth>what do I rename compatible_roadtypes to if it contains both RoadTypes (first 8 bits) and subtypes (next 8 bits)
12:24<Eddi|zuHause>Wolf01: well, it's done in 3 easy steps: 1) implement state machines for airports. 2) extend state machines for articulated vehicles. 3) add state machines to road stations and objects
12:24<sim-al2>A roadtype with concrete barriers or guardrails might look close enough
12:24<Wolf01>"easy"
12:24<andythenorth>hmm I don’t know how to make the code non-specific to tram / road
12:25<andythenorth>Eddi|zuHause: all the tram code is specific to trams, how would newgrf redefine that?
12:25<andythenorth>or add it’s own movement code for new roadtypes?
12:25*andythenorth can’t see it
12:25<Eddi|zuHause>andythenorth: with a property flag "this behaves like a tram"
12:25<andythenorth>but that’s still tied to trams
12:25<Eddi|zuHause>andythenorth: look at how maglev is treated differently for rails (acceleration model)
12:26<andythenorth>yes, but how to add arbitrary types?
12:26<Eddi|zuHause>andythenorth: just reserve the bits, let the newgrf fill them with meaning
12:26<andythenorth>still has to resolve to road or tram though?
12:26*andythenorth is confused
12:27<Eddi|zuHause>yes. every newgrf-defined type will have a flag "behaves like tram" set or unset
12:27<@Alberth>think so, or you cannot have a road and a tram at a single tile
12:27<Eddi|zuHause>so every "roadtype == ROADTYPE_TRAM" will become "hasroadtypetramflagset(roadtype)"
12:29<andythenorth>that is more pleasing tbh
12:29-!-HerzogDeXtEr1 [~farci@i59F6C8F2.versanet.de] has joined #openttd
12:30<andythenorth>the current implementation has the overhead of unused extensibility, whilst not delivering much that can be built on for subtypes :)
12:32<frosch123>andythenorth: don't listen to eddi :)
12:33<frosch123>you made a spec with separate roadtypes and tramtypes
12:33<frosch123>don't start over :p
12:33<andythenorth>I am not sure if I have understood Eddi|zuHause or not :)
12:34<frosch123>nah, eddi is just adding bs
12:34<andythenorth>either he has a completely different idea, or he’s just filling in the gaps on how to implement subtypes
12:34<Eddi|zuHause>i likely have 3 different different ideas
12:34<andythenorth>all this roadtype == foo stuff in current code is…unhelpful :P
12:34<frosch123>i doubt he even followed the earlier discussion
12:34<Wolf01>why 2 specs for the same thing?
12:34-!-HerzogDeXtEr [~farci@i59F6AE4C.versanet.de] has quit [Ping timeout: 480 seconds]
12:35<Eddi|zuHause>but what i said about refactoring the == into a function call is independent from my ideas
12:35<andythenorth>yes
12:35-!-Clockworker_ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has quit [Read error: Connection reset by peer]
12:35<andythenorth>that seemed useful
12:35<andythenorth>anyway, I am stuck on GetTileTrackStatus_Road
12:35-!-Clockworker_ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has joined #openttd
12:35<andythenorth>I only have one parameter for sub_mode, and I don’t have the vehicle in scope in that function
12:35<andythenorth>so I can’t get the subtype from the vehicle, unless I stuff it into sub_mode
12:36<andythenorth>that means changing 11 callers, adding an ugly || to each
12:36<Eddi|zuHause>add a parameter?
12:36<andythenorth>or I change the meaning of compatible_roadtypes, and fix a few places that expect the old meaning
12:36<andythenorth>adding a parameter means changing 13 tile functions, almost totally unrelated to roads
12:36<Eddi|zuHause>i really don't know what that function is doing
12:37<andythenorth>^ this exposes that compatible_roadtypes is nearly useless for a subtype-based idea, and could be refactored away
12:38<andythenorth>I was hoping I could get rid of RoadTypes entirely, and the associated road / tram bits, and rely on the subtype bits
12:38*andythenorth can’t eat that elephant in one go :(
12:38<andythenorth>not good topic for My First C++ Patch
12:39<frosch123>andythenorth: i believe you want to replace RoadTypes with albert's RoadFoo
12:40<andythenorth>probably :)
12:40<andythenorth>but I just don’t understand :)
12:41*andythenorth keeps the link handy
12:44<@Alberth>you want how many road_subtypes and how many tram_subtypes?
12:45<@Alberth>do you also still need the road and tram bits?
12:46<andythenorth>the use of road and tram bits could be replaced by putting a subtype like 0xFF in to provide the same information
12:46<andythenorth>and patching the functions that look at those bits…
12:47<andythenorth>I think that 3 or 4 road_subtypes and 3 or 4 tram_subtypes is enough for any game
12:47<@Alberth>yep, so the latter question is "no" :)
12:47<andythenorth>experience suggests we’ll want to use 8 :P
12:47<andythenorth>"no"
12:47<andythenorth>:)
12:48<Samu>crap :( why are the OpenGFX river files split into 5000 or so :(
12:48<andythenorth>it’s easy to find 2 lots of 2 bits in the map currently
12:48<andythenorth>finding more bits without splitting them looked hard when I tried
12:49<andythenorth>and who needs more than 3 tramtypes in a game? :P
12:50<@Alberth>likely, every newgrf needs it own 3 tram types :p
12:50<Samu>I'm getting a headache :( looking at sprites and having 30~ windows open
12:50<andythenorth>if authors make types incompatible, that’s going to be hell routing through towns :D
12:51<Eddi|zuHause>didn't road tiles already have 2x4 bits for the road/tram type reserved?
12:52<Samu>why did you make the river sprites split into 105 files?
12:52<Eddi|zuHause>iirc the problem was always road/rail crossings, which were too crammed
12:52<Samu>makes it so much harder to follow
12:52-!-sla_ro|master [slamaster@89.136.141.100] has joined #openttd
12:52<andythenorth>problem was bridge ramps afaict
12:53<andythenorth>I didn’t spend very long on it, I had enough bits to prototype with
12:53<Eddi|zuHause>andythenorth: i always wanted a tram type that was faster, but cannot be combined with roads (in the same direction)
12:53<andythenorth>m4 looks free, but I think level crossings spank it
12:53<Eddi|zuHause>and road types that are faster, but cannot be used for town growth
12:54<andythenorth>m6 has 2 blocks of 2, which I’m using for road / tram
12:54<frosch123>Samu: you didn't decode it using grfcodec, did you :p
12:54<andythenorth>we can release the current 2 roadtype bits
12:56<Eddi|zuHause>m4 should also be free for level crossings, as far as i gather
12:56<andythenorth>Eddi|zuHause: your ideas w.r.t town growth etc sound like newgrf props or cbs
12:56<Eddi|zuHause>yes
12:56<Eddi|zuHause>props should be fine
12:57<andythenorth>doesn’t level crossing inherit rail, with 0-3 used?
12:57<Eddi|zuHause>no, level crossings are road tiles with some special bits
12:58<Eddi|zuHause>so "inherit" means "from road tiles"
12:58<andythenorth>so m4 might be free
12:59*andythenorth tests
13:02<Eddi|zuHause>i think level crossings had a problem which did not allow having tram without road
13:03<Eddi|zuHause>not sure if that was a map limitation or a graphical limitation
13:03<andythenorth>graphical
13:03<andythenorth>I tried to fix it :)
13:03<andythenorth>PBS overlays spanked it
13:03<andythenorth>also monorail :P
13:04<andythenorth>4 bits for tram subtype, 4 bits for road subtype
13:04<Eddi|zuHause>that sounds fine
13:04<andythenorth>that’s 15 types (assuming one is NONE or INVALID or so)
13:04<andythenorth>way more than is needed
13:04<andythenorth>said everyone who is wrong ever :P
13:05<Eddi|zuHause>i really wouldn't put "none" in there
13:05<Eddi|zuHause>even if that would free up a bit or two elsewhere
13:05<andythenorth>you’d keep the separate road / tram bits?
13:05<Eddi|zuHause>yes
13:06<@Alberth>http://devs.openttd.org/~alberth/rt.h
13:07*andythenorth reads :)
13:07<Samu>I am confused
13:08<@Alberth>close a few of the 30 windows?
13:08<Samu>i closed several Pain windows
13:08<Samu>Paint
13:08<Eddi|zuHause>seeing how people already complain about 16 railtypes not being enough?
13:09<@Alberth>well, if you give them 256, it's still not enough
13:09<@Alberth>they just use bits instead of sequences of values :)
13:10<@Alberth>only 8 features available :p
13:10<Samu>frosch123: where can i find the images with the spriteIDs numbered?
13:10<Samu>like a big spreadsheet of images
13:11*andythenorth must now read about enums again
13:11-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has quit [Quit: Snail]
13:11<@Alberth>you may want special functions for testing "invalid"
13:12<andythenorth>first I have to take baby steps :)
13:12<@Alberth>yeah, just saying
13:12<Samu>riverbank_temperate_ne.gimp.png riverbank_temperate_nw.gimp riverbank_temperate_se.gimp riverbank_temperate_sw.gimp
13:13<Samu>.gimp.png
13:13<@Alberth>after you wrote too many GetRoadType(rt) == ROAD_TYPE_INVALID :)
13:13<andythenorth>so given an instance of RoadFoo, I can now get RoadType or Subtype out?
13:13<@Alberth>that's the idea, you have function to query or set the road type
13:14<@Alberth>maybe not the roadtype bit, I don't remember exactly
13:14<andythenorth>so vehicles and tiles now instantiate RoadFoo when I want to work with those
13:14<andythenorth>ok
13:14<@Alberth>a single tramtype is a uint8 (in both my files iirc)
13:14<andythenorth>yes, in my patch also
13:15*andythenorth patches v->compatible_roadtypes to v->compatible_foos :P
13:15<@Alberth>so if you only want that, a uint8 will work
13:15<@Alberth>RoadTypes or RoadFoo is more about storing or transporting a combination, eg for a tile
13:15<andythenorth>yup
13:15<andythenorth>this saves me messing around shifting bits in and out of a uint32 or so?
13:16<@Alberth>it mostly saves you writing all the shifts, as the SB and GB functions handle it
13:16<andythenorth>great
13:16<@Alberth>the compute will still do it :p
13:16<@Alberth>*computer
13:17<@Alberth>sorry to take away your exercise :p
13:18<andythenorth>I’ll live with that
13:19<andythenorth>I can replace current RoadTypes with this? It has some magical template stuff under it
13:19<andythenorth>obviously I’d patch all things that consume it
13:19<@Alberth>the BEGIN/END are missing
13:20<@Alberth>so I suspect it will break, but don't know where
13:20<@Alberth>I removed all extras
13:21-!-smoke_fumus [~smoke_fum@188.35.176.90] has joined #openttd
13:21<andythenorth>yes, compiler hates it :D
13:21<@Alberth>so it will break while compiling, instead of doing something fuzzy without telling
13:23<Wolf01>mmmh, I get a bunch of errors in the road_type.h enums : expression must have a constant value
13:23<andythenorth> 'ROADTYPES_ALL'; did you mean 'ROADTYPE_END'?
13:23<andythenorth>road_func.h:72:21: error: use of undeclared identifier
13:23<andythenorth> 'ROADTYPES_ALL'; did you mean 'ROADTYPE_END'?
13:24<andythenorth>that’s an interesting function, gets the missing types
13:24<andythenorth>used during construction iirc
13:25<andythenorth>yup, used during removal of road or level crossing
13:25<@Alberth>could make a subtype "any valid"
13:25<andythenorth>return (RoadTypes)(ROADTYPES_ALL ^ r);
13:25<@Alberth>but that's sort of complicated too
13:25<andythenorth>^ very elegant but there’s probably another way
13:26<andythenorth>it comes to ‘does the tile have tram or road on it'
13:26<@Alberth>!HasRoadType(rt) !HasTramType(rt) ?
13:27<andythenorth>pretty much
13:27<andythenorth>it’s used to rebuild the tram or road on a tile when removing the other type
13:27-!-Arveen [~Arveen@ip-95-223-75-47.hsi16.unitymediagroup.de] has quit [Read error: Connection reset by peer]
13:27<andythenorth>all the construction code is fun
13:27<@Alberth>static inline bool HasTramType(rt) { return GetTramType(rt) != ROADTYPES_TRAM_INVALID; }
13:28<argoneus>anyone here has experience writing libraries?
13:28<argoneus>I just have a tiny offtopic question :<
13:28<andythenorth>only UI libraries :P
13:29<@Alberth>is it possible to ask offtopic things here? :p
13:29<argoneus>I'm not sure if I should try and separate my classes into "internal" and "what the external user can use"
13:29<argoneus>or just have them together
13:29<argoneus>as the external ones call the internal ones anyway
13:29<Eddi|zuHause>is it possible to ask metaquestions in here?
13:29<andythenorth>I think you just did that, definitionally :D
13:29<Eddi|zuHause>thats. the. joke.
13:30<andythenorth>orl?
13:30<@Alberth>only of the type "can anyone help me?"
13:30<andythenorth>argoneus: my experience is (1) provide public and private classes (2) people will read your source and abuse that
13:30<andythenorth>it’s pretty common in python libraries to have do_foo() and _do_foo() or bar and _bar or so
13:31<Eddi|zuHause>python doesn't really have "private"
13:31<andythenorth>“by convention"
13:31<andythenorth>anyone importing _foo had better know why
13:32<@Alberth>C++ and Java don't have private other than the compiler, at runtime you can do anything
13:32<argoneus>well, it's more like
13:32<argoneus>my internal code works with entities
13:32<andythenorth>maybe private was the wrong term :)
13:32<argoneus>and the user should be able to use entities as well
13:32-!-Compu [~Compu@2604:6000:120a:a003:3dc0:147a:954c:e006] has quit [Remote host closed the connection]
13:32<argoneus>and I'm not sure if I should put the Entity class in the public or internal package
13:32<argoneus>or folder, or whatever
13:33-!-Compu [~Compu@2604:6000:120a:a003:7088:d79e:b54f:6c15] has joined #openttd
13:33<argoneus>or have two of them, and one of them just calls the other
13:33<@Alberth>so how can I have an entity? only by Entity * ?
13:33<argoneus>yeah
13:33<argoneus>and it has methods
13:33<Eddi|zuHause>making them all public should be easier
13:33<Eddi|zuHause>don't add layers of indirection just for having layers of indirection
13:33<argoneus>so make it public and let the lib users figure out how to use it?
13:34<@Alberth>Entity e; has great benefits in not leaking etc
13:34<argoneus>without trying to hide things for no reason
13:34<Eddi|zuHause>yes. just document it properly what the use conditions are
13:34<argoneus>I see, thanks
13:34-!-sim-al2 is now known as Guest10234
13:34-!-sim-al2 [~sim-al2@108-221-157-231.lightspeed.mmphtn.sbcglobal.net] has joined #openttd
13:35<Eddi|zuHause>just make things private that you have a clear reason to be private. otherwise people will just try to get around your arbitrary limitations
13:35<argoneus>right
13:35<@Alberth>don't make it more complicated than it has to be
13:36<andythenorth>just declare major version change at v2 :)
13:36<andythenorth>and break backwards compatibility
13:36<andythenorth>whatever you got wrong, you can change, and get wrong in new ways
13:36<argoneus>tfw you study software engineering but you never learn how to actually engineer programs
13:36<argoneus>thanks uni
13:37<@Alberth>you can't learn that, really
13:37<andythenorth>only by doing, over a long time
13:37<andythenorth>and then you die
13:37<Eddi|zuHause>you can only learn that by doing an actual project
13:37<argoneus>I suppose that's true
13:37<@Alberth>it needs a bigger amount of code than you can handle in a course
13:37<argoneus>even in a large project with many experienced people
13:37<argoneus>they refactor all the time, right
13:37<andythenorth>nope
13:38<argoneus>o-oh
13:38-!-Guest10234 [~sim-al2@108-221-157-231.lightspeed.mmphtn.sbcglobal.net] has quit [Ping timeout: 480 seconds]
13:38<Eddi|zuHause>"usually" it's "we *should* refactor that, but time-constraints..."
13:38<argoneus>well, actually
13:38<@Alberth>they likely *should* refactor a lot
13:38<argoneus>from my experience at a company
13:38-!-Clockworker_ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has quit [Read error: Connection reset by peer]
13:38<argoneus>it's usually "we should change this one method"
13:38<andythenorth>or “that works, and we don’t have sufficient tests, don’t touch it"
13:38-!-Clockworker_ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has joined #openttd
13:38<argoneus>"time to write up a report about why and how and have it reviewed"
13:38<argoneus>"then two other engineers have to review the code where I change three lines"
13:38<argoneus>"then we need to run all the tests again"
13:38<argoneus>hnng
13:39<andythenorth>yup
13:39<Eddi|zuHause>sure way to build up loads of technical debt until it all falls apart
13:39<andythenorth>that’s like positing world economy is going to fail due to debt
13:39<Eddi|zuHause>working against a bureaucracy is hard
13:39<andythenorth>which o/c many people are worried about
13:39<andythenorth>also, Has OpenTTD 1.6.0 Been Official Released
13:39<andythenorth>?
13:39<Eddi|zuHause>yes
13:40<argoneus>that's kind of depressing
13:40<Eddi|zuHause>see topic
13:40<argoneus>it almost makes me want to work as a web developer at a startup
13:40<argoneus>at least no hard bureaucracy there, just fun new tech
13:40<argoneus>(or is it fun)
13:40<Eddi|zuHause>that sounds unhealthy :p
13:40<andythenorth>and that, ladies and gentlemen, is where the debt originates :D
13:41<argoneus>well, what kind of software job do you think is the most fun?
13:41<argoneus>fun meaning
13:41<argoneus>you work with cool technologies and don't spend 10 years on the same project
13:41<Eddi|zuHause>job is not supposed to be "fun". hobby is for "fun"
13:41<andythenorth>Eddi|zuHause: scandalous :)
13:42<argoneus>Eddi|zuHause: I'd kind of like to disagree
13:42<Eddi|zuHause>job isn't supposed to be "miserable" either
13:42<argoneus>traditionally people gave others jobs because they didn't want to do it themselves
13:42<argoneus>but in programming it's more "we should split it" than "do my dirty work"
13:42<argoneus>no?
13:42<andythenorth>http://www.bbc.co.uk/news/technology-35940300
13:42<andythenorth>"My advice to young people is always this - find something you enjoy doing so much that you'd be willing to do it for nothing… and you'll never work a day in your life."
13:43<Eddi|zuHause>yeah. that's what i did, and i get paid like i never worked a day in my life
13:43<argoneus>heh
13:44<Samu># sprites/png/terrain/rivercorner_Temperate_n.gimp.png - where are these files?
13:45<Samu>north,east,south,west
13:45<Samu>it's not in the folder it mentions
13:46*andythenorth back to trying to make this patch compile :)
13:46<Samu>i can't code without visualizing the end result :( i wouldn't even know if I am failing
13:47<Samu>i'm stuck, can't draw the rivercorners
13:48<@Alberth>they don't have to look like proper corners
13:48<@Alberth>you only need to differentiate whether you have the right sprite at the screen
13:49<@Alberth>once the programming is done, a graphics artist can make proper sprites, and use your code to see how it looks
13:49<Samu>poor guy
13:50<Samu>it's probably gonna look bad
13:50<Samu>i don't even know if it would look correct
13:50<andythenorth>doesn’t matter yet
13:50*andythenorth will try to avoid getting that job again though :)
13:51<Samu>how would I know if I position the rivercorner sprites in the correct manner, without rivercorners:(
13:52<Eddi|zuHause>so, i should be reinstalling my system from scratch...
13:53<@Alberth>you don't, that's why sprites have offsets
13:53<Eddi|zuHause>just thinking about whether i should also do a clean home directory
13:53<Samu>i better show you what I coded so far, because I'm not getting what you're telling me
13:53<@Alberth>that's pretty simple, just make a 2nd /home/eddi directory while installing
13:54<@Alberth>then afterwards move things from old home to new
13:54<Eddi|zuHause>my current /home is a fairly small partition, need to clean things out anyway
13:54<Eddi|zuHause>big things like wine prefixes are already elsewhere anyway
13:55<Eddi|zuHause>which are also a mess crufted up over 10 years
13:57<Samu>https://paste.openttdcoop.org/p1rsgdcxb
13:58<Samu>i've added lines 102 to 105
13:58<Samu>and
13:59<Samu>lines from 30 to 49 were modified
13:59<andythenorth>Alberth: think I need to patch GetRoadTypes to look at different bits?
13:59<andythenorth>L166 in road_map.h
13:59<Samu>didn't start the corners yet
14:00<Samu>i still don't quite get the offsets
14:01<Samu>and still didn't finish the edges either
14:01<Samu>but i dont know if I'm editing the correct things
14:02<Samu>in short, i have no idea what I'm doing if I can't observe the results immediately ;(
14:12<Samu>uhm any idea
14:12<andythenorth>hmm HasTileRoadType already exists
14:12<andythenorth>HasTramType and HasRoadType seem to overlap that
14:14<@Alberth>andythenorth: road_map.h is about storing the numbers in the map array
14:14<andythenorth>yes
14:14<andythenorth>so that gets the types on the tile
14:15<andythenorth>but it’s returning an instance of RoadTypes (I think)
14:15<@Alberth>Samu: either print the relevant numbers so you can reconstruct, or make graphics and paint those at the screen
14:15<Eddi|zuHause>andythenorth: one is for all tiles, and one is specifically for road tiles?
14:16<andythenorth>I have been googling to understand this foo = (enumtype) syntax
14:16<andythenorth>but can’t find anything
14:16<Eddi|zuHause>that's a typecast
14:16<andythenorth>e.g. return (RoadTypes)GB(_me[t].m7, 6, 2)
14:16<@Alberth>yes, bits are one-to-one copied to the map in general (as much as possible)
14:16<Eddi|zuHause>a typecast is "interpret this random stream of bits as a certain type"
14:16<andythenorth>that gets me a RoadTypes instance masked by the pattern of those bits?
14:16<@Alberth>GN () returns an uint, and you need an enum type
14:17<@Alberth>(X)foo says to the compiler, "I want you to consider foo as a thing of type X"
14:17<@Alberth>where I have to make sure the bits match
14:18*andythenorth googles some more
14:18<Samu>https://paste.openttdcoop.org/pjv9sddlf
14:18<@Alberth>return GN(...); will fail with a type error "uint is not an enum type"
14:19<@Alberth>Samu: is it correct?
14:19<Samu>I'm not sure
14:20<Samu>SE, SW, NE, NW are correct
14:20<@Alberth>find out, would be my suggestion :)
14:20<Samu>the others, i dont know
14:20<Samu>SLAT, is also correct
14:20<Samu>FLAT*
14:21<frosch123>apparently all mainboards have on-board graphic these days
14:22<andythenorth>aren’t they integrated with the Northbridge, or other outdated terms I don’t recall?
14:22*andythenorth remembers some big hoo ha about this 10 years ago :)
14:24<frosch123>what's the point of mainboards having on-board graphics, when they are targeted to support multi gpu?
14:24-!-Wormnest_ [~Wormnest@s5596abd2.adsl.online.nl] has joined #openttd
14:25<Eddi|zuHause>you can multi the onboard gpu with another one
14:25<frosch123>well, the on-board gpu is limited to 4kx2k@24hz :)
14:25*andythenorth thought it pretty much came for free, due to way commodity chips are bought and sold
14:25<frosch123>so, obviously no :)
14:25<andythenorth>do you still get an onboard speaker? o_O
14:26<andythenorth>it is years since I saw the inside of a computer, except laptops
14:26<frosch123>no idea :)
14:26<andythenorth>‘beep’
14:26<frosch123>whenever i look for pc hardware, mainboard is the most puzzling thing
14:26<Eddi|zuHause>there's still a speaker port on most boards, sometimes there's also a speaker attached
14:27<Eddi|zuHause>it's not like a piezo-element is the most expensive thing ever
14:28<Eddi|zuHause>i mean, they put these in EVERYTHING
14:28<Eddi|zuHause>like water heaters
14:28<andythenorth>Alberth: 3 bits per tram and road in your RoadTypes enum? o_O
14:28*andythenorth is adjusting the map stuff
14:28<@Alberth>someone told me 8 types was enough :p
14:28<@Alberth>you can easily have more :p
14:28<Eddi|zuHause>it's ready->it beeps. you press a button->it beeps. you put the can in->it beeps
14:29<andythenorth>I just need to pick the right number of bits out of m4 :)
14:29<Eddi|zuHause>i think 4 bits is the most natural
14:29<andythenorth>agreed
14:31<Eddi|zuHause>great, i have 2-5 year old directories called things like "blah", "blah~", "blah~~", "blah~~~"
14:31<Eddi|zuHause>which one of those do i want to keep?
14:31<andythenorth>I have ~tidy and it contains ~tidy
14:31<@Alberth>rm -rf blah*
14:31-!-Wormnest [~Wormnest@s5596abd2.adsl.online.nl] has quit [Ping timeout: 480 seconds]
14:31<Eddi|zuHause>do i ever remember why i made these backup copies?
14:31<@Alberth>unlikely, so nothing will be lost :p
14:31<andythenorth>you’ve cloned your entire HD right? Before doing this?
14:31<Eddi|zuHause>usually, when i rm those, 2 days later i remember why i needed them
14:32<andythenorth>clone, put clone in cupboard, lay waste
14:32<andythenorth>scorched earth
14:32<@Alberth>mv blah delete_after_20160405
14:32<Eddi|zuHause>andythenorth: in all likelyhood, all those ~~~ are the clones of some previous undertaking :p
14:34<Eddi|zuHause>blah... i tried to move blah~* into blah, and it complained that there's already another set of blah~* in there :p
14:34<@Alberth> http://devs.openttd.org/~alberth/rt.h updated for 4 bits
14:35<@Alberth>automagic backup generation is evil :p
14:35<@Alberth>if you want to revert, use a VCS
14:35<andythenorth>Alberth: thanks :)
14:35*andythenorth wonders
14:36<andythenorth>can I cast a RoadTypes enum back to a bit pattern? o_O
14:36<andythenorth>or do I just pick them out with GB
14:36<@Alberth>GB is the safer way
14:37<@Alberth>but RoadTypes enum is just the bit pattern, only the compiler differentiates between the types
14:37<Eddi|zuHause>i should at some point make an alias for "move a to b/ and then symlink b/a to a"
14:37<@Alberth>why do you do that?
14:38<Eddi|zuHause>for keeping track what i moved to which disk
14:38<Eddi|zuHause>so ~ is a collection of symlinks to stuff that i moved away from ~ for being too large
14:38<andythenorth>so ROADTYPES_INVALID_ROAD = all 4 bits set?
14:39<@Alberth>yes
14:39<@Alberth>1+2+4+8==15==0xF
14:40<@Alberth>assuming you like starting with roadtype 0 :p
14:40<@Alberth>also openttd uses all 1 to express invalid, everywehere
14:41<Eddi|zuHause>except where it represents other stuff, like OWNER_TOWN :p
14:41<@Alberth>you need exceptions to all rules :p
14:42<Eddi|zuHause>now... should i attempt to find a DVD to burn, or should i try booting from usb stick?
14:44<Samu>i don't understand what I have to do... the more I look, the less I knwo
14:46<Eddi|zuHause>you find weird and strange things tucked away in directories you don't ever visit...
14:47<@Alberth>it's never a brilliant solution to a problem that you have :p
14:49<Eddi|zuHause>also, loads of chained symlinks that point to disks that are not there anymore :p
14:52<LordAro>guize
14:52<LordAro>hi
14:52<LordAro>you forgot the title game - https://www.reddit.com/r/openttd/comments/4d5pla/only_me_that_thinks_its_a_poor_choice_60_trees/
14:54<Eddi|zuHause>i suppose nobody had the energy to run a competition
14:56<Samu>why is the game computing the correct corner height for some river tiles and not the others? what am I missing? I don't follow how the code decides this
15:10*andythenorth bbl
15:10-!-andythenorth [~Andy@host86-166-179-224.range86-166.btcentralplus.com] has quit [Quit: andythenorth]
15:15-!-Myhorta [~Myhorta@00018fad.user.oftc.net] has joined #openttd
15:16<Eddi|zuHause>i'm probably back... never :p
15:17-!-Eddi|zuHause [~johekr@p5B0DAE69.dip0.t-ipconnect.de] has quit []
15:32-!-Wili [~textual@89.24.156.114] has joined #openttd
15:32<Wili>Hi is it possible to change autorenew settings during game? (with specific savegame? - miltuplayer game)
15:33<frosch123>autorenew settings are company specific
15:33<frosch123>every company can set their own values
15:33<Wili>I've changed it already in conf file of server
15:33<Wili>oh really?
15:33<frosch123>you need to change them in game
15:33<frosch123>config file only affects new games
15:33<Wili>I mean change old car for the same one
15:34<@Alberth>you need to change it in-game
15:35-!-glx [~glx@000128ec.user.oftc.net] has joined #openttd
15:35-!-mode/#openttd [+v glx] by ChanServ
15:35<Wili>in the client? I will try it :)
15:36<frosch123>changing it affects the company you have joined
15:36<Wili>so I have enabled change odl vehicle (now I have some red one) so I will send them to the garage and they will be swaped?
15:39<Wili>I am reading here that these settiings will affect save games and onle new games
15:39<frosch123>you are probably in main menu
15:39<Wili>correct
15:39<frosch123>you need to join the game and the company
15:39<Wili>I am
15:39<frosch123>and then change them *in game*
15:39<Wili>but idk where is the settings
15:39<frosch123>in the toolbar
15:39<Wili>AAAAH
15:40<Wili>here
15:40<Wili>thanks!
15:47<Wili>Is it possible to upgrade normal trains to monorail?
15:48<@Alberth>nope
15:48<Wili>th
15:48<Wili>x
15:48<@Alberth>my strategy is to build new connections instead of simple/dumb replace
15:48<Wili>understand
15:48<@Alberth>much more fun :)
15:49<@Alberth>ie build a faster network "on top" of the existing network
15:49<@Alberth>using the existing network as local transport
15:50<@Alberth>if you have cargo-dist switched on, prepare for chaos :p
15:50<Wili>:D
15:51<@Alberth>another option is not to use the default train set, but get a newgrf instead, that doesn't force you into upgrading
15:52<@Alberth>but you need to start a new game for that
15:53-!-efess [~Efess@c-24-61-64-170.hsd1.ct.comcast.net] has quit [Ping timeout: 480 seconds]
16:16-!-drac_boy [~oftc-webi@modemcable027.125-163-184.mc.videotron.ca] has joined #openttd
16:16<drac_boy>hi
16:18-!-Hiddenfunstuff [~Geth@y32.ip1.anvianet.fi] has quit [Quit: HydraIRC -> http://www.hydrairc.com <- Organize your IRC]
16:19<drac_boy>anyone want trade -10C for maybe like 6C or better? :p
16:20<frosch123>i just traded 30C for 15C
16:20-!-andythenorth [~Andy@cpc87201-aztw31-2-0-cust156.18-1.cable.virginm.net] has joined #openttd
16:24<drac_boy>heh, weird weather for april here so far anyhow :-s
16:29<Wili>whats "C"? :)
16:30<frosch123>°C
16:31-!-Wormnest__ [~Wormnest@s5596abd2.adsl.online.nl] has joined #openttd
16:32-!-Wili [~textual@89.24.156.114] has quit [Quit: Textual IRC Client: www.textualapp.com]
16:32*drac_boy also wishes there was somewhere to find a decent photo of station trackworks too
16:35-!-Clockworker__ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has joined #openttd
16:35-!-andythenorth [~Andy@cpc87201-aztw31-2-0-cust156.18-1.cable.virginm.net] has left #openttd []
16:37-!-Wormnest_ [~Wormnest@s5596abd2.adsl.online.nl] has quit [Ping timeout: 480 seconds]
16:40-!-frosch123 [~frosch@00013ce7.user.oftc.net] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
16:42-!-Clockworker_ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 480 seconds]
16:47-!-_johannes [~johannes@port-92-203-187-62.dynamic.qsc.de] has quit [Ping timeout: 480 seconds]
16:51-!-Stimrol [~Stimrol@46.239.220.130] has quit [Remote host closed the connection]
16:52-!-Stimrol [~Stimrol@46.239.220.130] has joined #openttd
16:55-!-Alberth [~alberth@2001:981:c6c5:1:be5f:f4ff:feac:e11] has left #openttd []
16:58-!-Samu [~oftc-webi@po-217-129-255-23.netvisao.pt] has quit [Quit: Page closed]
17:17<drac_boy>going make some supper now :->
17:17-!-drac_boy [~oftc-webi@modemcable027.125-163-184.mc.videotron.ca] has left #openttd []
17:19-!-sla_ro|master [slamaster@89.136.141.100] has quit []
17:32-!-Biolunar [Biolunar@x4d0869fd.dyn.telefonica.de] has joined #openttd
17:45-!-efess [~Efess@c-24-61-64-170.hsd1.ct.comcast.net] has joined #openttd
17:48-!-Birko [~Miranda@chello085216195217.chello.sk] has joined #openttd
17:50<Birko>Hi everyone, I have a station with bus and train under one name. How can I get location of rail station if the bus station is base station of whole station. Function AIBaseStation.GetLocation() is only for base station. Thanks
17:51-!-Samu [~oftc-webi@po-217-129-255-23.netvisao.pt] has joined #openttd
17:51<Samu>hello
17:55-!-gelignite [~gelignite@x4e3033df.dyn.telefonica.de] has quit [Quit: http://bit.ly/1kso8Ta]
18:06-!-Nathan1852 [~Nathan185@HSI-KBW-134-3-201-222.hsi14.kabel-badenwuerttemberg.de] has quit [Ping timeout: 480 seconds]
18:12-!-sim-al2 is now known as Guest10253
18:12-!-sim-al2 [~sim-al2@108-221-157-231.lightspeed.mmphtn.sbcglobal.net] has joined #openttd
18:14<Wolf01>'night
18:14-!-Wolf01 [~wolf01@0001288e.user.oftc.net] has quit [Quit: Once again the world is quick to bury me.]
18:15-!-Progman [~progman@p57A1819B.dip0.t-ipconnect.de] has quit [Remote host closed the connection]
18:15-!-Guest10253 [~sim-al2@108-221-157-231.lightspeed.mmphtn.sbcglobal.net] has quit [Ping timeout: 480 seconds]
18:18<Samu>poor supermod designed the sprites and now i don't know what to do with them
18:20<Samu>only now I realised waterfall waves going down canal slopes
18:20<Samu>rivers don't have this :8
18:22<Samu>whoever designed canals should come back to help me
18:25-!-Wormnest__ [~Wormnest@s5596abd2.adsl.online.nl] has quit [Quit: Leaving]
18:33<Samu>is there a bug with full animation?
18:33<Samu>or is it just me
18:34<Samu>when I move mouse cursor around, the tiles pause their animation momentaneously
18:34<Samu>if i stop moving mouse cursor, the tiles start animating
18:40<Samu>seems to happen only during scenario editor
18:54-!-Eddi|zuHause [~johekr@p5B0DAE69.dip0.t-ipconnect.de] has joined #openttd
18:55<Eddi|zuHause>so... *something* happened...
18:55<Eddi|zuHause>and it got the kezboard lazout wrong...
19:05<Eddi|zuHause>man... everzthing is different... it|s terrible
19:05<Eddi|zuHause>and i don|t get whz the kezboard is wrong...
19:06<Eddi|zuHause>it's better now...
19:23-!-Myhorta [~Myhorta@00018fad.user.oftc.net] has quit [Ping timeout: 480 seconds]
19:33-!-FLHerne [~flh@dsl-217-155-24-22.zen.co.uk] has quit [Quit: There's a real world out here!]
20:03-!-Eddi|zuHause [~johekr@p5B0DAE69.dip0.t-ipconnect.de] has quit []
20:13-!-Eddi|zuHause [~johekr@p5B0DAE69.dip0.t-ipconnect.de] has joined #openttd
20:14<Eddi|zuHause>well, i think i broke it :/
20:23-!-Samu [~oftc-webi@po-217-129-255-23.netvisao.pt] has quit [Quit: Page closed]
20:40-!-Quatroking [~Quatrokin@ip226-139-211-87.adsl2.static.versatel.nl] has quit [Read error: Connection reset by peer]
21:30-!-HerzogDeXtEr1 [~farci@i59F6C8F2.versanet.de] has quit [Read error: Connection reset by peer]
21:37-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has joined #openttd
22:00-!-Snail [~jacopocol@172-81-159-131.static-ip.telepacific.net] has quit [Quit: Snail]
22:04-!-Xal [~xal@S0106881fa12987ab.vw.shawcable.net] has joined #openttd
22:26-!-smoke_fumus [~smoke_fum@188.35.176.90] has quit [Ping timeout: 480 seconds]
22:33-!-Biolunar_ [Biolunar@x4d088ae0.dyn.telefonica.de] has joined #openttd
22:40-!-Biolunar [Biolunar@x4d0869fd.dyn.telefonica.de] has quit [Ping timeout: 480 seconds]
22:43-!-Xal [~xal@S0106881fa12987ab.vw.shawcable.net] has quit [Quit: WeeChat 1.4]
22:48-!-Supercheese [~Superchee@cpe-76-178-136-186.natnow.res.rr.com] has joined #openttd
23:27-!-glx [~glx@000128ec.user.oftc.net] has quit [Quit: Bye]
23:38-!-Clockworker__ [~Clockwork@189-10-213-131.paemt701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 480 seconds]
23:44-!-Clockworker [Clockworke@200.96.113.52] has joined #openttd
23:46-!-liq3 [liq3@CPE-120-147-195-191.gdiv2.lon.bigpond.net.au] has quit []
---Logclosed Mon Apr 04 00:00:12 2016