Return size 0 for NULL array, correct for min/max in spatial grid
This commit is contained in:
@@ -28,6 +28,7 @@ void _bzArrayClear(void *arr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
i32 _bzArraySize(void *arr) {
|
i32 _bzArraySize(void *arr) {
|
||||||
|
if (arr == NULL) return 0;
|
||||||
return ARRAY_HEAD(arr)->size;
|
return ARRAY_HEAD(arr)->size;
|
||||||
}
|
}
|
||||||
i32 _bzArrayCapacity(void *arr) {
|
i32 _bzArrayCapacity(void *arr) {
|
||||||
|
|||||||
@@ -104,6 +104,17 @@ static BzSpatialGridIndex calculateGridIndex(BzSpatialGrid *grid, f32 posX, f32
|
|||||||
if (index.minY < 0) index.minY = 0;
|
if (index.minY < 0) index.minY = 0;
|
||||||
if (index.maxX >= grid->width) index.maxX = grid->width - 1;
|
if (index.maxX >= grid->width) index.maxX = grid->width - 1;
|
||||||
if (index.maxY >= grid->height) index.maxY = grid->height - 1;
|
if (index.maxY >= grid->height) index.maxY = grid->height - 1;
|
||||||
|
|
||||||
|
if (index.minX > index.maxX) {
|
||||||
|
i32 tmp = index.minX;
|
||||||
|
index.minX = index.maxX;
|
||||||
|
index.maxX = tmp;
|
||||||
|
}
|
||||||
|
if (index.minY > index.maxY) {
|
||||||
|
i32 tmp = index.minY;
|
||||||
|
index.minY = index.maxY;
|
||||||
|
index.maxX = tmp;
|
||||||
|
}
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user