mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-04 05:15:21 +00:00
(svn r19103) -Codechange: Use px/py for pixel coordinates in PixelToTile(), as promised by the documentation.
This commit is contained in:
parent
d403d82617
commit
47295bb8b9
@ -563,26 +563,26 @@ class SmallMapWindow : public Window {
|
||||
* @return Tile being displayed at the given position relative to #scroll_x and #scroll_y.
|
||||
* @note The #subscroll offset is already accounted for.
|
||||
*/
|
||||
FORCEINLINE Point PixelToTile(int dx, int dy, int *sub) const
|
||||
FORCEINLINE Point PixelToTile(int px, int py, int *sub) const
|
||||
{
|
||||
dx += this->subscroll; // Total horizontal offset.
|
||||
px += this->subscroll; // Total horizontal offset.
|
||||
|
||||
/* For each two rows down, add a x and a y tile, and
|
||||
* For each four pixels to the right, move a tile to the right. */
|
||||
Point pt = {((dy >> 1) - (dx >> 2)) * this->zoom, ((dy >> 1) + (dx >> 2)) * this->zoom};
|
||||
dx &= 3;
|
||||
Point pt = {((py >> 1) - (px >> 2)) * this->zoom, ((py >> 1) + (px >> 2)) * this->zoom};
|
||||
px &= 3;
|
||||
|
||||
if (dy & 1) { // Odd number of rows, handle the 2 pixel shift.
|
||||
if (dx < 2) {
|
||||
if (py & 1) { // Odd number of rows, handle the 2 pixel shift.
|
||||
if (px < 2) {
|
||||
pt.x += this->zoom;
|
||||
dx += 2;
|
||||
px += 2;
|
||||
} else {
|
||||
pt.y += this->zoom;
|
||||
dx -= 2;
|
||||
px -= 2;
|
||||
}
|
||||
}
|
||||
|
||||
*sub = dx;
|
||||
*sub = px;
|
||||
return pt;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user