M32 script commands: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
minor edit
update
Line 1: Line 1:
[[Mapster32 Scripting]] [[M32 script commands]] [[M32 script variables]]  
[[Mapster32 Scripting]] | [[M32 script commands]] | [[M32 script variables]]  
----
----


This is a categorized list of every command in Mapster32-script.<br>
This is a categorized list of every command in Mapster32-script.
'''Legend''':<br>
 
'''I''': acts on current sprite, '''S''': acts on current sprite by pointer (also valid in "for i drawnsprites")<br>
'''Legend''':<br>
'''i''': sets current sprite, '''s''': only sets current sprite by pointer<br>
'''I''': acts on current sprite, '''S''': acts on current sprite by pointer (also valid in "for i drawnsprites")<br>
'''D''': differs from CON, '''X''': deprecated/do not use (yet)<br>
'''i''': sets current sprite, '''s''': only sets current sprite by pointer<br>
'''''var/array/special''''': must be writable, [''something'']: optional command field
'''D''': differs from CON, '''X''': deprecated/do not use (yet)<br>
'''''var/array/special''''': must be writable, [''something'']: optional command field
 
====basic commands====
====basic commands====
*[[Nullop]]
*[[Nullop]]
Line 21: Line 23:
====control flow====
====control flow====
*[[Else]]
*[[Else]]
*[[Return]] '''D'''
*[[Return]] '''D''' (returns from states)
*[[Break]] '''X'''
*[[Break]] '''D''' (also breaks '''for''' and '''while*''' loops)
*[[Switch]]
*[[Switch]]
*[[Case]]
*[[Case]]
Line 30: Line 32:
*[[Jump]] '''X'''
*[[Jump]] '''X'''


====struct access (redundant, except tspr)====
====struct access (redundant)====
All of these are redundant, use "'''set''' ''xyz'' ''zyx''" instead.
*[[Setsector]]
*[[Setsector]]
*[[Getsector]]
*[[Getsector]]
Line 42: Line 45:
====arrays====
====arrays====
*[[Gamearray]]
*[[Gamearray]]
*[[Setarray]] (redundant)
*[[Setarray]] (redundant, use '''set''')
*[[Getarraysize]] ''array'' '''''size'''''
*[[Getarraysize]] ''array'' '''''size'''''
*[[Resizearray]] ''array'' ''newsize''
*[[Resizearray]] ''array'' ''newsize''
Line 79: Line 82:
*[[Cos]] '''''resvar''''' ''var''
*[[Cos]] '''''resvar''''' ''var''
*[[Displayrand]] '''''resvar'''''
*[[Displayrand]] '''''resvar'''''
*[[Inv]] ''var''
*[[Inv]] '''''var'''''
*[[Clamp]] '''''var''''' ''min'' ''max''
*[[Sqrt]] ''invar'' '''''outvar'''''
*[[Sqrt]] ''invar'' '''''outvar'''''
*[[Mulscale]] ''factor1'' ''factor2'' ''rshiftamount''
*[[Mulscale]] ''factor1'' ''factor2'' ''rshiftamount''
Line 90: Line 94:
*[[Sort]] '''''array''''' ''count'' [''comparison_state'']
*[[Sort]] '''''array''''' ''count'' [''comparison_state'']
*[[For]] '''''itervar''''' ''what'' [''what2'']
*[[For]] '''''itervar''''' ''what'' [''what2'']
valid iteration types (''what''):  
valid iteration types (''what''):<br>
*allsprites '''i''', allsectors, allwalls, selsprites '''i''', selsectors, selwalls, drawnsprites '''s'''
Note: where the current sprite is affected, it is restored at the end of the loop
*spritesofsector ''sector'' | '''i''', loopofwall ''wall'', wallsofsector ''sector'', range ''num''
*allsprites ('''i'''), allsectors, allwalls, selsprites ('''i'''), selsectors, selwalls, drawnsprites ('''s''')
*spritesofsector ''sector'' ('''i'''), loopofwall ''wall'', wallsofsector ''sector'', range ''num''


