0

Merge PR 1704 from dgrimreaper

This commit is contained in:
Nicolas F
2020-02-13 17:32:30 +01:00

View File

@@ -63,6 +63,8 @@ static bool
cave_hidden(void* data, RenderState* state, int32_t x, int32_t y, int32_t z) { cave_hidden(void* data, RenderState* state, int32_t x, int32_t y, int32_t z) {
RenderPrimitiveCave* self; RenderPrimitiveCave* self;
int32_t dy = 0; int32_t dy = 0;
uint16_t blockID;
uint32_t blockUpID;
self = (RenderPrimitiveCave*)data; self = (RenderPrimitiveCave*)data;
/* check if the block is touching skylight */ /* check if the block is touching skylight */
@@ -78,15 +80,17 @@ cave_hidden(void* data, RenderState* state, int32_t x, int32_t y, int32_t z) {
* at this point of the code the block has no skylight * at this point of the code the block has no skylight
* but a deep sea can be completely dark * but a deep sea can be completely dark
*/ */
if ((getArrayShort3D(state->blocks, x, y, z) == 9) ||
(get_data(state, BLOCKS, x, y + 1, z) == 9)) {
blockID = getArrayShort3D(state->blocks, x, y, z);
blockUpID = get_data(state, BLOCKS, x, y + 1, z);
if (blockID == 9 || blockID == 8 || blockUpID == 9 || blockUpID == 8) {
for (dy = y + 1; dy < (SECTIONS_PER_CHUNK - state->chunky) * 16; dy++) { for (dy = y + 1; dy < (SECTIONS_PER_CHUNK - state->chunky) * 16; dy++) {
/* go up and check for skylight */ /* go up and check for skylight */
if (get_data(state, SKYLIGHT, x, dy, z) != 0) { if (get_data(state, SKYLIGHT, x, dy, z) != 0) {
return true; return true;
} }
if (get_data(state, BLOCKS, x, dy, z) != 9) { blockUpID = get_data(state, BLOCKS, x, dy, z);
if (blockUpID != 8 && blockUpID != 9) {
/* we are out of the water! and there's no skylight /* we are out of the water! and there's no skylight
* , i.e. is a cave lake or something similar */ * , i.e. is a cave lake or something similar */
break; break;