IRC logs for #openttd on OFTC at 2022-09-19
โด go to previous day
00:13:39 *** Soni has quit IRC (Ping timeout: 480 seconds)
00:46:55 *** Wormnest has joined #openttd
01:39:37 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
01:43:40 *** Wormnest has joined #openttd
01:54:04 *** wallabra has quit IRC (Ping timeout: 480 seconds)
02:29:30 *** wallabra has joined #openttd
02:57:37 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:39:38 *** D-HUND is now known as debdog
06:59:37 *** WormnestAndroid has quit IRC (Remote host closed the connection)
07:51:43 *** supermop_toil has quit IRC (Read error: Connection reset by peer)
08:03:35 <andythenorth> spacing out FIRS cargo payment rates is really boring
08:03:46 <andythenorth> but if I don't I get bug reports about the payment chart in game
08:04:57 <andythenorth> how hard can it be? 107 cargos to fit in range 85-182
08:05:19 <andythenorth> but the values are constant, and when one moves another 100 might have to have their values changed ๐ฆ
08:06:01 <andythenorth> maybe I could change them to be some sort of bubble-up system
09:15:47 *** Speedy` has quit IRC (Quit: Changing server)
09:19:14 *** Speedy` has joined #openttd
10:01:48 *** TheDumGamer has joined #openttd
10:01:48 <TheDumGamer> petern: Wait is that the button that only shows the top station bar
10:32:11 <dP> it seems like freaking mingw decided to support neither I64u nor llu
10:37:13 <dP> though I don't get why it doesn't complaint about I64d
10:38:39 <dP> yeah, that stupid thing wants I64llu ๐
10:45:22 *** pickpacket has joined #openttd
10:45:56 <pickpacket> I started playing OpenTTD last week, and I am *hooked* :D
10:47:59 <pickpacket> In one of my games some vehicles have become stuck, and I don't know how to get the out of there. Two trams have hit a dead end that I can't resolve while they're at it, and one train has broken down so badly it won't start up again
11:08:59 <FLHerne> pickpacket: "broken down so badly it won't start up again" shouldn't be possible
11:09:40 <FLHerne> perhaps you've accidentally changed the track type to something that won't power it?
11:11:00 <FLHerne> I think the trams should magically turn in that case if you hit the 'reverse' button?
11:12:18 <FLHerne> no, just tried it, it does seem totally stuck :-/
11:14:33 <FLHerne> hm, with more testing, it *does* turn if the next tile is something you physically can't remove (map edge, transmitter, industry)
11:14:59 <FLHerne> so it should be fixable, just possibly expensive if the missing tile is in the ocean or whatever
11:52:21 <petern> TheDumGamer: Nah, it's the NewGRF debug button.
12:27:51 * andythenorth ventueres into nml stations
12:30:44 <dP> DorpsGek: oh, this time it stuck ๐
12:30:49 <pickpacket> FLHerne: it's a diesel train on an ordinary track :I
12:31:10 <pickpacket> FLHerne: could it be something with the version I'm using? 10.0.9
12:31:42 <FLHerne> 10.0.9 isn't a version that exists :p
12:32:05 <pickpacket> FLHerne: regarding the trams the next tile is forrest :( They've been standing there for years now
12:32:26 <pickpacket> uhm... maybe it's 10.9 or something then. I can't check until I get home
12:33:37 <pickpacket> the train equally hasn't moved for a few years. Just stands there. I had to build another track where other trains can go around it
12:36:34 <andythenorth> magic bulldoze the forest and extend the tram track
12:36:43 <andythenorth> then money cheat and rebuild the forest
12:37:03 <andythenorth> stuck trains, it can happen when it's looking for a path and can't find it
12:37:19 <andythenorth> try reversing it, clicking ignore signals, or sending it to depot
12:37:39 <FLHerne> still can't reproduce, if there's any industry in front of the tile including a forest the trams can turn at the end
12:37:44 <andythenorth> it's very rare to have an unfixable stuck train, the game guards against it
12:37:54 <FLHerne> perhaps it's an older version but 10.9 doesn't exist either so no idea
12:46:27 <andythenorth> lol, how the hell do I build track station tiles with nml ๐
12:46:48 <andythenorth> I have set non_traversable_tiles to 0
12:47:07 <andythenorth> ok figured it out
12:47:16 <andythenorth> helps if I build the correct orientation to the track ๐
13:19:14 <andythenorth> how do stations get a ground tile below the tracks?
13:19:22 <andythenorth> or do they have to leave a cutout?
13:51:51 *** WormnestAndroid has joined #openttd
14:16:54 <pickpacket> FLHerne: I suck at version numbers ๐คช It's 1.10.3
14:17:39 <pickpacket> andythenorth: the train had a path and everything. It's just not moving no matter what I do :/
14:19:29 <dP> pickpacket: you sure it's not just stopped?
14:19:57 <pickpacket> dP: Not entirely sure. But why would it just stop?
14:20:18 <dP> you may have accidentally stopped it with a hotkey or smth
14:21:25 <dP> anyway, if you click on the train it should say at the bottom of the window what it is doing
14:24:33 <andythenorth> what happens if you start it? ๐
14:24:53 <pickpacket> I set up a train depot behind it now and pressed "Send train to depot". It actually reversed direction, but it still doesn't move
14:25:05 <andythenorth> click on stopped
14:25:59 *** supermop_toil has joined #openttd
14:28:41 <pickpacket> Hey!!! I got the trams going too!
14:28:53 <dP> hm, I just thought it may be a better idea to add start/stop for a "missing" button in the vehicle window
14:29:16 <dP> it's really not obvious that status bar is also clickable
14:29:42 <pickpacket> I exploded the woods and then tried building a track there. Even though the woods look to still be there it worked!
14:30:00 <supermop_toil> how about the button randomly starts, stops, honks, or ignores signal
14:31:50 *** matematysek has joined #openttd
14:31:50 <matematysek> supermop_toil: lol no!
14:32:41 <dP> supermop_toil: why "or"? starts, honks and ignores at the same time :p
14:32:49 <supermop_toil> 1/256 chance of just exploding on the spot
14:33:04 <FLHerne> pickpacket: probably just normal trees then
14:33:19 <FLHerne> the visibility toggles on the ctrl+x menubar help
14:33:32 <andythenorth> replace breakdowns
14:33:44 <supermop_toil> andythenorth: with honking?
14:33:44 <andythenorth> also if a train does breakdown
14:33:53 <andythenorth> the button will give a 1/12 chance of fixing it
14:34:03 <supermop_toil> ooh wrench button
14:34:15 <andythenorth> also it can be used for over-speed on hills
14:35:54 <supermop_toil> starting work week by listening to elliot smith was questionable choice for motivation
15:24:19 <andythenorth> maybe stations in FIRS is unwise
15:25:29 <dP> oh crap, I remembered why I didn't make configurable modifiers before
15:25:35 <dP> need to fix all the damn tooltips
15:26:13 <petern> You probably want a string code or two.
15:26:25 <dP> but what do I even put there if modifier is not assigned?
15:26:38 <dP> like Ctrl-clicking -> Unassigned-clicking?
15:27:10 <pickpacket> FLHerne: nah, it was "proper" woods
15:27:18 <pickpacket> but it worked, so I'm happy!
15:27:37 <petern> Disallow not having it assigned?
15:29:13 <dP> well, with 3 settings and 3 options that would be "fun" to change xd
15:30:07 <dP> for 3 keys I can do 1 setting 6 options ofc but what if someone wants to add other modifiers like winkey can probably work as one
15:30:58 <dP> any key can work actually with the right keyboard
15:34:04 <dP> maybe just `{PUSH_COLOR}{RED}<unassigned>{POP_COLOR}-clicking`?
15:34:51 <dP> it won't be shown on default settings anyway ;p
15:42:22 <dP> oh, and there are already incorrect tooltips
15:42:30 <dP> "Switch the binding of company-internal and public chat to <ENTER> resp. <Ctrl+ENTER>"
15:43:55 <dP> why is that even a separate setting though
15:45:50 <dP> so there is a hotkey for chat and hotkey for teamchat, but with that setting chat hotkey opens teamchat
15:51:07 <andythenorth> Specific stations in FIRS.
15:51:07 <andythenorth> - can adjust station colour to suit industry
15:51:07 <andythenorth> - can make station only available if industry is available
15:51:07 <andythenorth> - changes to industry and station will be in same grf, same release
15:51:32 <andythenorth> - can't reuse any magic station code from CHIPS
15:51:32 <andythenorth> - it's possibly weird having stations in industry grf
15:55:33 <dP> hm, should I make a string code for each modifier or make it a parameter...
15:56:26 <andythenorth> hmm I could cross-link my compiles via some library
15:58:06 <Brickblock1> what stops you from making the stations separate from firs but compile at the same time?
15:58:23 <andythenorth> "an abundance of caution" ๐
15:58:38 <andythenorth> FIRS already compiles cargos, industries, objects, and a GS
15:59:07 <andythenorth> I could make CHIPS inside FIRS, and generate a separate grf
15:59:14 <andythenorth> but it will be an unpleasant codebase
15:59:46 <andythenorth> what I could do with is inter-grf communication ๐
15:59:59 <dP> rewrite everything with grf-py :P
16:00:24 <Rubidium> dP: is the modifier always the same? Or can the modifier differ per click?
16:01:00 <dP> Rubidium: wdym per click? I'm making modifier key configurable in the settings
16:01:00 <glx[d]> dP: string code seems the right way, then the actual modifier key will depend on the settings
16:02:10 <Rubidium> dP: that you can configure that for clicking on button X it's Ctrl, for button Y it's Alt and for button Z it's Shift or something similar. Instead of: it's always Ctrl, or always Alt, etc.
16:02:19 <glx[d]> internally CTRL is still CTRL
16:02:24 <dP> glx[d]: I mean it's a string code either way but I can make several for each like `{FN_MODIFIER}, {REMOVE_MODIFIER}, {ESTIMATE_MODIFIER}` or just `{MODIFIER_KEY}` and pass it as a parameter
16:03:23 <dP> Rubidium: yeah, that's what I did in #10006, now I'm trying to fix hotkeys
16:03:48 <andythenorth> what can grfs read from other grfs ๐
16:06:03 <glx[d]> `{CTRL_KEY}`, `{SHIFT_KEY}`, `{ALT_KEY}`, ... and on drawing the actual key is retrieved
16:07:32 <Rubidium> I think making it a parameter makes the changes you need to do a lot harder. You could consider {MODIFIER <subtype>} and inject two characters into the compiled string, though if the number of modifier sub types is small I'd just make separate string codes (like SMALL_FONT/BIG_FONT)
16:07:37 <dP> glx[d]: I intentionally renamed them for their function as it'll be utterly confusing to have Ctrl on Alt :p
16:08:38 <dP> yeah, making several codes is definitely simpler and it's probably not gonna be more than 3 anyway (fn, remove, estimate)
16:09:35 <dP> though eventually it will need some kind of general `{HOTKEY}` thing anyway
16:10:14 <andythenorth> ok stations go in the station grf ๐
16:10:22 <andythenorth> I'll read FIRS parameters for stuff
16:14:33 <andythenorth> lol multi-tile objects are a PITA
16:14:47 <andythenorth> having to provide one unified sprite, instead of just walking the tile layout ๐
16:14:48 *** HerzogDeXtEr has joined #openttd
16:15:13 <andythenorth> I have to recreate the ground tiles, ground tile overlay, buildings, and fences across n tiles
16:15:46 <andythenorth> if only the game new how to render tiles, imagine ๐
16:32:00 <petern> Just stick it in an ini file.
16:53:08 <frosch> i never looked up how gh pages work, so you may need client-side mime hacks to render it
16:54:01 <andythenorth> I can just clone the repo or something ๐
17:20:11 <andythenorth> I read the station spec today ๐
17:20:25 <andythenorth> docs are very good, but stations break my brain
17:20:35 <andythenorth> what do things like prepare_layout do? ๐
17:29:46 *** Wormnest has joined #openttd
17:33:16 <petern> Oops my cider ran out.
17:36:10 <glx[d]> andythenorth: prepare_layout is prepend to the spritegroup return
17:37:43 <glx[d]> there's a call to prepare_layout, then call to the internal fill_registers (generated by nmlc based on the layout list), then the spritegroup is returned
17:37:58 <petern> 0 litres is no good ๐ฆ
17:38:59 <glx[d]> basically in prepare_layout you fill the temp registers you use in the layout
17:40:22 <andythenorth> petern: imperial weights and measures?
17:40:31 <glx[d]> it's kinda similar to objects/industry where you fill the registers before branching to the layout, just station spec makes it harder
17:41:04 <andythenorth> I am glad you did this not me ๐
17:41:18 <andythenorth> grf stations make very little sense to me ๐
17:42:07 <glx[d]> with nml you have access to all the "powerful" options without needing to manage things by hand
17:42:40 <glx[d]> especially all the var10 stuff in layouts
17:45:14 * andythenorth needs to make CHIPS 3 eh
17:51:51 <andythenorth> time to make a branch I think
18:16:28 <pickpacket> what are some good NewGRFs for an earlier game start? Would be nice to have some trams around 1900, but I don't know which mod provides that
18:17:36 <andythenorth> 2CC, UKRS 2, NARS 2
18:18:15 <frosch> andythenorth: yeah, docs on prepare_layout still need expanding. but i got lost rambling about bounding boxes :p
18:18:49 <andythenorth> I will start making a proper station grf soon, I can add clarifications
18:19:03 <andythenorth> I got distracted trying to make stations inside FIRS, unwise ๐
18:19:50 <frosch> ah, so you going for stations inside horse now?
18:21:50 *** lobstarooo_ has joined #openttd
18:22:15 <andythenorth> train stations, road vehicles
18:23:35 <andythenorth> I should finish these FIRS objects I guess ๐
18:24:38 <andythenorth> need to figure out placement in selection UI
18:24:45 <andythenorth> multi-tile objects look bad
18:28:38 *** lobstarooo has quit IRC (Ping timeout: 480 seconds)
18:29:54 *** lobstarooo_ has quit IRC (Ping timeout: 480 seconds)
18:43:40 <pickpacket> andythenorth: I see that you made FISH. How early are the first ships available from that?
18:48:43 <andythenorth> pickpacket: not sure, can't remember ๐
18:48:57 <andythenorth> HEQS might give you industrial steam trams from about 1860 or so
18:53:34 <frosch> there is a sailing ship grf
18:54:54 <petern> Hmm, funky, enabling SVG font for all font sizes instead of just FS_NORMAL disables antialiasing of FS_NORMAL...
19:11:16 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
19:41:40 <andythenorth> uuf I need to write a tile sorter
19:45:03 *** luk3Z[m] has joined #openttd
19:55:22 <petern> Oh, also turns out the svg renderer is a bit crap and I just got lucky with my shapes :/
19:57:03 <luk3Z[m]> hello, so OTTD is alsoon matrix :D
19:57:07 <luk3Z[m]> * hello, so OTTD is also on matrix :D
19:57:29 <luk3Z[m]> * hello, so OTTD is also on the matrix :D
19:57:51 <luk3Z[m]> petern: Discor & matrix.org
19:59:26 <petern> OpenTTD isn't "on matrix", Matrix just lets you connect to the IRC channel we use.
19:59:50 <petern> At least, it does when it isn't busy having security issues or simply just breaking.
19:59:51 <luk3Z[m]> petern: so, it's bridged to IRC
20:00:47 <luk3Z[m]> * to IRC ? I dodn't know that but name of the admin saying by itself....
20:00:58 <luk3Z[m]> * to IRC ? I didn't know that but name of the admin saying by itself....
20:01:17 <luk3Z[m]> * to IRC ? I didn't know that but name of the admin saying it by itself....
20:10:38 <petern> Well, it's even switching to an 8bpp blitter. Hmm.
20:13:55 <andythenorth> hmm converting game x, y tile directions into 2D screen offsets ๐
20:14:09 <andythenorth> this is ... wrong
20:14:38 <andythenorth> this is also wrong
20:15:00 <pickpacket> Yes. But itโs an improvement!
20:15:11 <andythenorth> I think I might be able to solve this by shifting the origin x, y
20:15:14 <andythenorth> but that 's kind of cheating
20:15:43 <andythenorth> I wish the game would sort this element out, recreating OpenTTD in python is kind of lolz
20:16:51 <pickpacket> Are you making a rewrite of the game?
20:17:20 *** Kitrana1 has joined #openttd
20:17:59 <andythenorth> no, just doing grf objects
20:18:09 <andythenorth> but they require faking part of OpenTTD ๐
20:18:17 <andythenorth> and I can't be bothered to read the source
20:18:43 *** Kitrana2 has joined #openttd
20:19:08 <petern> You might just be doing it wrong ๐
20:20:25 <andythenorth> I should probably read OpenTTD src
20:20:37 <andythenorth> instead of guessing
20:21:12 *** Kitrana has quit IRC (Ping timeout: 480 seconds)
20:21:59 <petern> Well you shouldn't need to do that, the spec should be enough.
20:22:09 *** Kitrana has joined #openttd
20:23:02 <andythenorth> nml docs just say 'Graphics shown in the build menu'
20:23:11 <andythenorth> let's see what actual spec says
20:23:51 <andythenorth> action objects, `FF: purchase list`
20:24:05 <andythenorth> other object grfs just make one giant sprite
20:24:44 *** nielsm has quit IRC (Ping timeout: 480 seconds)
20:25:24 *** Kitrana1 has quit IRC (Ping timeout: 480 seconds)
20:25:34 <andythenorth> oh now we're cooking on gas ๐
20:25:38 <andythenorth> wrong, but predictably wrong
20:25:42 <andythenorth> by a constant value
20:25:48 <andythenorth> even I can fix that with maths
20:25:56 <petern> What sort of values are you putting in?
20:26:44 *** Kitrana2 has quit IRC (Ping timeout: 480 seconds)
20:27:03 <andythenorth> variations of 8 and 16 ๐
20:27:47 <petern> A sprite on the ground would be at 0,0,0
20:29:00 <andythenorth> I think I need to use both x and y size of the layout
20:29:05 <petern> Oh, Return to Monkey Island came out.
20:29:13 <andythenorth> it's confusing having game x and y, and screen x and y
20:29:37 <andythenorth> I need to resolve screen x from (game x * something + game y * something)
20:29:47 <petern> You... shouldn't need to do anything?
20:30:09 <andythenorth> I am writing my own sprite composter
20:30:38 <andythenorth> well I don't really want to photoshop all the building and ground sprites into one giant sprite ๐
20:30:43 <andythenorth> that's less interesting
20:31:24 <andythenorth> in principle, this should work, if I got better at maths
20:32:20 <dP> andythenorth: idk how helpful this is but it's basically openttd sprite layout in a nutshell:
20:32:20 <dP> ``` for ts in tick.tile_sprites {
20:32:20 <dP> if let Some(sprite) = cache.get_sprite(ts.image, ts.pal, zoom) {
20:32:20 <dP> draw_sprite(buffer, &sprite, (xofs + ts.x) >> zoom, (yofs + ts.y) >> zoom);
20:32:22 <dP> for ps in tick.parent_sprites {
20:32:24 <dP> if let Some(sprite) = cache.get_sprite(ps.image, ps.pal, zoom) {
20:32:24 <dP> draw_building(buffer, &sprite, (xofs + ps.x) >> zoom, (yofs + ps.y) >> zoom);
20:32:26 <dP> let mut child_id = ps.first_child;
20:32:28 <dP> let cs = &tick.child_sprites[child_id as usize];
20:32:30 <dP> if let Some(sprite) = cache.get_sprite(cs.image, cs.pal, zoom) {
20:32:30 <dP> draw_sprite(buffer, &sprite, (xofs + cs.x + ps.left) >> zoom, (yofs + cs.y + ps.top) >> zoom);
20:32:36 <dP> also each sprite has own xofs, yofs that just add to pixels
20:33:51 <petern> Ahh, I need to change `bool HasAntialiasedFonts()` :/
20:34:48 <andythenorth> seems I need to work out relative origin
20:34:53 <andythenorth> depending how many tiles there are
21:19:14 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:41:23 <andythenorth> ok I give up ๐
21:42:19 <andythenorth> there's no bounding box display ๐
21:42:42 <andythenorth> I can't work out if the sprite origin is moving for each sprite added to the spritelayout
21:47:59 <dP> hm... remove the rail of waypoints and stations? what's that supposed to mean?
21:51:29 <petern> If the construction tool is station tiles rather than track pieces...
21:52:45 <dP> yeah, figured it out too, so it removes with the rail
21:53:12 <dP> though it seems to be the other way around, with ctrl leaves rail
21:54:53 *** arikover has joined #openttd
21:55:10 <andythenorth> dunno how to control the position in the UI but eh
21:55:20 <andythenorth> relative to the tile works
21:55:37 <andythenorth> `xoffset: (-16 * ${grf_object.size[0] - 2}) + (16 * ${x_y_spritelayout[0]});`
21:55:42 <andythenorth> such magic number stuff
22:03:41 <andythenorth> ok magic number stuff deleted
22:04:20 <andythenorth> `xoffset: 16 * ${x_y_spritelayout[0]};`
22:04:30 <andythenorth> removing some magic number crap elsewhere
22:04:45 <andythenorth> which made everything quite alright
22:42:19 <dP> so, I just broke a bunch of translations, should I just fix them in PR than bothering translators? it's just ctrl anyway, can autoreplace most of it
23:27:53 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
continue to next day โต