OpenTTD

Tasklist

FS#2071 - Improve tile's snowing

Attached to Project: OpenTTD
Opened by George (George) - Thursday, 12 June 2008, 13:42 GMT
Type Feature Request
Category Core
Status Assigned
Assigned To Zdeněk Sojka (SmatZ)
Operating System All
Severity Medium
Priority Normal
Reported Version 0.6.1
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 1
Private No

Details

Currently a tile is snowed according to the high of its' lowest corner. That makes a road on slopes look very ugly - the road is flat, but some parts are snowed (flat land tiles) and some are not (tiles on slopes). It would be nicer, if the snowing of tile would be defined according to its' highest corner.
This task depends upon

Comment by Zdeněk Sojka (SmatZ) - Thursday, 12 June 2008, 13:44 GMT
Is the way how railroad works with snow fine? (eg. is this what you mean?)
Comment by George (George) - Thursday, 12 June 2008, 14:54 GMT
Yes
Comment by George (George) - Thursday, 12 June 2008, 15:10 GMT
After some thinking...

Yes, but I want more. I want it to be applied to houses and industry tiles too.
So, the behaviour of railways is not absolutely correct. When I have a flat railway on slope it is snowed, but if it goes 1 level below, the sloped rail tile is not snowed. In my suggestion I suggest to have it snowed too.
/-------------
----/ ^
^ ^^|- this is snowed and should be.
| |- this part is not, but should be = the main idea of the change.
---- this part is not snowed.
Comment by George (George) - Thursday, 12 June 2008, 15:25 GMT
I want this tile to be snowed
Comment by Zdeněk Sojka (SmatZ) - Thursday, 12 June 2008, 15:31 GMT
Wouldn't this be better?
   snow.png (135.2 KiB)
Comment by George (George) - Thursday, 12 June 2008, 17:15 GMT
It is better, but it does not solve the problem in general. I was thinking about houses and industry tiles too.
Comment by frosch (frosch) - Thursday, 12 June 2008, 17:21 GMT
You can read the snow line height from variable 20, and you can read the house tile height from variable 62 (houses) resp. 60 (industries).
So you are free to customize.
Comment by George (George) - Thursday, 12 June 2008, 18:03 GMT
Yes, I can, but from my point of view the right way to check the snow is to read var 62 only
Like this
585 * 15 02 07 14 81 62 00 0A 0F 01 12 00 04 04 11 00
and because I can test one var, why should I test two? The better way is to have the right value in the var. Especially because this change should not affect existing GRFs (IMHO).
Comment by Zdeněk Sojka (SmatZ) - Thursday, 12 June 2008, 18:08 GMT
I agree tile height should be changed.
It is not fine that when you use autoslope, an industry tile may get under snow line.
Comment by frosch (frosch) - Thursday, 12 June 2008, 18:20 GMT
Ok, I thought you would follow SmatZ' example, and supply houses/industries with different graphics for different snow amounts :) (like first the garden, then the road, then the roofs).

About changing the current behaviour: IIRC the Alpine newgrf only allows farms below the snowline. When changing the offset they might get above it. Though changing the reference height from minimal tileheight to maximal tileheight should not be a problem. (esp. because of autoslope)
Comment by frosch (frosch) - Thursday, 12 June 2008, 18:27 GMT
Hmm, on the other hand one leave industries/houses as they are, and modify the clear tiles instead. (i.e. fully snowed starts one level above snowline)
Though the minimal->maximal change still holds.
Comment by George (George) - Thursday, 12 June 2008, 19:02 GMT
IMHO, one level objects are not affected. My request was only aimed to sloped tiles. I do not suggest to change snow line. I suggest to change the way to determinate the snowed/not snowed state for sloped tiles.

As for several snowed levels. The way I code my industries and houses is planned to support this feature and can be relative easy added.
But I have a question - how to check snow state of the tile. I do not like the idea to test the difference between the tile height and snow line height. I want to test the state only (the way I do now), so only the var like var 60 or 62

Loading...