diff options
Diffstat (limited to 'common/rect.h')
-rw-r--r-- | common/rect.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/common/rect.h b/common/rect.h index 1106ec1714..e48ca53667 100644 --- a/common/rect.h +++ b/common/rect.h @@ -258,11 +258,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)); } }; |