Back to Home / #openttd / 2015 / 07 / Prev Day | Next Day
#openttd IRC Logs for 2015-07-23

---Logopened Thu Jul 23 00:00:20 2015
00:03-!-smoke_fumus [~smoke_fum@] has quit [Quit: KVIrc 4.2.0 Equilibrium]
00:17-!-supermop_ [] has quit [Ping timeout: 480 seconds]
00:56-!-Eddi|zuHause [] has quit []
00:56-!-Eddi|zuHause [] has joined #openttd
01:11-!-sla_ro|master [slamaster@] has joined #openttd
01:31-!-liq3 [] has joined #openttd
01:39-!-sla_ro|master [slamaster@] has quit []
02:00-!-ade [~ade@] has joined #openttd
02:00<ade>nmlc ERROR: "sprites/extra/extra-openttd-recolour.pnml", line 2: OTTD_RECOLOUR is not a valid sprite replacement type
02:00<ade>Included from: "ogfxe_extra.pnml", line 25
02:01<ade>opengfx error
02:03<ade>compile the opengfx by nml0.3.1
02:04<ade>that error appear.
02:08<Supercheese>I don't think I've ever compiled ogfx before
02:15-!-Alberth [~alberth@2001:981:c6c5:1:be5f:f4ff:feac:e11] has joined #openttd
02:15-!-mode/#openttd [+o Alberth] by ChanServ
02:24-!-Hiddenfunstuff [] has joined #openttd
02:45-!-Pikka [] has joined #openttd
02:48-!-Biolunar [] has joined #openttd
03:02<V453000>Pikka your thread got polluted by Baldys Boss XD
03:02<Pikka>he's an insightful fellow
03:04<V453000>without question
03:25<@planetmaker>ade, you need a newer NML. try 0.4.0 or newer
03:27-!-tokai|noir [] has joined #openttd
03:27-!-mode/#openttd [+v tokai|noir] by ChanServ
03:34-!-tokai [] has quit [Ping timeout: 480 seconds]
03:37-!-Zuu [] has joined #openttd
03:52-!-andythenorth [] has joined #openttd
03:53<Zuu>I created a thread some 30 minutes ago. Perhaps a bit hidden in NewGRF developments forum. :-)
03:55<andythenorth>Zuu: good thread :)
03:55<andythenorth>I am away for a few weeks soon, I won’t be able to make a grf for this immediately
03:56<andythenorth>McZapkie or someone else might
03:56<Zuu>Maybe a bit lengthy, but I took the chance to also sumarize what has been done so far in one place.
03:56<andythenorth>there are a few people active writing industry grfs at the moment
03:57<Zuu>andythenorth: Yeah, you told me. Well let's see if anyone is interested.
03:57*andythenorth would use the value in cb 29 to set a tile red / green / blue / yellow
03:57<Zuu>Assuming that doesn't need the animation callback, it sounds good.
03:58<andythenorth>it doesn’t
03:58<ade>I'm working a NewGRF base on
04:01<andythenorth>Zuu: the GS will set the bits in var 10?
04:01-!-JezK [~jez@2407:7800:400:107f:3db5:daca:8457:e66a] has quit [Quit: :q!]
04:04<@planetmaker>intriguing patch series idea :)
04:05<Zuu>Well at the moment the series is quite short :-)
04:05<andythenorth>I can’t remember how to extract a var with nml when there’s no keyword for it
04:05<andythenorth>var[0x00] ?
04:05<andythenorth>with a bitmask and shift?
04:06<andythenorth>having an industry push this permanent storage is trivial, planetmaker could write it for you in 5 mins :)
04:06<andythenorth>I could do it in 10 mins, if I was a better programmer
04:07<@planetmaker>var 0x10 and 0x18 are extra_callback_info1 and extra_callback_info2
04:08<andythenorth>so: random_prod_change: STORE_TEMP(extra_callback_info_1, 0x01);
04:08<@planetmaker>that's temporary storage, but yes
04:08<@planetmaker>you probably wanted STORE_PERM :)
04:08<andythenorth>random_prod_change: STORE_PERM(extra_callback_info_1, 1)
04:08<andythenorth>and registers can be accessed without hex afaict
04:09<@planetmaker>you do not need hex anywhere, also nowhere in nfo. In some places it's just more convenient
04:09<andythenorth>I would recommend patching ogfx+ industries or such to do that
04:09<@planetmaker>a number is a number is a number. There are just ways to write it down :)
04:09<andythenorth>it’s probably easier and faster to compile than FIRS
04:09<@planetmaker>probably, yes
04:09*andythenorth must to work
04:09<andythenorth>and also haircut
04:09<@planetmaker>can't right now, ^
04:09<Zuu>And the permanent storage can be inspected by newgrf_developer_tools?
04:10<andythenorth>there’s a grid of values in the UI for it
04:13<andythenorth>I’m not sure whether just returning that STORE_PERM will give a valid cb result
04:13<andythenorth>it might need to be in a switch chain, storing, and then giving a valid return value to the cb
04:13*andythenorth bbl :)
04:13-!-andythenorth [] has quit [Quit: andythenorth]
04:19-!-ade [~ade@] has quit [Ping timeout: 480 seconds]
04:19<@planetmaker>yes, there needs to be some valid return value to the CB
04:20<@planetmaker>or should
04:20<@planetmaker>at CB_FAILED
04:28-!-JacobD88 [] has joined #openttd
04:28-!-sla_ro|master [slamaster@] has joined #openttd
04:29<Zuu>Currently the patch discards the value returned by NewGRF. With some work it is possible to rely it back to the GS. This happens eg. when a GS create some new object and get the ID of the object back through some sort of global variable where the new ID is stored so the GS API can pick it up later when the command returns, possible in a different tick than it was called.
04:31<@planetmaker>uh, I first have to untar the file to see tha patches? :D
04:31<@planetmaker>ah, that's the GS, sorry
04:32<Zuu>It is only a 01.patch at the moment :-)
04:53-!-wicope [] has joined #openttd
05:24-!-shl_ [] has joined #openttd
05:25-!-shl_ [] has quit []
05:57-!-andythenorth [~Andy@] has joined #openttd
05:58<andythenorth>I agree
06:12-!-Pokka [] has joined #openttd
06:13-!-andythenorth [~Andy@] has quit [Quit: andythenorth]
06:16-!-Pikka [] has quit [Ping timeout: 480 seconds]
06:17-!-andythenorth [~Andy@] has joined #openttd
06:20-!-andythenorth [~Andy@] has quit []
06:23-!-Alberth [~alberth@2001:981:c6c5:1:be5f:f4ff:feac:e11] has left #openttd []
06:33-!-qwebirc74027 [~oftc-webi@] has joined #openttd
06:38-!-qwebirc74027 [~oftc-webi@] has quit []
07:32-!-Supercheese [] has quit [Read error: Connection reset by peer]
07:33-!-Supercheese [] has joined #openttd
07:36-!-Pokka [] has quit [Read error: Connection reset by peer]
07:44-!-DDR [] has quit [Remote host closed the connection]
07:51-!-Flygon_ [] has joined #openttd
07:51-!-Alberth [~alberth@2001:981:c6c5:1:be5f:f4ff:feac:e11] has joined #openttd
07:51-!-mode/#openttd [+o Alberth] by ChanServ
07:58-!-Flygon [] has quit [Ping timeout: 480 seconds]
07:58-!-sla_ro|master [slamaster@] has quit []
08:30-!-liq3 [] has quit [Read error: Connection reset by peer]
08:30-!-liq3 [] has joined #openttd
08:39-!-LadyHawk [] has quit []
09:04-!-tokai [] has joined #openttd
09:04-!-mode/#openttd [+v tokai] by ChanServ
09:05-!-andythenorth [~Andy@] has joined #openttd
09:07-!-andythenorth [~Andy@] has quit []
09:10-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
09:11-!-LadyHawk [] has joined #openttd
09:15-!-liq3 [] has quit [Ping timeout: 480 seconds]
09:29-!-liq3 [] has joined #openttd
09:41-!-sla_ro|master [slamaster@] has joined #openttd
09:52-!-wicope [] has quit [Remote host closed the connection]
10:02-!-Nathan1852 [] has joined #openttd
10:06-!-tokai|noir [] has joined #openttd
10:06-!-mode/#openttd [+v tokai|noir] by ChanServ
10:08-!-andythenorth [~Andy@] has joined #openttd
10:11-!-andythenorth [~Andy@] has quit []
10:13-!-tokai [] has quit [Ping timeout: 480 seconds]
10:26-!-roidal [] has joined #openttd
10:48-!-frosch123 [] has joined #openttd
10:53-!-Belugas [] has quit [Ping timeout: 480 seconds]
10:53-!-Belugas [~belugas@] has joined #openttd
10:53-!-mode/#openttd [+o Belugas] by ChanServ
11:07-!-tokai [] has joined #openttd
11:07-!-mode/#openttd [+v tokai] by ChanServ
11:08-!-Nathan1852_ [] has joined #openttd
11:08-!-andythenorth [~Andy@] has joined #openttd
11:14-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
11:15-!-Nathan1852 [] has quit [Ping timeout: 480 seconds]
11:44-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
11:49-!-TheMask96 [] has joined #openttd
11:55-!-Belugas [] has quit [Ping timeout: 480 seconds]
11:55-!-Belugas [~belugas@] has joined #openttd
11:55-!-mode/#openttd [+o Belugas] by ChanServ
12:01-!-Lantizia [] has joined #openttd
12:01<Lantizia>Hey it's been a whilst since i've played and the 'difficulty options' are gone
12:02<Lantizia>i can't see a way to turn off competitors - where is this? it doesn't seem to be in the advanced settings
12:02<Lantizia>hmm - ok think i've found max no. competitors in the AI/Game script bit - but after a little while into the game it still tries to make one :S
12:04<frosch123>changing settings in main menu is different from changing settings in-game
12:04<frosch123>main menu only affects new games
12:06<Lantizia>ok - then new question... if I've downloaded a map... how can I start a new game on that map without using 'Play Scenarion'
12:06<Lantizia>which seems to force the scenarios rules on me
12:09<frosch123>load it in scenario editor and change the rules
12:10<Lantizia>that seems - reeaally dumb
12:10<Lantizia>i don't think even the original ttdlx had this issue
12:11<Lantizia>you could just rename ss0's to sav's and they'd open
12:11<frosch123>you can still do that
12:11<frosch123>but that doesn't change the settings
12:12<Lantizia>when i open it in the scenario editor - can I just tell it to use my default settings for new games? and save?
12:13<Zuu>In the settings window, there is a filter to show only the settings that has a different value compared to your new game settings.
12:14<Zuu>This filter is in the category drop down btw.
12:14<Lantizia>yeah i've seen it before
12:15<Lantizia>still means i have to rechoose everything though yes?
12:16<Zuu>Unless there is a console command for it or some solution, I don't see, you have to go through the settings that show up with this filter and one by one change them so that they disappear form the list.
12:16<frosch123>Lantizia: really, why are you using a scenario then?
12:16<frosch123>if you only want the shape, you can also save it as heightmap
12:18<Lantizia>frosch123, well i want the towns and roads - etc.. not just shape
12:18<Lantizia>i just don't want the authors rules and settings - that would see (to me) to be a very usual thing to request
12:18<Lantizia>load in the map - just don't in their settings
12:19<frosch123>that approach fails for half of the settings
12:19<frosch123>settings also affect where industries can be built and such
12:20<Lantizia>right but if your loading a map that already has maps, industries, roads, etc... - no problem
12:21<frosch123>haha, that would likely give 1000 people complaining that the industry number reduce to 1/10 within 3 years :p
12:21<frosch123>maps are not static
12:21<frosch123>they change all the time
12:21<frosch123>towns change, industries change
12:22<Lantizia>i really don't see what the issue in
12:22<Lantizia>load in the actual map ... don't load in settings - just assume the global/default ones
12:23<Lantizia>i'm sure ttdlx was the same - no settings were stored in the actual save files - as you could change them after starting a game
12:24<Zuu>Having them in the save file makes it easier when you switch between different games. And make it easier to reproduce bugs as well.
12:25<frosch123>yes, ttd had that option
12:25<frosch123>but it was trashed when it was no longer possible to support
12:25<frosch123>because of more advanced settings
12:25<frosch123>anyway, my point was mood, industries close in all custom scenarios
12:25<frosch123>probably why scenarios generally are unpopular
12:26<Lantizia>why do they close?
12:30<Zuu>Default industries close after some time when not beeing served. New industries are opened at random place.
12:30<Zuu>You can find out more in the wiki if you like to know more on the logics behind closure.
12:31<Lantizia>that was the same in ttdlx anyway
12:32<Zuu>Well, when making a scenario you may want to turn off industry closure and also random industry generation. To do so you need a mixture of both a NewGRF and settings to achieve this.
12:33<Zuu>If your new game settings, doesn't include the setting to turn of generation of new industries, the scenario will have new industry generation, but no closure.
12:33<Lantizia>i don't normally use newgrf - i'm on original ttd gfx's/music/sound
12:34<Zuu>But if you load a scenario, you get the NewGRFs it has choosen.
12:34-!-HerzogDeXtEr [] has joined #openttd
12:34<Lantizia>??? graphics come with scenarions?
12:34<Lantizia>is NewGFX more than just graphics?
12:35-!-glx [] has joined #openttd
12:35-!-mode/#openttd [+v glx] by ChanServ
12:35<Zuu>NewGRF contain much more than just graphics. It contains rules for industries, vehicels etc. that the NewGRF provides.
12:36<Zuu>For example a NewGRF can make vehicles cost half price at 24 dec every year if it wish. :-)
12:36<Lantizia>then it (as well as heightmaps) has a very confusing name
12:37<Zuu>You could read it out as New Game Resource File if it helps you.
12:37<Lantizia>i always thought GFX was graphics
12:37<Lantizia>sorry GRF
12:37<frosch123>that's what it was 10 years ago :p
12:37<@planetmaker>that's why it's called grf - game resource file :)
12:38<+glx>even 10 years ago it contained stuff not related to graphics
12:40<Lantizia>i now just feel like loading up ttdlx - at least i know where I am with that
12:40<Lantizia>this just has too many hidden options, mods, and terminology (that tbh needs eliminating in a future major release)
12:42*andythenorth recommends it
12:42<andythenorth>all this newfangled stuff is silly
12:42<andythenorth>try TTO
12:43<Zuu>although that doesn't allow 64x64 maps which is also kind of interesting. :-)
12:44<Lantizia>why would you want such a tiny map?
12:44<Zuu>Why not?
12:45<Zuu>I played a MP with 4-5 companies on 64x128 once. It was very interesting.
12:45<Lantizia>umm, a short and boring game
12:45<Zuu>The game played for several hours.
12:45<Lantizia>wow - hours
12:45<Lantizia>i don't see ttdlx that way
12:45<Lantizia>it's a days on end thing
12:45<andythenorth>preferably without sleep
12:46<andythenorth>or eating
12:46<andythenorth>or attending to bodily functions
12:49<@Alberth>shorter quarry looks much nicer andy, more in line with the other industries
12:49<andythenorth>I think it’s an improvement
12:49<andythenorth>also more layouts
12:50<@Alberth>yeah, more variation :)
12:50<@Alberth>and better placement probably
12:51-!-Nathan1852_ [] has quit [Ping timeout: 480 seconds]
12:53<andythenorth>way more placement options
12:53<andythenorth>I got very detailed with which tiles can have foundations under them :P
12:53<andythenorth>btw, for terminology, I proposed just renaming everything as ‘mod’
12:53<andythenorth>newgrf, GS, heightmap, AI, patch
12:53<andythenorth>it will simplify it greatly for the player
13:09<Eddi|zuHause>i doubt that
13:09<Eddi|zuHause>terminology is really easy to pick up
13:10<@planetmaker>no no, you get it all wrong. It's sooo confusing, Eddi|zuHause !
13:10<andythenorth>we can do a major release eliminating it
13:11<andythenorth>it will be great
13:11<@planetmaker>it also became all much simpler as every type of programme is nowadays called 'app'
13:11<andythenorth>c.f. the long discussion about deleting everything
13:11<andythenorth>best discussion we’ve had here for a while
13:11<andythenorth>what does ‘c.f.’ mean?
13:11<@planetmaker>compare for?
13:12<andythenorth>"The abbreviation cf. derives from the Latin word confer, while in English it is commonly read as "compare"."
13:12<andythenorth>how rare
13:12*andythenorth did not know that
13:13<frosch123>hmm, another latin abbreviation to add to my english :) i.e., e.g, cf.
13:13<@Alberth>I'd translate it as"as discussed before", or "along the lines of"
13:15<frosch123>translate it as \ref :p
13:16<andythenorth>I had no idea :P
13:16<@Alberth>\cite :p
13:16<andythenorth>anyway, we’re deleting newgrf for 2.0?
13:16<@Alberth>yeah, they will be called oldgrf by then
13:16<frosch123>i thought about removing the user interface
13:17<frosch123>moving gameplay to ais is way more time efficient
13:17<andythenorth>easier to understand
13:17<andythenorth>I would keep *a* UI
13:17<andythenorth>but not the current one
13:17<andythenorth>just a chart showing which AI is winning
13:17<andythenorth>performance will also be improved, no sprites to draw
13:17<andythenorth>we can use vectors for the chart
13:17<frosch123>belugas had one for his song a few years ago
13:17<frosch123>it was the main screen with a single "tuut tuut" button
13:18<frosch123>or was that for your kid?
13:18<andythenorth>not mine :)
13:24-!-Wolf01 [] has joined #openttd
13:24<Wolf01>hi hi
13:29<Wolf01>mmmh, I don't know what is worse: (o)tt(d), factorio, terraria or gnomoria...
13:31<frosch123>isn't terraria really boring?
13:32<Wolf01>only if you don't find anything funny to do
13:32<frosch123>like drowning your co-players? :p
13:33<Wolf01>or digging a 48 tiles wide hole to the hell in large maps
13:33<frosch123>and flood it with the sea from the map border?
13:33<Wolf01>or building a minecart rail with bumpers and jumps
13:34<frosch123>minecart must be something newish
13:34<Wolf01>it was there since 1.2, but in 1.3 there are lots of random tracks you can use for fast-exploring the map
13:39*andythenorth can’t click with factorio
13:39<andythenorth>bbl :)
13:39-!-andythenorth [~Andy@] has quit [Quit: andythenorth]
13:40<@Belugas>I was summoned from the deads! hello
13:40<Zuu>Hello Belugas
13:41<Wolf01>hello Belugas :D
13:41<frosch123>do zombies drink coffee?
13:49<V453000>okay so I made a todo list what I need in order to create a base set
13:50<V453000>not very thrilled after seeing the length XD
13:50<frosch123>haha, what priority did you assign to gui sprites? :p
13:50<V453000>yeah somewhere around UFO
13:51<frosch123>they are the most boring ones, but also those which we need most (imho)
13:51<V453000>I might even do gui before industries/houses
13:51<frosch123>are you going to render them? :)
13:52<frosch123>more zoom levels and such
13:52<V453000>I guess, yeah
13:52<V453000>most convenient way I feel like
13:52<frosch123>someone tried to make svgs
13:52<frosch123>but they were not particulary pretty either
13:52<V453000>I might edit the x1 ones and push some pixels
13:52<V453000>but the source will likely be 3D
13:53-!-Alberth [~alberth@2001:981:c6c5:1:be5f:f4ff:feac:e11] has left #openttd []
13:54<V453000>about to try sketching some signals I thin k
13:55<V453000>I want roads, tracks, landscape, trees to go into 0.0.1
13:55<frosch123>signals have a good rendering ratio :)
13:55<frosch123>8 rotations
13:55<frosch123>red/green almost same
13:56<frosch123>signal variannts not much different and so :)
13:56<V453000>sure sure but they need to look nice and clear :)
13:56<V453000>trees are hell so far
13:56<V453000>(I am making them kind of grow and die etc in detail)
13:56<V453000>is cute but WORK
14:15<Zuu>I was bored, and tried to write some nml. I got it working except for the production change callback which is kind of the key part. Does anyone easily see why nmlc complain about unrecognized identifier?
14:16<frosch123>no "_" in front of the 1
14:17-!-Progman [] has joined #openttd
14:17<frosch123>not sure whether just a STORE_PERM works there
14:19<frosch123> <- try something like that
14:25<Zuu>Just removing the "_" before 1 make it compile.
14:25<Zuu>But maybe the switch is useful still.
14:27<frosch123>well, it needs some return value
14:27<frosch123>otherwise i have no idea what nml would output :p
14:27<Zuu>As in return value of the callback?
14:30<Zuu>nmlc complain on line 12 of your version. Should there be a , between ] and {, and possible a terminating ) at line 14?
14:30<frosch123>ah, the ) goes after the ]
14:30<frosch123>before the {
14:34<Zuu>Tried to test in trunk, but my GS crashed. :-)
14:34<Zuu>Silly me
14:35<frosch123>you can see the persistent storage in the newgrf inspector window
14:36<Zuu>Ah yes, I just need to manually repaint the window to see it.
14:36<Zuu>But it works.
14:37-!-andythenorth [] has joined #openttd
14:39<Supercheese>yeah the newgrf debug window doesn't get automatically marked dirty and repainted very often
14:39<Zuu>andythenorth: You missed I made my first NewGRF! :-)
14:40<Zuu>With some help from frosch123 to actually make it work though :-)
14:43<andythenorth>does it work? o_O
14:44<@Belugas>i drink coffee, so.. am i a zombie?
14:44<Zuu>Yep it works
14:44-!-wicope [] has joined #openttd
14:45<Zuu>I can place signs on coal mines with integer values that show up in the NewGRF permanent store. :-)
14:47<frosch123>i guess we need a real gs/industry idea for the next testcase :)
14:48<frosch123>make industry production depend on other industries being serviced in the same town? or something like that?
14:48<andythenorth>eh I will mod FIRS for it - but not before mid August :)
14:48<andythenorth>and it will be a branch-of-a-branch :P
14:48*andythenorth will have to learn how to merge properly
14:49<Eddi|zuHause>how about: primary industries offer contracts: "transport X amount of cargo to Y over the next 5 years", and they don't produce anything outside these contracts?
14:49<Zuu>I uploaded the NewGRF + sources to my dev directory.
14:49<andythenorth>an obvious application is electricity
14:49<frosch123>or make it part of busy bee?
14:49<frosch123>transport coal from A to B to make C increase production?
14:49<andythenorth>production boost if a nearby power plant is supplied
14:50<frosch123>that is complicated, because gs needs to know about what a powerplant is :p
14:50<andythenorth>yeah :P
14:51*andythenorth ponders 3 modes for FIRS supplies: “temporary boost | level up | GS controlled"
14:51<andythenorth>supplies / primary industries /s
14:51<frosch123>hmm, gs can detect supplies
14:52<frosch123>so, yeah, maybe we can make something special with supplies
14:52<andythenorth>approximately yes
14:52<andythenorth>there is nothing to handle setting text
14:52<andythenorth>ach, industry window text was one of my ponies, and I forgot :P
14:52<andythenorth>poor lost pony
14:53<andythenorth>it’s in your newgrf draft spec somewhere frosch123
14:53<frosch123>anyway, what should gs do about supplies?
14:53<andythenorth>dunno, I have enough headaches with them :
14:53<frosch123>should it autodistribute them to nearby industries? :p
14:53<andythenorth>I have considered before delivering to, e.g. a supply depot
14:53<frosch123>deliver stuff to one industry, boost all in town
14:54<andythenorth>to boost all neighbouring
14:54<andythenorth>I am dubious that it makes good gameplay, but eh
14:54<andythenorth>experimentation is good...
14:54<frosch123>ok, maybe something more silly
14:54<frosch123>usually mail transport is really boring
14:54<andythenorth>yes indeed
14:54<frosch123>so, make good mail service boost production of all industries :)
14:54<frosch123>Zuu: how does that sound? :p
14:55*Zuu reads backlog
14:55<andythenorth>‘realistic’ ideas: local population, politics, geology, water supply, fuel supply
14:55<frosch123>it's even realistic
14:55<frosch123>you cannot sell stuff without mail
14:55<frosch123>deliver all the paychecks :)
14:56<V453000>maybe something as complicated as a single signal would be more interesting ;)
14:56<V453000>like a combination of PBS and entry signal
14:56<andythenorth>also town deliveries, food and such
14:56<Zuu>frosch123: sounds like a nice and silly idea.
14:57<frosch123>does it affect primary, or also secondary industries?
14:57<andythenorth>good mail service in that town?
14:57<andythenorth>or everywhere?
14:57<Zuu>IIRC there is a love letter AI (aka MailAI) that only transports mail.
14:57<andythenorth>deliver n% of the available mail / month?
14:58<frosch123>n% of mail delivered from a town set production to base-production * (50% + n%)
14:58<frosch123>so 50% to 150%
14:58<frosch123>really low if no mail, tripled if 100% mail
14:59<frosch123>same for primary and secondary :p
14:59<frosch123>i.e. secondary output more than delivered if they have good mail
14:59<frosch123>possibly mail is averaged over 3 month or so
15:01<andythenorth>so (theoretical case) that this is used with FIRS
15:01<andythenorth>are supplies redundant?
15:01*andythenorth ponders ways to work that
15:01<Zuu>You could always include both in a formula giving both supplies and mail bonus?
15:02<Zuu>But if that is desired is a different question.
15:02<Zuu>Or you only get the mail bonus, if you also provide suplies.
15:03<Eddi|zuHause><frosch123> that is complicated, because gs needs to know about what a powerplant is :p <-- there needs to be a standardized interface, where the GS asks each industry what behaviour it supports, e.g. some flags that are returned similar to the way cargo classes work
15:03-!-Biolunar [] has quit [Quit: Yo.]
15:04<frosch123> <- Zuu: that makes the variable modify the production of the coal mine
15:05<frosch123>50% if 0 (default), 100% if 128, 150% if 256, ...
15:05<frosch123>Eddi|zuHause: that exists, and sv makes use of that
15:06<frosch123>but in the end you cannot check all weird newgrfs
15:06<Eddi|zuHause>of course not. only non-weird newgrfs will work, but there needs to be work done to decide what is "weird" and what is not
15:07<frosch123>Zuu: the normal production changes of the industry are actually disabled that way, so only the gs affects production
15:07<Eddi|zuHause>like how long did railtypes exist until we came up with the standardized railtype scheme?
15:07<frosch123>Eddi|zuHause: sorry, but purr is the only good railtype grf out there
15:07<frosch123>everything else has been a disappointment
15:07<Eddi|zuHause>but that was not the question :p
15:08<frosch123>(except for pure graphics like swedish rails)
15:08<Eddi|zuHause>"good" and "weird" are totally orthogonal
15:09<Eddi|zuHause>like wasteland is totally "weird" on almost all accounts, doesn't prevent it from being "good" in its own way
15:09<Eddi|zuHause>or this mars set
15:09<Eddi|zuHause>was that ever released?
15:09<andythenorth>cargo labels works
15:09<frosch123>railtypes with different speed and weight limits are not interesting on any scale
15:09<Eddi|zuHause>frosch123: maybe not for your playstyle.
15:09<andythenorth>but I cannot think where to start on defining a convention for industries
15:10<frosch123>possible :)
15:10<andythenorth>cargo labels have a single dimension
15:10<andythenorth>industry properties are n-dimensional
15:10<Eddi|zuHause>andythenorth: cargo labels have the problem of not being future-proof
15:11<andythenorth>seem pretty future proof to me :)
15:11<andythenorth>what do I miss?
15:12<frosch123>andythenorth: eddi's railtype schema totally accounts for pipelines and wetrail
15:12<andythenorth>eh well
15:12<frosch123>and vacuum rail
15:12<andythenorth>let’s do that then?
15:12<andythenorth>cargo labels are a bad example, they’re just a UUID, almost zero information content
15:13<frosch123>let's make a gs that favours transporting pourable cargos
15:13<frosch123>call it junkie gs
15:14<Zuu>frosch123: That newgrf make relative changes? Or is it ment to be absolute production levels?
15:14<frosch123>absolute level
15:14<frosch123>set once, never changed until set again
15:14<andythenorth>hmm, what is the purpose of exposing some range of industry attributes to GS?
15:14<andythenorth>these are about industry behaviour?
15:14<Zuu>I meant, if you make two subsequent changes, do they add up or will 255 always mean the same production?
15:15<frosch123>setting to same value again does not change anything
15:15<Zuu>Only, that it takes time for monthly production to shift over to the new value.
15:15<Eddi|zuHause>i feel like there should be ways to do both relative and absolute changes
15:15<andythenorth>there is
15:16<andythenorth>just set the appropriate value
15:16<frosch123>a gs can easily remember what values it set
15:16<andythenorth>those CBs are remarkably complete :)
15:16<frosch123>relative changes are overrated
15:16<frosch123>they just add an integral term, which makes stuff behave unpleasant
15:16<Eddi|zuHause>frosch123: but what if it doesn't take full control, only wants to tweak stuff here and there?
15:16<andythenorth>I’ve always found the industry spec very sane and easy to work with, despite some odd bits
15:17<frosch123>Eddi|zuHause: so what, write a different grf
15:17<frosch123>this one does this
15:17<Eddi|zuHause>frosch123: like a disaster that halves all production of food
15:17*frosch123 throws ENoSense
15:17<andythenorth>locusts :P
15:17<Eddi|zuHause>maybe we're talking about different things :p
15:18<andythenorth>Eddi|zuHause: in this case I’m missing what you think is missing?
15:18<frosch123>Eddi|zuHause: the goal was to make mail transport affect production
15:18<frosch123>i consider relative production changes the root of all evil
15:19<Eddi|zuHause>sure. absolute dictatorships were always better wrt. economy.
15:19<frosch123>setting absolute levels depending on limited environment variables results in way better predictable/handleable behaviour
15:20<frosch123>releative changes either grow to 0 or to infinity, both is terrible
15:20<Eddi|zuHause>they may do that, if you don't have proper feedback loops
15:20<Eddi|zuHause>the current game doesn't have any useful feedback loops, though
15:20<frosch123>if you add a feedback loop, setting relative or absolute values is equivalent
15:21<frosch123>so, what's even your point?
15:21<andythenorth>was it a spec point, or a gameplay point? o_O
15:21<frosch123>no idea, maybe i should clean my dishes
15:21<frosch123>may be more useful
15:22<Eddi|zuHause>well, my original point was a spec point about being able to set relative changes
15:22<andythenorth>you can :)
15:22<frosch123>Eddi|zuHause: the spec is that there is no spec
15:22<Eddi|zuHause>then we diverged
15:22*andythenorth has a “can’t we all be friends?” moment :(
15:23<frosch123>andythenorth: anyway, we need some a14 to make newgrf give information to gs
15:23<frosch123>like, industry 1 understand "gs interface 'andy's finest'"
15:23<andythenorth>yeah agreed
15:23<andythenorth>except I have no idea what to use it for :)
15:23<frosch123>likely this would just be a key->value table, which gs can query
15:24<Zuu>GS can currently read last month production. If it had current production rate, it could make accurate relative production changes.
15:24<frosch123>so, one can add random other properties
15:24<andythenorth>eh Eddi|zuHause are you thinking of the case where the industry is using production cb?
15:24<frosch123>Zuu: above newgrf does not change production on its own, so if you remember that yuo assigned a value to the industry, you do not need to read it
15:24<andythenorth>and you want to specify some message passing spec?
15:24*andythenorth puzzling
15:24<frosch123>you have to keep track of what industries got which values anyway
15:25<Zuu>frosch123: Yep, I was more thinking in general terms for other NewGRFs, in respect to the remark by Eddi.
15:25*andythenorth thinks it might be convenient if the GS can have convenience methods to set value as per
15:26<andythenorth>so that the GS / NewGRF interfaces match up
15:26<frosch123>andythenorth: but i consider all those return values terrible :p
15:26<andythenorth>I like 0C personally :P
15:26<frosch123>did you ever use them?
15:26<andythenorth>eh, no
15:27<andythenorth>FIRS uses production cb currently for all case IIRC
15:27<andythenorth>multiplier is currently ignored
15:27-!-roidal [] has quit [Quit: WeeChat 1.2]
15:27<andythenorth>I have been wanting to change that for a long time though
15:27<frosch123>[21:27] <andythenorth> multiplier is currently ignored <- exactly, and i think all proper newgrfs do that
15:28<frosch123>there is nothing as useless as the production multiplier, except for interfacing the cheat :p
15:28<Zuu>Which is now available as a sign cheat, yay :-)
15:28<frosch123>we, should implement all ttdp sign cheats as gs :p
15:28<Zuu>Or well, not the multiplier, but production change.
15:29<frosch123>Zuu: the method above is already better than the production mulitplier ever could be :/
15:30*andythenorth is amused by frosch123’s vitriol
15:31<Zuu>Hmm, when I put a sign with 0, it doesn't go back to 120 tones of coal.
15:32<Zuu>But then, my dev build is a bit slow so I haven't waited more than 2-3 months.
15:33<andythenorth>can GS control move-cargo-to-station? o_O :P
15:33*andythenorth didn’t know that only the two highest rated stations were served with cargo :P
15:33<andythenorth>until last week or so
15:33<Zuu>GS cannot control that.
15:34<Zuu>Unless NewGRF can.
15:34<Eddi|zuHause>it's a weird feature anyway
15:34<andythenorth>it’s not appropriate to GS, runs too often
15:34<andythenorth>and newgrf can’t control it
15:34<andythenorth>it’s needed to fix freight cdist though
15:35<Zuu>It could perhaps just be a regular setting "number of stations to deliver to". Or is there a point of allowing people to write different NewGRFs for this property?
15:36<Zuu>frosch123: Does 0 mean that it pass back control to OpenTTD?
15:38<Eddi|zuHause>Zuu: i doubt there is a case to make for NewGRFs to do this
15:38<Zuu>Me too
15:38<Eddi|zuHause>also, i'm not sure what sane settings would be there
15:40<Eddi|zuHause>i think it should be changed to a two-step model: all stations of one company get averaged, and then the two players with the highest average get the cargo. then it's distributed between all stations of that player
15:40-!-Nathan1852_ [] has joined #openttd
15:42<frosch123>Zuu: 0 means 50% of default, there is no passing back control
15:42<frosch123>without gs the industry will never change production or even close :)
15:43<Zuu>Hmm, when the map was created, it had 120 tonnes. When setting to 0 it went down shortly to 176 and is now back at 198. Hmm and now on 176 again, and then on 198.. Hmm
15:44<Zuu>Maybe an affect of moths with different lengths?
15:44<Zuu>30 or 31 days.
15:47<Zuu>But right, it do react to 0, 128, 255, 512 etc. I was only surprised that 0, gave a higher production than when the map was fresh.
15:48-!-smoke_fumus [~smoke_fum@] has joined #openttd
15:48<Zuu>Hmm.. that said, restarting the game and waiting some time (without placing any sign) will make it change from 120 to 176/198 tonnes.
15:49<Zuu>So I guess it is confirmed it do work rather predictable.
15:52<andythenorth>first month production is usually weird
15:53<andythenorth>and yes, you’re seeing variation due to 8 or 9 production cycles in a specific
15:53<Zuu>Then I learned something new :-)
15:58-!-tokai|noir [] has joined #openttd
15:58-!-mode/#openttd [+v tokai|noir] by ChanServ
16:05-!-tokai [] has quit [Ping timeout: 480 seconds]
16:05<Eddi|zuHause>Zuu: production runs every 256 ticks. there are about 8.8 production cycles fitting into each month
16:06<frosch123>it produces 180 tons at 0?
16:06<frosch123>i expected something like 60...
16:07<frosch123>@calc 15*8
16:07<@DorpsGek>frosch123: 120
16:07<Eddi|zuHause>176 is a weird value, it's 11*16
16:07<frosch123>@calc 15*9
16:07<@DorpsGek>frosch123: 135
16:07<Eddi|zuHause>so it produced 22 cargo per step
16:07<frosch123>so i expected 60 to 68
16:10-!-JacobD88 [] has quit [Read error: No route to host]
16:12<andythenorth>what is production_rate_1 set to?
16:12<andythenorth>this is default coal mine?
16:12<frosch123>15 for coal mine
16:13<andythenorth>yeah 60 would have been my expectation
16:13<andythenorth>it will still produce conventionally no?
16:13*andythenorth checks
16:13<frosch123>oh, that may be the case
16:14<frosch123>yeah, it does :)
16:14<frosch123>ok, then 180 is correct :)
16:14<andythenorth>even andythenorth can debug sometimes :P
16:16<andythenorth>FIRS code was the clue
16:16<andythenorth>‘quadruple production’ is multiplied by 3 :P
16:16<andythenorth>which adds to the base production
16:16<andythenorth>took me a long time to understand that :P
16:17<Zuu>Ah ok. So base production is 180 for coal mine. And 0 is 180 + 0?
16:19<andythenorth>base production is about 120 or so
16:19-!-liq3 [] has quit []
16:19<andythenorth>and the production multiplier code adds 60 + 0
16:20<andythenorth>it’s just a side effect
16:20<andythenorth>it could be handled better relatively trivially
16:21<andythenorth>as long as you know the cause, it’s a non-issue for the GS test :)
16:21<Zuu>Those 60 is that from the formulas in the NewGRF?
16:21<Zuu>Yep indeed.
16:21<andythenorth>8* ((15 * 128) / 256)
16:21*andythenorth put the unnecessary brackets in, can’t read it otherwise
16:24<frosch123>Zuu: <- improved version
16:25-!-Wolf03 [] has joined #openttd
16:25-!-Wolf01 is now known as Guest1174
16:25-!-Wolf03 is now known as Wolf01
16:26<andythenorth>“now includes closure” :)
16:26<andythenorth>are you just setting a closure bit? o_O
16:26*andythenorth is not very good at shifts :P
16:27<frosch123>yup, just a closure bit :)
16:27<frosch123>i guess i can compile a complete manual industries set like this
16:27<frosch123>just give production and closure control to gs
16:27<frosch123>they can fund stuff anyway
16:27<andythenorth>it’s the way forward
16:27<andythenorth>more experimental branches :)
16:28<Zuu>Hmm, I though GS could close industries, but I don't find that API so I was wrong until now. :-)
16:28<frosch123>Zuu: cleartile might have worked
16:28<frosch123>as owner_deity, but maybe not :p
16:28<Zuu>frosch123: Btw, I add you to list of authors and there is a note that the grf is in GPLv2 which I think is fine to you, but may be good to you to be aware of.
16:29<frosch123>gpl2 is fine :)
16:30-!-Guest1174 [] has quit [Ping timeout: 480 seconds]
16:31*frosch123 ponders how to compose json structues with newgrf
16:31<andythenorth>a modern, easy to compile format?
16:31<@Terkhen>good night
16:31<andythenorth>how rare :)
16:31<andythenorth>bye Terkhen
16:31<Eddi|zuHause>frosch123: i have my doubt that json fits into 15 bits :p
16:31<andythenorth>compile / pasrse /s
16:31<andythenorth>or parse even :(
16:31<frosch123>Eddi|zuHause: that's the trick, it does not need to
16:31<andythenorth>somebody else was borrowing my fingers :P
16:32<Zuu>frosch123: You have 2 syntax errors. I fixed both though. Great you give me some nml challenges ;-)
16:32<frosch123>i am just to lazy to compile myself :p
16:32<frosch123>i typed it right into the paste
16:32<frosch123>and coop paste has no nml syntax checker :p
16:32<Zuu>One is in the switch and one is for prod_multiplier.
16:32<frosch123>(at least i hope it does not :p )
16:33<Eddi|zuHause>frosch123: let me divert your attention to a possible subproject: make the textstack behave like an actual stack (so any write access to a register, say 0x100, will be a push operation)
16:33<Eddi|zuHause>(possibly 0x100/0x101/0x102 behaving like 8/16/32 bit pushes)
16:33<frosch123>are you sure yuo want to do that? :p
16:34<frosch123>that makes it nearly impossible for nml to optimise action2 chains
16:34<frosch123>if the order of assignment suddenly matters
16:34<Eddi|zuHause>frosch123: it would simplify like 10 LOC of CETS :p
16:35<Zuu>frosch123: compiled newgrf should it be of interest of you:
16:35<Eddi|zuHause>frosch123: you need sequence points :p
16:35<frosch123>rather add a action2 operand, which uses indirect adressing of word on the textstack
16:35<Eddi|zuHause>(one of the weirdest semantics of C)
16:35<andythenorth>frosch123: is the json a manifest?
16:35<andythenorth>or something else?
16:36<Eddi|zuHause>frosch123: how does that resolve this?
16:41<frosch123>you would be able to store 8 and 16 bit values without having to OR them
16:45<Zuu>frosch123: To close a coal mine, I should place a sign with 65536?
16:46<Eddi|zuHause>frosch123: but you would still have to keep track at which position in the stack you are
16:46<Eddi|zuHause>which defeats the point of a stack
16:47<Eddi|zuHause>which makes it not a stack at all, basically.
16:47<frosch123> <- information query callback with json result :p
16:47<frosch123>Zuu: yes
16:47<Zuu>It doesn't close for me :-/
16:47<frosch123>Zuu: it shoudl announce closure on next 1st
16:48<frosch123>and close on second next 1st
16:48<Zuu>It changes production to 40-50 tonnes a month.
16:49<frosch123>yes, the 0x10000 is a flag, production is still set
16:52<andythenorth>the start of a technology ladder :) :P
16:52<andythenorth>vehicles next :P
16:52<Zuu>I get no news message and no closure. :-/
16:54<frosch123>well, might check saturday
16:54<frosch123>i won't be here tomorrow
16:54<andythenorth>why is L 38 returning CB_RESULT_IND_PROD_CLOSE?
16:54<Zuu>no problem
16:55<frosch123>andythenorth: c&p :)
16:55<frosch123>should be NO_CHANGE
16:55<andythenorth>yup :)
16:56<andythenorth>the problem will just be a shift that is wrong or similar
16:57<andythenorth>Zuu: strictly, these industries should have been closing straight away, according to the paste :)
16:58<frosch123>only when the random change triggers
16:58<frosch123>which highlights a flaw of our current 'experimental branch'
16:58<frosch123>the random change resets the gs data :p
16:59<Zuu>As var 10 is zero there?
16:59-!-Wormnest [] has joined #openttd
17:01<frosch123>hmm, "json template" is no good google term
17:01<frosch123>it only gives results which use json to set template parameters
17:01<Zuu>So it should use some bit in var 10 to indicate it is a call from GS. and NewGRf only set permanent store if that bit is set. Can NewGRF do that?
17:01<frosch123>but none to output json :p
17:02<Zuu>Or we are just aware of it for now, and it will be fixed once GS get its own callback.
17:02<frosch123>Zuu: in theory yes, but if we care about that, we should rather add a new callback :p
17:02<Zuu>I think we just don't care for now.
17:02<frosch123>it's good enough for the experimental branch
17:02<Zuu>GS could spam the industries with updates to work around it. :-)
17:03<frosch123>hmm, "<" is no reserved character in json, right?
17:03<Zuu>as in literal strings?
17:03<frosch123>so, should template parameter be written like functions "PARAM(1)" or like c++ "<1>"
17:03<frosch123>'{ "Supports": ["GSProduction"], "Production": PARAM(1), "Technology": PARAM(2) }'
17:04<frosch123>'{ "Supports": ["GSProduction"], "Production": <1>, "Technology": <2>) }'
17:04<frosch123>which one is easier to process? :p
17:04<Zuu>The later is to me easier to read as human, but then I'm not trained in nml reading :-)
17:05-!-Nathan1852__ [] has joined #openttd
17:06<frosch123>well, night :)
17:06-!-frosch123 [] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
17:09*andythenorth must also to bed :)
17:09<Zuu>Reminds me that I saw a resturant called Golden Unicorn in Finland.
17:09<andythenorth>Unicorn Farm for FIRS
17:09<Zuu>bed sounds good
17:09<andythenorth>nice that this patch advances :)
17:09-!-andythenorth [] has quit [Quit: andythenorth]
17:12-!-Nathan1852_ [] has quit [Ping timeout: 480 seconds]
17:13-!-Wormnest [] has quit [Quit: Leaving]
17:14-!-Wolf03 [] has joined #openttd
17:14-!-Wolf01 is now known as Guest1180
17:14-!-Wolf03 is now known as Wolf01
17:20-!-Guest1180 [] has quit [Ping timeout: 480 seconds]
17:25-!-tokai|noir [] has quit [Quit: c('~' )o]
17:26-!-Zuu [] has quit [Quit: Leaving]
17:35-!-Eddi|zuHause2 [] has joined #openttd
17:41-!-Eddi|zuHause [] has quit [Ping timeout: 480 seconds]
17:48-!-Progman [] has quit [Remote host closed the connection]
17:54-!-sla_ro|master [slamaster@] has quit []
18:07-!-HerzogDeXtEr [] has quit [Read error: Connection reset by peer]
18:09-!-Biolunar [] has joined #openttd
18:18-!-HerzogDeXtEr [] has joined #openttd
18:24-!-Pikka [] has joined #openttd
18:33-!-ToBeFree [] has quit [Ping timeout: 480 seconds]
18:35-!-ToBeFree [] has joined #openttd
18:44-!-Eddi|zuHause2 is now known as Eddi|zuHause
18:50-!-tycoondemon [] has quit [Ping timeout: 480 seconds]
18:53-!-tycoondemon [] has joined #openttd
18:54-!-HerzogDeXtEr1 [] has joined #openttd
18:58-!-Biolunar [] has quit [Ping timeout: 480 seconds]
19:00-!-HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
19:01-!-tycoondemon [] has quit [Ping timeout: 480 seconds]
19:02-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
19:02-!-Nathan1852__ [] has quit [Ping timeout: 480 seconds]
19:04-!-HerzogDeXtEr1 [] has quit [Quit: Leaving.]
19:05-!-tycoondemon [] has joined #openttd
19:18-!-DDR [] has joined #openttd
19:32-!-wicope [] has quit [Read error: Connection reset by peer]
19:56-!-Hiddenfunstuff [] has quit [Quit: HydraIRC -> <- The professional IRC Client :D]
20:52-!-JezK [~jez@2407:7800:400:107f:3db5:daca:8457:e66a] has joined #openttd
21:01-!-DDR_ [] has joined #openttd
21:01-!-DDR [] has quit [Read error: Connection reset by peer]
21:25-!-glx [] has quit [Quit: Bye]
21:28-!-DDR_ [] has quit [Remote host closed the connection]
21:30-!-DDR [] has joined #openttd
22:07-!-Pikka [] has quit [Read error: Connection reset by peer]
22:20-!-DDR [] has quit [Read error: Connection reset by peer]
22:32-!-DDR [] has joined #openttd
22:37-!-DDR [] has quit [Read error: Connection reset by peer]
22:49-!-DDR [] has joined #openttd
23:23-!-DDR [] has quit [Quit: DDR is not Dance Dance Revolution]
23:24-!-DDR [] has joined #openttd
23:30-!-DDR [] has quit [Remote host closed the connection]
---Logclosed Fri Jul 24 00:00:22 2015