Setarraysequence: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
Fox (talk | contribs)
No edit summary
Fox (talk | contribs)
No edit summary
Line 7: Line 7:
Note that the gamearray will be resized to match the number of gamevars provided.
Note that the gamearray will be resized to match the number of gamevars provided.


Current the limit of variables is 32.
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 modify a [[rotatesprite]] function.
This is useful for creating a state that takes the values of multiple gamevars. A common usage is to modify a [[rotatesprite]] function.

Revision as of 19:42, 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 modify a 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
  set Y2 ydim
  sub X2 1
  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.