mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-13 07:10:57 +00:00
(svn r27138) -Fix: [NewGRF] Negative positions in industry layouts were interpreted incorrectly; however since the wrong behaviour is saner, define as the correct behaviour for GRFv8.
This commit is contained in:
parent
4846c7ed6b
commit
c655847235
@ -3471,6 +3471,15 @@ static ChangeInfoResult IndustriesChangeInfo(uint indid, int numinfo, int prop,
|
||||
} else if (itt[k].gfx == 0xFF) {
|
||||
itt[k].ti.x = (int8)GB(itt[k].ti.x, 0, 8);
|
||||
itt[k].ti.y = (int8)GB(itt[k].ti.y, 0, 8);
|
||||
|
||||
/* When there were only 256x256 maps, TileIndex was a uint16 and
|
||||
* itt[k].ti was just a TileIndexDiff that was added to it.
|
||||
* As such negative "x" values were shifted into the "y" position.
|
||||
* x = -1, y = 1 -> x = 255, y = 0
|
||||
* Since GRF version 8 the position is interpreted as pair of independent int8.
|
||||
* For GRF version < 8 we need to emulate the old shifting behaviour.
|
||||
*/
|
||||
if (_cur.grffile->grf_version < 8 && itt[k].ti.x < 0) itt[k].ti.y += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user