<operator>var <gamevar> <value>
<operator>varvar <gamevar> <value>
Gamevar operators are commands that perform various mathematical and bitwise logical operations on gamevars. The first argument must be a writable gamevar and is taken as the destination as well and the first operand (2-address code).
setvar temp 1 // assigns a value of 1 to the gamevar temp. addvar temp 1 // adds 1 to temp, causing its value to become 2. mulvar temp 2 // multiplies temp by 2, causing its value to become 4.
||÷||division with rounding toward 0 for nonnegative dividends||Ensure that <value> does not equal 0 at any time. The rounding behavior is undefined for negative dividends.|
||modulo, remainder||Ensure that <value> does not equal 0 at any time; sign of the result is that of left hand side operand (dividend).|
||bitwise AND||The bits in the result are set only if they were set in both of the values being operated on. Ex. (all numbers are base-2): 01001010 AND 11110100 is 01000000|
||bitwise OR||The bits in the result are set only if they were set in either of the values being operated on. Ex.: 01001010 OR 11110100 is 11111110|
||bitwise XOR||The bits in the result are set if only one of the values being operated on has those bits set. Ex.: 01001010 XOR 11110100 is 10111110|
Commands with an additional "var" suffix take gamevars rather than constants or defined labels for their inputs. As an alternate short form, "varvar" can be dropped from these commands; for example ife serves an an alias for ifvarvare.