A constant is an identifier with a predefined value. Contrary to a variable the value of the constant can not be changed in run-time. In compile-time the constant gets replaced with the value associated with it. The value of the constant can be numeric (numbers, model names or labels) and string (string literals), and contain an expression.
Constants are declared either statically or dynamically. Each edit mode can load static constant definitions from a file using the
<constants> parameter in the
modes.xml. Dynamic declarations get created in the script code with the syntax outlined below.
To declare a new constant in the code use the
<constant name> = <constant value>
A constant name is any allowed identifier (a combination of letters, numbers and
_). There are names reserved by the compiler that can not be used, such as
And, etc (see
A constant value might be a number (also a model identifier or a label); a string literal; a variable (also a class property); another constant.
var$PLAYER_CHAR: PlayerendconstMoneyRequired = 30PlayerMoney = $PLAYER_CHAR.MoneyendifPlayerMoney > MoneyRequiredthenPlayerMoney += -1end
During compilation the constant
MoneyRequired gets replaced with the number
When the Language service is enabled, a list of constants gets displayed after pressing
You can use constants anywhere except the case:
constVarName = $VarIndexName = 25endVarName[IndexName] = 0
To compile such expression, you must write the opcode, for example:
0004: VarName[IndexName] = 0
Also there are some limitations with using an expression as the constant value.