summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blueprintcompiler/typelib.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/blueprintcompiler/typelib.py b/blueprintcompiler/typelib.py
index a42ab3a..7b186f7 100644
--- a/blueprintcompiler/typelib.py
+++ b/blueprintcompiler/typelib.py
@@ -64,11 +64,11 @@ class Field:
if not mask or sys.byteorder == "little":
self._shift = shift
elif self._type == "u8" or self._type == "i8":
- self._shift = 7 - shift
+ self._shift = 8 - (shift + mask)
elif self._type == "u16" or self._type == "i16":
- self._shift = 15 - shift
+ self._shift = 16 - (shift + mask)
else:
- self._shift = 31 - shift
+ self._shift = 32 - (shift + mask)
self._mask = (1 << mask) - 1 if mask else None
self._name = f"{offset}__{type}__{shift}__{mask}"