Difference between revisions of "Gamevar operators" - EDukeWiki

# Difference between revisions of "Gamevar operators"

From EDukeWiki

Revision as of 13:22, 18 April 2012 (view source) Rasmusthorup (talk | contribs) ← Older edit | Revision as of 15:42, 18 April 2012 (view source) TX (talk | contribs) m (Reverted edits by Rasmusthorup (talk) to last revision by Helixhorned) Newer edit →
Line 6: | Line 6:
| For example: |  | For example:
− | setvar temp 3 // assigns a value of 1 to the gamevar ''temp''. Am i reading this wrong? Rasmusthorup. | + | setvar temp 3 // assigns a value of 1 to the gamevar ''temp''.
| addvar temp 1 // adds 1 to ''temp'', causing its value to become 2. |  | addvar temp 1 // adds 1 to ''temp'', causing its value to become 2.

## Revision as of 15:42, 18 April 2012

<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).

For example:

    setvar temp 3 // 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.

Operator | C/C++ | Math | Description | Notes |
--- | --- | --- | --- | --- | ---
set | `=` | = | assignment
add | `+` | + | addition |
sub | `-` | – | subtraction |
mul | `*` | × | multiplication |
div | `/` | ÷ | division with rounding toward 0 | Ensure that <value> does not equal 0 at any time.
mod | `%` |  | modulo, remainder | Ensure that <value> does not equal 0 at any time; It is undefined whether the sign of the result follows the divisor or the dividend (for now). sign of the result is that of left hand side operand
and | `&` |  | bitwise AND | The bits in the result are set only if they were set in both of the values being operated on. Ex.: 01001010 AND 11110100 is 01000000
or | `|` |  | 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
xor | `^` |  | 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.

Retrieved from "http://wiki.eduke32.com/w/index.php?title=Gamevar_operators&oldid=10709"
Category:

- Gamevar manipulation