summaryrefslogtreecommitdiff
path: root/src/tilemap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tilemap.c')
-rw-r--r--src/tilemap.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/tilemap.c b/src/tilemap.c
index ea53e2f..e7ee1d4 100644
--- a/src/tilemap.c
+++ b/src/tilemap.c
@@ -71,13 +71,17 @@ collision_T tilemap_area(struct tilemap *tilemap, int x1, int y1, int x2, int y2
if (x1 < 0) {
x1 = 0;
}
- if (x2 >= tilemap->width) {
+ if (x2 < 0) {
+ x2 = 0;
+ } else if (x2 >= tilemap->width) {
x2 = tilemap->width - 1;
}
if (y1 < 0) {
y1 = 0;
}
- if (y2 >= tilemap->height) {
+ if (y2 < 0) { // for some reason you can bonk your head on nothing without this
+ y2 = 0;
+ } else if (y2 >= tilemap->height) {
y2 = tilemap->height - 1;
}
return tilemap_area_raw(tilemap, x1, y1, x2, y2);