For

From EDukeWiki
Revision as of 08:12, 15 July 2020 by Rob Anybody (talk | contribs) (Add note about conditional evaluation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

for <gamevar> <function> { [...] }
for <gamevar> <function> <value> { [...] }

Executes the code in the curly braces for every instance of the function specified, and <gamevar> stores the sprite/sector/wall/etc found in the current function.

For example, setting <function> to allsprites will execute the code for every sprite in-game, and the var specified in <gamevar> will be set to the sprite number of the current sprite it's on.

Functions

allsprites All actors/sprites in-game.
allsectors All sectors in the map.
allwalls All walls in the map.
activelights
lights
All active polymer lights.
drawnsprites Only the sprites currently being drawn.
spritesofsector<sectnum>
sprofsec<sectnum>
All sprites in the given sector.
spritesofstatus <statnum>
sprofstat <statnum>
All sprites with the given statnum.
wallsofsector <sectnum>
walofsec <sectnum>
The walls of the given sector.
loopofwall <wall num> All walls in the same loop of the given wall.
range <num> A range from 0 to the number specified.

Unlike other loop forms, the conditional statement is not re-evaluated each iteration. For example, the following loop will log 1 through 10:

var i
var j 10
for i range j {
    add i 1 // only affects current iteration; log 1..10 instead of 0..9
    sub j 1 // same as above; effectively does nothing in this example
    al i
}