Changeset - r21983:2ba520f70fbd
[Not reviewed]
master
0 1 0
frosch - 10 years ago 2015-02-06 21:56:50
frosch@openttd.org
(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.
1 file changed with 9 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/newgrf.cpp
Show inline comments
 
@@ -3471,6 +3471,15 @@ static ChangeInfoResult IndustriesChange
 
							} 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;
 
							}
 
						}
 

	
0 comments (0 inline, 0 general)