From 7efa37029bd5c2a9fa056f2c9a5ef3855e578a30 Mon Sep 17 00:00:00 2001 From: IntegratedQuantum Date: Fri, 31 Jan 2025 21:42:07 +0100 Subject: [PATCH] Overwrite opaqueInLod specifier for Ore overlay textures. fixes #987 --- src/models.zig | 6 +++++- src/rotation.zig | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/models.zig b/src/models.zig index 7aa1b922d..e7f350f2f 100644 --- a/src/models.zig +++ b/src/models.zig @@ -430,7 +430,11 @@ fn addQuad(info_: QuadInfo) error{Degenerate}!u16 { } if(cornerEqualities >= 2) return error.Degenerate; // One corner equality is fine, since then the quad degenerates to a triangle, which has a non-zero area. const index: u16 = @intCast(quads.items.len); - info.opaqueInLod = @intFromBool(Model.getFaceNeighbor(&info) != null); + if(info.opaqueInLod == 2) { + info.opaqueInLod = 0; + } else { + info.opaqueInLod = @intFromBool(Model.getFaceNeighbor(&info) != null); + } quads.append(info); quadDeduplication.put(std.mem.toBytes(info), index) catch unreachable; diff --git a/src/rotation.zig b/src/rotation.zig index 8d68c77b6..1e7aa6d01 100644 --- a/src/rotation.zig +++ b/src/rotation.zig @@ -975,6 +975,7 @@ pub const RotationModes = struct { for(0..len) |i| { quadList.append(quadList.items[i]); quadList.items[i + len].textureSlot += 16; + quadList.items[i].opaqueInLod = 2; } const modelIndex = main.models.Model.init(quadList.items); modelCache = modelIndex;