summaryrefslogtreecommitdiff
path: root/src/viewport.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-01-02 22:42:05 +0000
committerrubidium <rubidium@openttd.org>2009-01-02 22:42:05 +0000
commit1357b0a4c2c9cb2cf6d81a2cbc3e851d25c6c735 (patch)
treef69215ca7fcf8c6741e37e05e4a9c67f0e8e201a /src/viewport.cpp
parent2086fbcf174b20758cbd9ebb94b3985e2b25ee29 (diff)
downloadopenttd-1357b0a4c2c9cb2cf6d81a2cbc3e851d25c6c735.tar.xz
(svn r14789) -Feature: allow scrolling with the left mouse button pressed (if enabled). Primarily useful for systems with touch screen (aapo)
Diffstat (limited to 'src/viewport.cpp')
-rw-r--r--src/viewport.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/viewport.cpp b/src/viewport.cpp
index a35c00fe4..a6cacd24b 100644
--- a/src/viewport.cpp
+++ b/src/viewport.cpp
@@ -1986,11 +1986,12 @@ static bool CheckClickOnWaypoint(const ViewPort *vp, int x, int y)
}
-static void CheckClickOnLandscape(const ViewPort *vp, int x, int y)
+static bool CheckClickOnLandscape(const ViewPort *vp, int x, int y)
{
Point pt = TranslateXYToTileCoord(vp, x, y);
- if (pt.x != -1) ClickTile(TileVirtXY(pt.x, pt.y));
+ if (pt.x != -1) return ClickTile(TileVirtXY(pt.x, pt.y));
+ return true;
}
@@ -2018,21 +2019,23 @@ static OnVehicleClickProc* const _on_vehicle_click_proc[] = {
Nop // Disaster vehicles
};
-void HandleViewportClicked(const ViewPort *vp, int x, int y)
+bool HandleViewportClicked(const ViewPort *vp, int x, int y)
{
const Vehicle *v;
- if (CheckClickOnTown(vp, x, y)) return;
- if (CheckClickOnStation(vp, x, y)) return;
- if (CheckClickOnSign(vp, x, y)) return;
- if (CheckClickOnWaypoint(vp, x, y)) return;
+ if (CheckClickOnTown(vp, x, y)) return true;
+ if (CheckClickOnStation(vp, x, y)) return true;
+ if (CheckClickOnSign(vp, x, y)) return true;
+ if (CheckClickOnWaypoint(vp, x, y)) return true;
CheckClickOnLandscape(vp, x, y);
v = CheckClickOnVehicle(vp, x, y);
if (v != NULL) {
DEBUG(misc, 2, "Vehicle %d (index %d) at %p", v->unitnumber, v->index, v);
_on_vehicle_click_proc[v->type](v);
+ return true;
}
+ return CheckClickOnLandscape(vp, x, y);
}
Vehicle *CheckMouseOverVehicle()