Add transperency when units are behind

This commit is contained in:
2024-01-15 13:16:24 +01:00
parent 0f33ed9fc0
commit ac7525c42a
5 changed files with 52 additions and 4 deletions

View File

@@ -465,6 +465,27 @@ void bzTileMapDrawCollisions(BzTileMap *map) {
}
}
void bzTileMapClearCollisions(BzTileMap *map) {
BZ_ASSERT(map->collisionMap);
for (i32 y = 0; y < map->width; y++) {
for (i32 x = 0; x < map->height; x++) {
i32 idxOffset = y * map->width + x;
u8 *cell = map->collisionMap + idxOffset;
*cell = 0;
}
}
}
void bzTileMapClearCollisionLayer(BzTileMap *map, i32 layer) {
BZ_ASSERT(map->collisionMap);
BZ_ASSERT(layer >= 0 && layer < 8);
for (i32 y = 0; y < map->width; y++) {
for (i32 x = 0; x < map->height; x++) {
i32 idxOffset = y * map->width + x;
u8 *cell = map->collisionMap + idxOffset;
*cell &= ~(1 << layer);
}
}
}
bool bzTileMapHasAnyCollision(BzTileMap *map, i32 x, i32 y) {
if (!map->collisionMap) return false;
i32 idx = y * map->width + x;