Skip to content

Commit 7ffbf0f

Browse files
committed
change casts to long
1 parent e278277 commit 7ffbf0f

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/main/java/org/meteordev/starscript/Starscript.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,19 @@ public Section run(Script script, StringBuilder sb) {
5050
case Modulo: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(a.getNumber() % b.getNumber())); else error("Can only modulo 2 numbers."); break; }
5151
case Power: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(Math.pow(a.getNumber(), b.getNumber()))); else error("Can only power 2 numbers."); break; }
5252

53-
case BitwiseAnd: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(((int) a.getNumber()) & ((int) b.getNumber()))); else error("This operation requires 2 numbers."); break; }
54-
case BitwiseOr: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(((int) a.getNumber()) | ((int) b.getNumber()))); else error("This operation requires 2 numbers."); break; }
55-
case BitwiseXor: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(((int) a.getNumber()) ^ ((int) b.getNumber()))); else error("This operation requires 2 numbers."); break; }
56-
case LeftShift: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(((int) a.getNumber()) << ((int) b.getNumber()))); else error("This operation requires 2 numbers."); break; }
57-
case RightShift: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(((int) a.getNumber()) >> ((int) b.getNumber()))); else error("This operation requires 2 numbers."); break; }
58-
case UnsignedRightShift: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(((int) a.getNumber()) >>> ((int) b.getNumber()))); else error("This operation requires 2 numbers."); break; }
53+
case BitwiseAnd: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number((long) a.getNumber() & (long) b.getNumber())); else error("This operation requires 2 numbers."); break; }
54+
case BitwiseOr: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number((long) a.getNumber() | (long) b.getNumber())); else error("This operation requires 2 numbers."); break; }
55+
case BitwiseXor: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number((long) a.getNumber() ^ (long) b.getNumber())); else error("This operation requires 2 numbers."); break; }
56+
case LeftShift: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number((long) a.getNumber() << (long) b.getNumber())); else error("This operation requires 2 numbers."); break; }
57+
case RightShift: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number((long) a.getNumber() >> (long) b.getNumber())); else error("This operation requires 2 numbers."); break; }
58+
case UnsignedRightShift: { Value b = pop(); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number((long) a.getNumber() >>> (long) b.getNumber())); else error("This operation requires 2 numbers."); break; }
5959

6060
case AddConstant: { Value b = script.constants.get(script.code[ip++] & 0xFF); Value a = pop(); if (a.isNumber() && b.isNumber()) push(Value.number(a.getNumber() + b.getNumber())); else if (a.isString()) push(Value.string(a.getString() + b.toString())); else error("Can only add 2 numbers or 1 string and other value."); break; }
6161

6262
case Pop: pop(); break;
6363
case Not: push(Value.bool(!pop().isTruthy())); break;
6464
case Negate: { Value a = pop(); if (a.isNumber()) push(Value.number(-a.getNumber())); else error("This operation requires a number."); break; }
65-
case BitwiseNot: { Value a = pop(); if (a.isNumber()) push(Value.number(~((int) a.getNumber()))); else error("This operation requires a number."); break; }
65+
case BitwiseNot: { Value a = pop(); if (a.isNumber()) push(Value.number(~((long) a.getNumber()))); else error("This operation requires a number."); break; }
6666

6767
case Equals: push(Value.bool(pop().equals(pop()))); break;
6868
case NotEquals: push(Value.bool(!pop().equals(pop()))); break;

0 commit comments

Comments
 (0)