aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support/rect.h
diff options
context:
space:
mode:
authorPaul Gilbert2017-08-08 22:24:22 -0400
committerPaul Gilbert2017-08-08 22:24:22 -0400
commit660f7bf11479222689cf77060077fe47d65a465e (patch)
tree48798a2d991a3d9bb533efeb42ca41d9b485d5f1 /engines/titanic/support/rect.h
parent6fac0ace2c844aa68c2482362021981ed1db931b (diff)
downloadscummvm-rg350-660f7bf11479222689cf77060077fe47d65a465e.tar.gz
scummvm-rg350-660f7bf11479222689cf77060077fe47d65a465e.tar.bz2
scummvm-rg350-660f7bf11479222689cf77060077fe47d65a465e.zip
TITANIC: Further improvements to arrow key movement
The movement code, when deciding on an item or link that matches the desired direction, will check five points on the object/links area.. center, left edge, right edge, top edge, and bottom edge. For each of these, it makes sure that at that point, clicking will actually get passed to it. Otherwise, it moves onto one of the other edges. This helps avoid issues where links weren't working because standard scene objects were partially obscuring them.
Diffstat (limited to 'engines/titanic/support/rect.h')
-rw-r--r--engines/titanic/support/rect.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/titanic/support/rect.h b/engines/titanic/support/rect.h
index 1661711870..eca256df56 100644
--- a/engines/titanic/support/rect.h
+++ b/engines/titanic/support/rect.h
@@ -27,6 +27,10 @@
namespace Titanic {
+enum Quadrant {
+ Q_CENTER = 0, Q_LEFT, Q_RIGHT, Q_TOP, Q_BOTTOM
+};
+
typedef Common::Point Point;
class Rect : public Common::Rect {
@@ -54,6 +58,11 @@ public:
* Constrains/clips to the intersection area of the given rect
*/
void constrain(const Rect &r);
+
+ /**
+ * Returns a center point for a given edge or center of the rect
+ */
+ Point getPoint(Quadrant quadrant);
};
} // End of namespace Titanic