diff --git a/overviewer_core/src/overviewer.h b/overviewer_core/src/overviewer.h index e20c15f..75d2894 100644 --- a/overviewer_core/src/overviewer.h +++ b/overviewer_core/src/overviewer.h @@ -147,6 +147,7 @@ block_has_property(unsigned short b, BlockProperty prop) { return block_properties[b] & (1 << prop); } #define is_transparent(b) block_has_property((b), TRANSPARENT) +#define is_known_transparent(b) block_has_property((b), TRANSPARENT) && block_has_property((b), KNOWN) /* helper for indexing section data possibly across section boundaries */ typedef enum diff --git a/overviewer_core/src/primitives/cave.c b/overviewer_core/src/primitives/cave.c index 064f498..c89ccfc 100644 --- a/overviewer_core/src/primitives/cave.c +++ b/overviewer_core/src/primitives/cave.c @@ -43,9 +43,9 @@ cave_occluded(void *data, RenderState *state, int x, int y, int z) { /* check for normal occlusion */ /* use ajacent chunks, if not you get blocks spreaded in chunk edges */ - if (!is_transparent(get_data(state, BLOCKS, x-1, y, z)) && - !is_transparent(get_data(state, BLOCKS, x, y, z+1)) && - !is_transparent(get_data(state, BLOCKS, x, y+1, z))) { + if (!is_known_transparent(get_data(state, BLOCKS, x-1, y, z)) && + !is_known_transparent(get_data(state, BLOCKS, x, y, z+1)) && + !is_known_transparent(get_data(state, BLOCKS, x, y+1, z))) { return 1; }