View source for Category:Structure access - EDukeWiki

# View source for Category:Structure access

← Category:Structure access

You do not have permission to edit this page, for the following reasons:

- The action you have requested is limited to users in the group: Users.
- You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page.

One of the hallmarks of EDuke32's CON scripting advancements is the ability to access many of the game's internal data structures. ==Usage== Struct access was designed with the syntax of an array of a struct type in the C programming language. The index in <nowiki>[</nowiki>square brackets<nowiki>]</nowiki> is an ID number that has different meanings for different structs. Most simple uses of struct access will suffice to use the gamevar [[THISACTOR]] as an index, which usually means the current sprite but is also usable as a ''magic token'' for different meanings with non-sprite structures. Other times, you may know an ID from a command like [[findnearactor]] or [[espawn]] (from gamevar [[RETURN]]). On occasion you may also [[whilevarn|loop]] through all or a selection of ID numbers. ===Getters & Setters=== Get/set commands are the original methods of CON struct access that date back to DOS EDuke. get<struct>[<id>].<[[Full list of structure members|member]]> <[[gamevar]]><br> set<struct>[<id>].<[[Full list of structure members|member]]> <value><br> The '''get''' commands fetch one of the [[Full list of structure members|members of a structure]] into a [[gamevar]]. The '''set''' commands assign the value provided to the member. <id> can be omitted entirely, which implies an id of [[THISACTOR]]. The commands with the "var" suffix are used to access custom members for a struct, which are really just that ID's gamevars which have the per-<struct> flag set. So <code>setactorvar[THISACTOR].temp 0</code> is the same as <code>setvar temp 0</code>. ===Quick Access=== More recently added, structs can be used in place of gamevars, in the form <code><struct>[<id>].<[[Full list of structure members|member]]></code>. For example: [[ifvarg]] userdef[].[[executions]] 10000 { [[redefinequote]] 117 You have way too much time on your hands. echo 117 } With quick access, structures are always read-only. Attempting to use a gamevar-writing command on a quick access structure will result in a compiler error. Quick struct access cannot be used as an index to other quick struct accesses. ==Structs== {| {{prettytablebordered}} !Get/Set Name!!Quick Name!!ID type!![[THISACTOR]] meaning!!Description!!Notes |- |[[Members of the sprite, hittype, and spriteext structures|actor]] |[[Members of the sprite, hittype, and spriteext structures|sprite]] |[[sprite id]] |current sprite |sprites and hittypes | |- |colspan="2"|actorvar |[[sprite id]] |current sprite |per-actor gamevars | |- |colspan="2"|[[Members of the tsprite structure|tspr]] |[[sprite id]] |current sprite |sprites' display properties |Can only be used within [[EVENT_ANIMATESPRITES]] on sprites with [[mdflags]] containing flag 16. |- |colspan="2"|[[Members of the projectile structure|projectile]] |[[tile number]] |(none) |projectile types | |- |colspan="2"|[[Members of the projectile structure|thisprojectile]] |[[sprite id]] |current sprite |individual projectiles | |- |colspan="2"|[[Members of the sector structure|sector]] |[[sector id]] |current sprite's sector |sectors, floors, and ceilings | |- |colspan="2"|[[Members of the wall structure|wall]] |[[wall id]] |(none) |walls | |- |colspan="2"|[[Members of the player structure|player]] |[[player id]] |current player |players | |- |colspan="2"|playervar |[[player id]] |current player |per-player gamevars | |- |colspan="2"|[[Members of the input structure|input]] |[[player id]] |current player |input |Generally used within [[EVENT_PROCESSINPUT]]. |- |colspan="2"|[[Members of the userdef structure|userdef]] |(none) |(none) |user preferences, game state |Use nothing within the brackets. |- |(none) |[[Members of the tiledata structure|tiledata]] |[[tile number]] |(none) |art tiles | |- |(none) |[[Members of the paldata structure|paldata]] |[[palookup number]] |(none) |palette lookups (palswaps) | |} [[Category:EDuke32 end-user documentation]] [[Category:Scripting documentation]]

Template used on this page:

- Template:Prettytablebordered (view source)

Return to Category:Structure access.

Retrieved from "http://wiki.eduke32.com/wiki/Category:Structure_access"