====var if* and while* commands====
====var if* and while* commands====
Line 127: Line 132:
*[[Ifhitkey]] KEY_???
*[[Ifhitkey]] KEY_???
*[[Ifholdkey]] KEY_???
*[[Ifholdkey]] KEY_???
*[[Resetkey]] KEY_???
*[[Ifeitheralt]]
*[[Ifeitheralt]]
*[[Ifeitherctrl]]
*[[Ifeitherctrl]]
Line 132: Line 138:
*[[Ifrnd]] ''number''
*[[Ifrnd]] ''number''
*[[Ifinside]] ''x'' ''y'' ''sectnum''
*[[Ifinside]] ''x'' ''y'' ''sectnum''
*[[Ifangdiffl]] '''S'''
*[[Ifangdiffl]] ''angdiff'' | '''S'''
*[[Ifspritepal]] '''S'''
*[[Ifspritepal]] ''pal'' | '''S'''
*[[Ifactor]] '''S'''
*[[Ifactor]] ''picnum'' | '''S'''
*[[Ifpdistl]] '''S'''
*[[Ifpdistl]] ''dist'' | '''S''' (distance is that of "mapper arrow" to current sprite)
*[[Ifpdistg]] '''S'''
*[[Ifpdistg]] ''dist'' | '''S''' (distance is that of "mapper arrow" to current sprite)
*[[Ifawayfromwall]] '''S'''
*[[Ifawayfromwall]] '''S'''
*[[Ifcansee]] '''S'''
*[[Ifcansee]] '''S''' (whether "mapper arrow" can see current sprite)
*[[Ifonwater]] '''S'''
*[[Ifonwater]] '''S'''
*[[Ifinwater]] '''S'''
*[[Ifinwater]] '''S'''
Line 162: Line 168:
*[[Alignceilslope]] ''sectnum'' ''x'' ''y'' ''z''
*[[Alignceilslope]] ''sectnum'' ''x'' ''y'' ''z''
*[[Alignflorslope]] ''sectnum'' ''x'' ''y'' ''z''
*[[Alignflorslope]] ''sectnum'' ''x'' ''y'' ''z''
*[[Bsetsprite]] ''spritenum'' ''x'' ''y'' ''z''
*'''Bsetsprite''' ''spritenum'' ''x'' ''y'' ''z'' ([[Setsprite]] in CON)
*[[Setfirstwall]] ''sectnum'' ''wallnum''
*[[Setfirstwall]] ''sectnum'' ''wallnum''
*[[Changespritestat]] ''spritenum'' ''statnum''
*[[Changespritestat]] ''spritenum'' ''statnum''
Line 175: Line 181:


====debugging commands====
====debugging commands====
*[[Addlogvar]] ''var/array/special'' (short form: '''al''')
*[[Addlogvar]] ''var/array[]/special[].xxx'' (short form: '''al''')
*[[Addlog]]
*[[Addlog]]
*[[Debug]] ''constant''
*[[Debug]] ''CONSTANT''


====quote commands====
====quote commands====
Line 188: Line 194:
*[[Printext256]] ''quotenum'' ''x'' ''y'' ''col'' ''backcol'' ''fontsize''
*[[Printext256]] ''quotenum'' ''x'' ''y'' ''col'' ''backcol'' ''fontsize''
*[[Printext16]] ''quotenum'' ''x'' ''y'' ''col'' ''backcol'' ''fontsize''
*[[Printext16]] ''quotenum'' ''x'' ''y'' ''col'' ''backcol'' ''fontsize''
Specifying a negative ''max'' argument will make the allowable number range be ''max'' to -''max'':
*[[Getnumber16]] '''''var''''' ''quotenum'' ''max''
*[[Getnumber16]] '''''var''''' ''quotenum'' ''max''
*[[Getnumber256]] '''''var''''' ''quotenum'' ''max''
*[[Getnumber256]] '''''var''''' ''quotenum'' ''max''

Revision as of 14:05, 11 October 2009

Mapster32 Scripting | M32 script commands | M32 script variables


This is a categorized list of every command in Mapster32-script.

Legend:
I: acts on current sprite, S: acts on current sprite by pointer (also valid in "for i drawnsprites")
i: sets current sprite, s: only sets current sprite by pointer
D: differs from CON, X: deprecated/do not use (yet)
var/array/special: must be writable, [something]: optional command field

basic commands

control flow

struct access (redundant)

All of these are redundant, use "set xyz zyx" instead.

arrays

var commands

varvar commands

math commands

special commands

  • Sort array count [comparison_state]
  • For itervar what [what2]

valid iteration types (what):
Note: where the current sprite is affected, it is restored at the end of the loop

  • allsprites (i), allsectors, allwalls, selsprites (i), selsectors, selwalls, drawnsprites (s)
  • spritesofsector sector (i), loopofwall wall, wallsofsector sector, range num

var if* and while* commands

varvar if* and while* commands

other if* commands

BUILD functions

debugging commands

quote commands

Specifying a negative max argument will make the allowable number range be max to -max:

findnear* (not tested)

misc. commands

current sprite commands

drawing commands

used in EVENT_DRAW2DSCREEN
used elsewhere