From 9b0973e25513b44562af27389463df305c358ae0 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Mon, 18 Jul 2022 00:25:49 -0400 Subject: [PATCH] Fix `vector` feature packing --- codegen/luau/runtime/numeric_v3.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/codegen/luau/runtime/numeric_v3.lua b/codegen/luau/runtime/numeric_v3.lua index 0f51d09..faa2ea0 100644 --- a/codegen/luau/runtime/numeric_v3.lua +++ b/codegen/luau/runtime/numeric_v3.lua @@ -28,18 +28,18 @@ local constructor = Vector3.new function Numeric.from_u32(data_1, data_2) local x = bit_and(data_1, 0x3FFFFF) - local y = bit_or(bit_and(data_1, 0xFFC00000), bit_and(data_2, 0xFFF)) - local z = bit_extract(data_2, 12, 20) + local y = bit_and(data_2, 0x3FFFFF) + local z = bit_replace(bit_rshift(data_1, 22), bit_rshift(data_2, 22), 10, 10) return constructor(x, y, z) end local function load_d1(value) - return bit_or(bit_and(value.X, 0x3FFFFF), bit_and(value.Y, 0xFFC00000)) + return bit_replace(bit_and(value.X, 0x3FFFFF), value.Z, 22, 10) end local function load_d2(value) - return bit_replace(bit_and(value.Y, 0xFFF), value.Z, 12, 20) + return bit_replace(bit_and(value.Y, 0x3FFFFF), bit_rshift(value.Z, 10), 22, 10) end function Numeric.into_u32(value)