Variables
A brief description of variables used in the Module System as quoted from Caba`drin's <An Introduction to Module System Syntax and Usage>.
Contents |
[edit] Local Variables
Local variables - ":variable" - variables declared with a : are local variables.
They only exist in the current tuple (code block) and cannot be referenced in other code blocks unless passed as script parameters. One should initialize them (to 0 or another suitable value) before they are used as they main contain a value already. They are enclosed with quotations " ". Ex: ":agent_id"
[edit] Global Variables
Global variables - "$variable" - variables declared with a $ are global variables.
They are available to be referenced in any part of the code, from any module_*, once they are defined. Their default value is 0. They are enclosed in quotations " ". Ex: "$g_talk_troop"
[edit] Registers
Registers - reg(#) OR reg# - are variables used by the engine to store bits of information temporarily.
They are global in scope, but may be accessed by a variety of different scripts for their duration and are then left for another bit of code to use them. In header_common, registers reg0 to reg65 are declared.
Detailed article here: Register
[edit] Strings
Strings - s# - are specific 'registers' used to hold a string, rather than an integer.
Strings not declared in module_strings (quick strings) begin with the @ symbol. In header_common strings s0 to s67 are declared.
Detailed article here: String
[edit] Positions
Positions - pos# - Unlike the previous two "registers", positions store more than one piece of information; each position stores X, Y, Z coordinates as well as rotations on each X, Y, and Z axis. In header_common positions pos0 to pos64 are declared, with pos64 beginning an unspecified range of positions used by siege towers (belfries).
[edit] Constants
Constants - constant - are constants that are declared in module_constants, maintain the numerical value assigned there, and cannot be altered save through editing module_constants. They can be called from any module_* file and any tuple. Constants are not enclosed with quotations.
[edit] Remarks
Local and global variables, as well as registers, are declared with the (assign, <variable_name>, <variable_value>), operation. The variable value field can be another variable name. Strings and positions have their own unique operations, as defined in header_operations