Setarraysequence: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
Added documentation for this command, hope I understood it correctly
 
Fox (talk | contribs)
No edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''setarraysequence''' <[[gamearray]]> <[[gamevar]] | constant> {<[[gamevar]] | constant>}*
'''setarraysequence''' <gamearray> <gamevar 1> [...] <gamevar N>


Starting from index 0, initializes an array using the provided gamevars and constant values in sequence. Note that this implictly resizes the defined array to fit exactly the number of provided arguments.
'''setarrayseq''' <gamearray> <gamevar 1> [...] <gamevar N>


This command takes a variable number of arguments, the maximum being 32.
Saves the values of the provided [[gamevar|gamevars]] to the first N entries of a [[gamearray]].
 
Note that the gamearray will be resized to match the number of gamevars provided.
 
Current the limit of gamevars is 32.
 
This is useful for creating a state that takes the values of multiple gamevars. A common usage is to make a custom [[rotatesprite]] function.
 
Example:
 
state Rotatesprite_Scaled
  getarraysequence Rotatesprite_Sequence X Y Scale Ang Picnum Shade Pal Orientation X1 Y1 X2 Y2
  ifn userdef[].statusbarscale 100
  {
    sub X 160
    sub Y 200
    scalevar X X userdef[].statusbarscale 100
    scalevar Y Y userdef[].statusbarscale 100
    scalevar Scale Scale userdef[].statusbarscale 100
    add X 160
    add Y 200
  }
  rotatesprite X Y Scale Ang Picnum Shade Pal Orientation X1 Y1 X2 Y2
ends
appendevent EVENT_DISPLAYSBAR
  set X2 xdim
  sub X2 1
  set Y2 ydim
  sub Y2 1
  setarraysequence Rotatesprite_Sequence 160 166 65536 0 BOTTOMSTATUSBAR 4 0 24 0 0 X2 Y2
  state Rotatesprite_Scaled
endevent
 
See also [[getarraysequence]].


[[Category:EDuke32 specific commands]]
[[Category:EDuke32 specific commands]]
[[Category:Gamearray manipulation]]
[[Category:Gamearray manipulation]]

Latest revision as of 20:29, 19 February 2020

setarraysequence <gamearray> <gamevar 1> [...] <gamevar N>

setarrayseq <gamearray> <gamevar 1> [...] <gamevar N>

Saves the values of the provided gamevars to the first N entries of a gamearray.

Note that the gamearray will be resized to match the number of gamevars provided.

Current the limit of gamevars is 32.

This is useful for creating a state that takes the values of multiple gamevars. A common usage is to make a custom rotatesprite function.

Example:

state Rotatesprite_Scaled
  getarraysequence Rotatesprite_Sequence X Y Scale Ang Picnum Shade Pal Orientation X1 Y1 X2 Y2

  ifn userdef[].statusbarscale 100
  {
    sub X 160
    sub Y 200

    scalevar X X userdef[].statusbarscale 100
    scalevar Y Y userdef[].statusbarscale 100
    scalevar Scale Scale userdef[].statusbarscale 100

    add X 160
    add Y 200
  }

  rotatesprite X Y Scale Ang Picnum Shade Pal Orientation X1 Y1 X2 Y2
ends

appendevent EVENT_DISPLAYSBAR
  set X2 xdim
  sub X2 1
  set Y2 ydim
  sub Y2 1

  setarraysequence Rotatesprite_Sequence 160 166 65536 0 BOTTOMSTATUSBAR 4 0 24 0 0 X2 Y2
  state Rotatesprite_Scaled
endevent

See also getarraysequence.