From 3c3576a224b92c703b4e8ea20008ac8a069980dd Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Tue, 20 Mar 2012 13:44:20 -0400 Subject: COMMON: Make Rect::center() work properly with odd dimensions --- common/rect.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'common') diff --git a/common/rect.h b/common/rect.h index 768d1ebbb9..50ef0201dd 100644 --- a/common/rect.h +++ b/common/rect.h @@ -244,11 +244,12 @@ struct Rect { /** * Create a rectangle around the given center. + * @note the center point is rounded up and left when given an odd width and height */ static Rect center(int16 cx, int16 cy, int16 w, int16 h) { - w /= 2; - h /= 2; - return Rect(cx - w, cy - h, cx + w, cy + h); + int dx = w / 2; + int dy = h / 2; + return Rect(cx - dx, cy - dy, cx + dx + (w & 1), cy + dy + (h & 1)); } }; -- cgit v1.2.3