From 1a07a34dc03de7220c8924cd05ea47201de9ab55 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 12 Jan 2010 18:34:06 +0000 Subject: [PATCH] Add a couple more checks to the 3d collision detection, without which a click miles above the invisible RH surface of a tower would sometimes select that tower. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@8833 cda61777-01e9-0310-a592-d414129be87e --- towers.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/towers.c b/towers.c index f06f2ad..c3372a3 100644 --- a/towers.c +++ b/towers.c @@ -1290,10 +1290,11 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, (x - ox >= 0 && x - ox < TILESIZE && y - oy >= 0 && y - oy < TILESIZE) || /* in triangle between top-left corners? */ - (ox > bx && x >= bx && x <= ox && + (ox > bx && x >= bx && x <= ox && y <= by && (by-y) * (ox-bx) <= (by-oy) * (x-bx)) || /* in triangle between bottom-right corners? */ (ox > bx && x >= bx+TILESIZE && x <= ox+TILESIZE && + y >= oy+TILESIZE && (by-y+TILESIZE)*(ox-bx) >= (by-oy)*(x-bx-TILESIZE))) { tx = cx; ty = cy; -- 2.11.0