Browse Source

Fix: vm (mod)

AnnulusGames 1 year ago
parent
commit
92753cc68a
1 changed files with 6 additions and 1 deletions
  1. 6 1
      src/Lua/Runtime/LuaVirtualMachine.cs

+ 6 - 1
src/Lua/Runtime/LuaVirtualMachine.cs

@@ -281,7 +281,12 @@ public static partial class LuaVirtualMachine
 
                             if (vb.TryRead<double>(out var valueB) && vc.TryRead<double>(out var valueC))
                             {
-                                stack.UnsafeGet(RA) = valueB % valueC;
+                                var mod = valueB % valueC;
+                                if ((valueC > 0 && mod < 0) || (valueC < 0 && mod > 0))
+                                {
+                                    mod += valueC;
+                                }
+                                stack.UnsafeGet(RA) = mod;
                             }
                             else if (vb.TryGetMetamethod(state, Metamethods.Mod, out var metamethod) || vc.TryGetMetamethod(state, Metamethods.Mod, out metamethod))
                             {