Category:Gamevar manipulation: Difference between revisions
| m added note that DEFAULT isn't used | Doom64hunter (talk | contribs)  Updated with updated information, including short representations. Also reworded. | ||
| Line 1: | Line 1: | ||
| == Definition == | |||
| '''gamevar''' <varname> <value> <flags> | '''gamevar''' <varname> <value> <flags> | ||
| '''var''' <varname> <value> <flags> | |||
| A gamevar | A gamevar is a variable that can be used to store numerical data which can then be referenced between [[actor]]s, [[state]]s and [[event]]s. '''var''' is hereby semantically equivalent to '''gamevar'''. | ||
| A 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 [[actor]]s and [[event]]s.  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 [[sprite]]s 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 (-2<sup>31</sup>)'' to ''2.147.483.647 (2<sup>31</sup>-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 operators]] | |||
| *[[ifvar conditions]] | *[[ifvar conditions]] | ||
| == Gamevar Flags == | |||
| The following table shows all currently defined gamevar flags: | |||
| <font color="gray"> | <font color="gray"> | ||
| Line 46: | Line 60: | ||
| |GAMEVAR_FLAG_NOMULTI||524288||don't attach to multiplayer packets|| | |GAMEVAR_FLAG_NOMULTI||524288||don't attach to multiplayer packets|| | ||
| |}</font> | |}</font> | ||
| [[Category:All commands]] | [[Category:All commands]] | ||
Revision as of 08:25, 8 February 2020
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
