1
0
Fork 0

(svn r22286) -Fix: [NewGRF] the c and p parts of station vars 40, 41 and 49 were incorrect for large stations

release/1.2
yexo 2011-04-01 19:55:56 +00:00
parent d16ca32815
commit a980319801
1 changed files with 8 additions and 11 deletions

View File

@ -110,24 +110,21 @@ uint32 GetPlatformInfo(Axis axis, byte tile, int platforms, int length, int x, i
Swap(x, y); Swap(x, y);
} }
/* Limit our sizes to 4 bits */
platforms = min(15, platforms);
length = min(15, length);
x = min(15, x);
y = min(15, y);
if (centred) { if (centred) {
x -= platforms / 2; x -= platforms / 2;
y -= length / 2; y -= length / 2;
x = Clamp(x, -8, 7);
y = Clamp(x, -8, 7);
SB(retval, 0, 4, y & 0xF); SB(retval, 0, 4, y & 0xF);
SB(retval, 4, 4, x & 0xF); SB(retval, 4, 4, x & 0xF);
} else { } else {
SB(retval, 0, 4, y); SB(retval, 0, 4, min(15, y));
SB(retval, 4, 4, length - y - 1); SB(retval, 4, 4, min(15, length - y - 1));
SB(retval, 8, 4, x); SB(retval, 8, 4, min(15, x));
SB(retval, 12, 4, platforms - x - 1); SB(retval, 12, 4, min(15, platforms - x - 1));
} }
SB(retval, 16, 4, length); SB(retval, 16, 4, min(15, length));
SB(retval, 20, 4, platforms); SB(retval, 20, 4, min(15, platforms));
SB(retval, 24, 4, tile); SB(retval, 24, 4, tile);
return retval; return retval;