From 389cace4c7daea3b259b4def7bfbadc5fb8d0643 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 8 Jun 2022 10:39:09 -0400 Subject: [PATCH] Fixed #6897 --- .../main/java/mindustry/annotations/impl/StructProcess.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/annotations/src/main/java/mindustry/annotations/impl/StructProcess.java b/annotations/src/main/java/mindustry/annotations/impl/StructProcess.java index bb4540adbd..28a1c4b3b9 100644 --- a/annotations/src/main/java/mindustry/annotations/impl/StructProcess.java +++ b/annotations/src/main/java/mindustry/annotations/impl/StructProcess.java @@ -110,12 +110,12 @@ public class StructProcess extends BaseProcessor{ cons.append(" | (").append("(").append(structType).append(")").append("Float.floatToIntBits(").append(varName).append(") << ").append(offset).append("L)"); //floats: need conversion - setter.addStatement("return ($T)(($L & $L) | (($T)Float.floatToIntBits(value) << $LL))", structType, structParam, bitString(offset, size, structTotalSize), structType, offset); + setter.addStatement("return ($T)(($L & (~$L)) | (($T)Float.floatToIntBits(value) << $LL))", structType, structParam, bitString(offset, size, structTotalSize), structType, offset); }else{ cons.append(" | (((").append(structType).append(")").append(varName).append(" << ").append(offset).append("L)").append(" & ").append(bitString(offset, size, structTotalSize)).append(")"); //bytes, shorts, chars, ints - setter.addStatement("return ($T)(($L & $L) | (($T)value << $LL))", structType, structParam, bitString(offset, size, structTotalSize), structType, offset); + setter.addStatement("return ($T)(($L & (~$L)) | (($T)value << $LL))", structType, structParam, bitString(offset, size, structTotalSize), structType, offset); } doc.append("
").append(varName).append(" [").append(offset).append("..").append(size + offset).append("]\n");