From 72f1b115451858c81d7b55cf8b9b5eb1de00d56d Mon Sep 17 00:00:00 2001
From: "ol.sc"
Date: Sun, 27 Sep 2009 22:33:12 +0000
Subject: [PATCH] Made sure the bounding box coordinates stay in reasonable
ranges.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4250 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
samples/mousedemo.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/samples/mousedemo.c b/samples/mousedemo.c
index 1bea09a0d..effc66716 100644
--- a/samples/mousedemo.c
+++ b/samples/mousedemo.c
@@ -57,6 +57,10 @@ static const unsigned char MouseSprite[64] = {
#endif /* __C64__ or __C128__ */
+#define max(a,b) (((a) > (b)) ? (a) : (b))
+#define min(a,b) (((a) < (b)) ? (a) : (b))
+
+
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);
--
2.39.5