Category:Gamevar manipulation
Definition
gamevar <varname> <value> <flags>
var <varname> <value> <flags>
A gamevar is a variable that can be used to store numerical data which can then be referenced between actors, states and events. var is hereby semantically equivalent to gamevar.
The gamevar's flags define a bitmap that determines how the variable is treated by the game. For instance, a gamevar with flags of 0 is known as a global variable. A global variable exists once in the code, and any time a global variable is set, the new value is seen by all actors and events. A gamevar with flag bit 1 set is a per-player variable, which exists once for each player in the game. A gamevar with flag bit 2 set is a per-actor variable, which exists as many times in the code as there are sprites in the map. This means that each sprite has its own copy of a per-actor variable stored in memory. Note that a gamevar can only be defined as either global, per-player, or per-actor, but not as a combination thereof.
Gamevars are stored as signed 32-bit integers and therefore have a value range of -2.147.483.648 (-231) to 2.147.483.647 (231-1). Going above and below this range causes the value to overflow and underflow respectively.
Note that it is possible to omit the <value> and <flags> parameters entirely to define a global variable with an initial value of 0, with no other flags set. Example:
var TEMP1
It is also possible to chain flags separately at the end of the gamevar definition, instead of compiling them into a single value, as follows:
var TEMP2 10 1 4096 // This defines a per-player (1), read-only (4096) variable with initial value 10.
The following pages contain information on basic gamevar operations as well as conditional statements:
Gamevar Flags
The following table shows all currently defined gamevar flags:
Name | Number | Description | Page where such variables should be listed |
---|---|---|---|
GAMEVAR_FLAG_GLOBAL | 0 | global variable; this is the default | |
GAMEVAR_FLAG_PERPLAYER | 1 | per-player variable | |
GAMEVAR_FLAG_PERACTOR | 2 | per-actor variable | |
GAMEVAR_FLAG_USER_MASK | 3 | bitmask controlling what flags can be set from con; only flags less than this can | |
GAMEVAR_FLAG_DEFAULT | 256 | allow override (not used) | |
GAMEVAR_FLAG_SECRET | 512 | don't dump... | |
GAMEVAR_FLAG_NODEFAULT | 1024 | don't add to 'default' array. | |
GAMEVAR_FLAG_SYSTEM | 2048 | cannot change mode flags...(only default value) | |
GAMEVAR_FLAG_READONLY | 4096 | values are read-only (no setvar allowed) | |
GAMEVAR_FLAG_INTPTR | 8192 | plValue is a pointer to an int | Constantly updated gamevars |
GAMEVAR_FLAG_SYNCCHECK | 16384 | check event sync when translating | |
GAMEVAR_FLAG_SHORTPTR | 32768 | plValue is a pointer to a short | Constantly updated gamevars |
GAMEVAR_FLAG_CHARPTR | 65536 | plValue is a pointer to a char | Constantly updated gamevars |
GAMEVAR_FLAG_NORESET | 131072 | var values are not reset when restoring map state | |
GAMEVAR_FLAG_SPECIAL | 262144 | flag for structure member shortcut vars | |
GAMEVAR_FLAG_NOMULTI | 524288 | don't attach to multiplayer packets |
Subcategories
This category has the following 3 subcategories, out of 3 total.
Pages in category "Gamevar manipulation"
The following 129 pages are in this category, out of 129 total.
G
H
I
- Ifa
- Ifae
- Ifand
- Ifb
- Ifbe
- Ifboth
- Ife
- Ifeither
- Ifg
- Ifge
- Ifl
- Ifle
- Ifn
- Ifor
- Ifvar conditions
- Ifvara
- Ifvarae
- Ifvarand
- Ifvarb
- Ifvarbe
- Ifvarboth
- Ifvare
- Ifvareither
- Ifvarg
- Ifvarge
- Ifvarl
- Ifvarle
- Ifvarn
- Ifvaror
- Ifvarvara
- Ifvarvarae
- Ifvarvarand
- Ifvarvarb
- Ifvarvarbe
- Ifvarvarboth
- Ifvarvare
- Ifvarvareither
- Ifvarvarg
- Ifvarvarge
- Ifvarvarl
- Ifvarvarle
- Ifvarvarn
- Ifvarvaror
- Ifvarvarxor
- Ifvarxor
- Ifxor
- Inv