]> git.sur5r.net Git - cc65/commitdiff
Made sure the bounding box coordinates stay in reasonable ranges.
authorol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 27 Sep 2009 22:33:12 +0000 (22:33 +0000)
committerol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 27 Sep 2009 22:33:12 +0000 (22:33 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4250 b7a2c559-68d2-44c3-8de9-860c34a00d81

samples/mousedemo.c

index 1bea09a0deed982525c24b520c0fc8a1afee3677..effc667160ea9f0e43bb7816e0e82ba222f35ab1 100644 (file)
@@ -57,6 +57,10 @@ static const unsigned char MouseSprite[64] = {
 #endif  /* __C64__ or __C128__ */
 
 
+#define max(a,b)  (((a) > (b)) ? (a) : (b))\r
+#define min(a,b)  (((a) < (b)) ? (a) : (b))\r
+
+
 
 static void CheckError (const char* S, unsigned char Error)
 {
@@ -182,10 +186,10 @@ int main (void)
                         mouse_setbox (&full_box);
                     } else {
                         Jailed = 1;
-                        small_box.minx = info.pos.x - 10;
-                        small_box.miny = info.pos.y - 10;
-                        small_box.maxx = info.pos.x + 10;
-                        small_box.maxy = info.pos.y + 10;
+                        small_box.minx = max (info.pos.x - 10, full_box.minx);
+                        small_box.miny = max (info.pos.y - 10, full_box.miny);
+                        small_box.maxx = min (info.pos.x + 10, full_box.maxx);
+                        small_box.maxy = min (info.pos.y + 10, full_box.maxy);
                         mouse_setbox (&small_box);
                     }
                     ShowState (Jailed, Invisible);