home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fun Online 1997 April
/
FOL0497.iso
/
tvmlsa
/
play4.exe
/
1033
/
STTEXT
/
104
Wrap
Text File
|
1997-05-27
|
104KB
|
2,132 lines
// Built-in filing system access
enum
fileaccessmode read write append;
enumrange
filecheckmode 0 32767 exists=%x0 writable=%x2 writeable=%x02 readable=%x4 ;
boolean 0 1 false true;
command
chdir#12,1 filename : a0 <= $1; //change the working directory
mkdir#12,2 filename : a0 <= $1; //make a new directory as specified by the path
rmdir#12,3 filename : a0 <= $1; //remove a directory as specified by the path
remove#12,4 filename : a0 <= $1; //remove a file as specified by the path
rename#12,5 filename=(old) filename=(new) : a0 <= $1 a1 <= $2; //rename the final component of old file or directory name
function
getcwd#12,6 =filename : a0=>$0; //return the current working directory
syserror#12,7 =int : d0=>$0; //return the status of the last file system call
strerror#12,8 =string posint=(errno) : d0<=$1 a0=>$0; //return system error message for errno
ferror#12,9 =int fileref : a0<=$1 d0=>$0; //return TRUE if an error has occurred on the given file
feof#12,10 =int fileref : a0<=$1 d0=>$0; //return TRUE if an EOF has been reached on the given file
input$#12,11 =string BUFSIZ=(n) fileref: a0=>$0 d0<=$1 a0<=$2; //read at most n characters from fileref and return as a string
inputline$#12,12=string fileref : a0<=$1 a0=>$0; //return the remainder of the current line as a string
checkfile#12,13 =int filename filecheckmode : d0=>$0 a0<=$1 d0<=$2 ; //return TRUE if the specified file satisfies the given filecheckmode
command
FailOnIOError#12,14 boolean : d0<=$1 ;
// Standard primitives
intrange
animstyle 0 0;
clearspeed 0 1280;
rgbvalue 0 255;
pagenumber 0 255;
groupnumber 0 31;
iconbank 0 31;
hour 0 23;
minute 0 59;
second 0 59;
centisecond 0 99;
enumrange
//ensure clearmode matches the clearscreen primitive
clearmode 0 23 fan fade fadeout=1 fadein=1
wipeleft wiperight wipeup wipedown
explode implode sparkle standard blind vblind=10 mosaic
pushleft pushright pushup pushdown
revealleft revealright revealup revealdown
truepushleft truepushright truepushup truepushdown;
clearto 0 1 ClearToPencolour ClearToVisual;
linestyletype 0 65535 solid=%xffff smalldots=%xaaaa dots=%xcccc
bigdots=%x7e7e dashed=%x3c3c none=%x0000;
fillmasktype 0 3 none colour icon file;
month 1 12 January February March April May June
July August September October November December;
objectstate 0 1 disabled enabled;
LabelOptions 0 63 centre=1 center=1 left=2 right=4 tabs=8 wrap=16 singleline=32 ;
PrintOptions 0 31 centred=1 centered=1 Scaled=2 preview=4 setup=8 UserScale=18;
PrintOptions2 0 3 header=1 footer=2;
enum
animformat=(,"Format of animation file") FLI FLC;
audioformat=(,"Format of audio file") WAV RMI MID;
imageformat=(,"Format of image file") BMP PCX JPG GIF;
rasterop raster_none raster_and raster_or raster_xor;
buttonspecial NONE DEFAULT CANCEL;
//objectstate disabled enabled;
videotype=(,"Format of video data") AVI MOV MPEG1 MPEG2;
animationtype oneshot pingpong looped;
TextJustify left centre right ;
command
activepage#16,1 pagenumber : d0<=$1;
animation#16,2 TLPOINT SIZE_T POSINT=(startframe) POSINT=(endframe)
boolean=(memoryload) INT=(repeatcount) animformat FILENAME
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2
d4<=$3 d5<=$4 d6<=$5 d7<=$6 d8<=$7 a0<=$8;
arc#16,3 TLPOINT SIZE_T POINT POINT : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 d4<=$3.1 d5<=$3.2 d6<=$4.1 d7<=$4.2 ;
audio#16,7 audioformat FILENAME : d0<=$1 a0<=$2;
bezier#16,4 POINT>=4 : a0<=$1;
button#16,5#pushbutton TLPOINT SIZE_T STRING=(Caption) objectstate buttonspecial SCRIPTREF
: d0<=-1 d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2
a0<=$3 d5<=$4 d6<=$5 a1<=$6 ;
buttonid#16,5#pushbutton posint TLPOINT SIZE_T STRING=(Caption) objectstate buttonspecial SCRIPTREF
: d0<!>$1 d1<=$2.1 d2<=$2.2 d3<=$3.1 d4<=$3.2
a0<=$4 d5<=$5 d6<=$6 a1<=$7 ;
buttonlink POSINT*5 : d0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5;
circle#16,6 POINT POSINT : d0<=$1.1 d1<=$1.2 d2<=$2;
clearscreen#16,8 TLPOINT SIZE_T clearmode clearto clearspeed
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2
d4<=$3 d5<=$4 d6<=$5;
combobox#16,9 TLPOINT SIZE_T STRING>=1 objectstate STRING=(Value) int=(index) SCRIPTREF=(AcceptAction)
: d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2
d5<=$4 d0!>$6 a1<=$3 a0<!>$5 a2<=$7;
// defsprite passes first param last
defsprite#16,10 POSINT TLPOINT SIZE_T
: d0<=$2.1 d1<=$2.2 d2<=$3.1 d3<=$3.2 d4<=$1;
definesprite#16,10 POSINT TLPOINT SIZE_T
: d0<=$2.1 d1<=$2.2 d2<=$3.1 d3<=$3.2 d4<=$1;
editbox#16,11 TLPOINT SIZE_T objectstate STRING=(Value) SCRIPTREF=(AcceptAction)
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2
d4<=$3 a0<!>$4 a1<=$5;
ellipse#16,12 TLPOINT SIZE_T : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2;
fillmask0#16,13 : d0<=0;
fillmask1#16,14 rgbvalue*3 : d0<=1 d1<=$1 d2<=$2 d3<=$3;
fillmask2#16,15 POSINT=(IconNumber) : d0<=2 d1<=$1 d2<=0;
fillmask2b#16,15 POSINT=(IconNumber) iconbank : d0<=2 d1<=$1 d2<=$2;
fillmask3#16,16 imageformat FILENAME : d0<=3 d1<=$1 a0<=$2;
SetNoFill#16,13 : d0<=0;
SetColorFill#16,14 rgbvalue*3 : d0<=1 d1<=$1 d2<=$2 d3<=$3;
SetColourFill#16,14 rgbvalue*3 : d0<=1 d1<=$1 d2<=$2 d3<=$3;
SetIconFill#16,15 POSINT=(IconNumber) iconbank : d0<=2 d1<=$1 d2<=$2;
SetFillTexture#16,16 imageformat FILENAME : d0<=3 d1<=$1 a0<=$2;
floodfill#16,17 POINT : d0<=$1.1 d1<=$1.2;
font#16,18 STRING=(FontName) SIZE_T : a0<=$1 d0<=$2.1 d1<=$2.2;
getactivepage#16,93 pagenumber : d0=>$1 d7<=0;
getdate #9,1 POSINT=(year) month POSINT=(day)
: d0=>$1 d1=>$2 d2=>$3;
getfillmask#16,93 fillmasktype rgbvalue*3 POSINT=(IconNumber) imageformat FILENAME=(ImageFile)
: d0=>$1 d1=>$2 d2=>$3 d3=>$4 d4=>$5 d5=>$6 a0=>$7 d7<=1;
getfont#16,93 STRING=(FontName) SIZE_T
: a0=>$1 d0=>$2.1 d1=>$2.2 d7<=2;
gethilight#16,93 posint : d0=>$1 d7<=5;
gethilightcolour#16,93 posint rgbvalue*3
: d0=>$2 d1=>$3 d2=>$4 d3=>$1 d7<=3;
GetHilightColor#16,93 rgbvalue*3
: d0=>$1 d1=>$2 d2=>$3 d7<=3;
getlinestyle#16,93 linestyletype : d0=>$1 d7<=4;
getpencolour#16,93 posint rgbvalue*3
: d0=>$2 d1=>$3 d2=>$4 d4=>$1 d7<=6;
GetPenColor#16,93 rgbvalue*3
: d0=>$1 d1=>$2 d2=>$3 d7<=6;
getpenwidth#16,93 POSINT=(PenWidth) : d0=>$1 d7<=7;
gettime #9,2 hour minute second centisecond
: d0=>$1 d1=>$2 d2=>$3 d3=>$4;
gettransparentcolour#16,93 posint rgbvalue*3
: d0=>$2 d1=>$3 d2=>$4 d3=>$1 d7<=8;
GetTransparentColor#16,93 rgbvalue*3
: d0=>$1 d1=>$2 d2=>$3 d7<=8;
getvisualpage#16,93 pagenumber : d0=>$1 d7<=9;
hilight#16,112 boolean : d0<=$1;
hilightcolour#16,19 POSINT rgbvalue*3 : d0<=$1 d1<=$2 d2<=$3 d3<=$4;
HiLightColor#16,19 rgbvalue*3 : d2<=$1 d3<=$2 d4<=$3 ;
hotspot#16,20 TLPOINT SIZE_T objectstate SCRIPTREF=(AcceptAction)
: d0<=-1 d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2 d5<=$3 a0<=$4; // code shared with HOTSPOTID
hotspotid#16,20#hotspot posint TLPOINT SIZE_T objectstate SCRIPTREF=(AcceptAction)
: d0<!>$1 d1<=$2.1 d2<=$2.2 d3<=$3.1 d4<=$3.2 d5<=$4 a0<=$5 ;
HotBox#16,20#hotspot posint TLPOINT SIZE_T objectstate SCRIPTREF=(AcceptAction)
: d0<!>$1 d1<=$2.1 d2<=$2.2 d3<=$3.1 d4<=$3.2 d5<=$4 a0<=$5 ;
hotregion#16,21 posint boolean=(clickable) POINT>=3 boolean=(over) SCRIPTREF=(OverAction) SCRIPTREF=(ClickAction)
: d0<!>$1 d2<=$2 d1!>$4 a0<=$3 a1<=$5 a2<=$6 ;
icon#16,22 TLPOINT SIZE_T iconbank POSINT=(IconNumber) rasterop
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 d4<=$3 d5<=$4 d6<=$5;
iconbutton#16,23 TLPOINT SIZE_T objectstate buttonspecial iconbank
POSINT=(EnableIcon) POSINT=(DisableIcon) POSINT=(ClickIcon)
SCRIPTREF=(AcceptAction)
: d0<=-1 d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2
d5<=$3 d6<=$4 d7<=$5 d8<=$6 d9<=$7 d10<=$8 a0<=$9 ;
iconbuttonid#16,23#iconbutton posint TLPOINT SIZE_T objectstate buttonspecial iconbank
POSINT=(EnableIcon) POSINT=(DisableIcon) POSINT=(ClickIcon)
SCRIPTREF=(AcceptAction)
: d0<!>$1 d1<=$2.1 d2<=$2.2 d3<=$3.1 d4<=$3.2
d5<=$4 d6<=$5 d7<=$6 d8<=$7 d9<=$8 d10<=$9 a0<=$10 ;
AnimatedButton#16,23#iconbutton posint TLPOINT SIZE_T objectstate buttonspecial iconbank
POSINT=(EnableIcon) POSINT=(DisableIcon) POSINT=(ClickIcon)
SCRIPTREF=(AcceptAction)
: d0<!>$1 d1<=$2.1 d2<=$2.2 d3<=$3.1 d4<=$3.2
d5<=$4 d6<=$5 d7<=$6 d8<=$7 d9<=$8 d10<=$9 a0<=$10 ;
line#16,24 POINT>=2 : a0<=$1;
linestyle#16,25 linestyletype : d0<=$1;
listbox#16,26 TLPOINT SIZE_T STRING>=1 objectstate STRING=(Value) int=(index) SCRIPTREF=(AcceptAction)
: d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2
d5<=$4 a1<=$3 a0!>$5 a2<=$7 d0!>$6;
loadicon#16,27 FILENAME : a0<=$1;
loadimage#16,28#image TLPOINT BRPOINT imageformat FILENAME
: d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2 d5<=$3 a0<=$4 a1<=0 a2<=0 d6<=0 d7<=0 d8<=0 d9<=0 ;
loadtransimage#16,28#image TLPOINT BRPOINT imageformat FILENAME rgbvalue*3
: d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2 d5<=$3 a0<=$4 a1<=0 a2<=0 d6<=1 d7<=$5 d8<=$6 d9<=$7 ;
menu#16,29 TLPOINT SIZE_T MENULIST
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3;
origin#16,30 POINT : d0<=$1.1 d1<=$1.2;
setscale#16,31 FLOAT*2 : d0<=$1 d1<=$2;
function
gsave#16,76=int : d0=>$0 ;
grestore#16,77=int : d0=>$0 ;
command
pencolour#16,32 POSINT rgbvalue*3 : d0<=$1 d1<=$2 d2<=$3 d3<=$4;
pencolor#16,32 rgbvalue*3 : d1<=$1 d2<=$2 d3<=$3 ;
penwidth#16,33 POSINT : d0<=$1;
point#16,34 POINT : d0<=$1.1 d1<=$1.2;
polygon#16,35 POINT>=2 : a0<=$1;
rectangle#16,36 TLPOINT SIZE_T : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2;
saveimage#16,37#image TLPOINT BRPOINT imageformat FILENAME FILENAME int=(LoadStatus) SCRIPTREF=(LoadedAction)
: d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2 d5<=$3 d6<=0 a0<=$4 a1<=$5 d0!>$6 a2<=$7;
savetransimage#16,37#image TLPOINT BRPOINT imageformat FILENAME rgbvalue*3 FILENAME int=(LoadStatus) SCRIPTREF=(LoadedAction)
: d1<=$1.1 d2<=$1.2 d3<=$2.1 d4<=$2.2 d5<=$3 d6<=1 a0<=$4 a1<=$8 d0!>$9 a2<=$10 d7<=$5 d8<=$6 d9<=$7 ;
//scrollkeys POSINT*5
// : d0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5;
spritebank#16,38 iconbank : d0<=$1;
spritefile#16,39 imageformat FILENAME : d0<=$1 a0<=$2;
StaticBox#16,40 posint=(id) TLPOINT SIZE_T TextJustify STRING=(Value)
: d0<=$1 d1<=$2.1 d2<=$2.2 d3<=$3.1 d4<=$3.2 d5<=$4 a0<=$5 ;
label#16,41#text posint=(id) TLPOINT SIZE_T LabelOptions STRING=(Value)
: d0<=$2.1 d1<=$2.2 d2<=$3.1 d3<=$3.2 d4<=$1 d5<=$4 a0<=$5 ;
SetText#16,42 posint=(id) string=(value) : d0<=$1 a0<=$2 ;
SetLabelText#16,42 posint=(id) string=(value) : d0<=$1 a0<=$2 ;
text#16,43 POINT STRING : d0<=$1.1 d1<=$1.2 a0<=$2;
textwindow#16,44#htmlbox TLPOINT SIZE_T filename
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3;
customtextwindow#16,44#htmlbox TLPOINT SIZE_T filename posint=(upid) posint=(downid)
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3 d4<=$4 d5<=$5 ;
tile#16,45 TLPOINT SIZE_T imageformat FILENAME
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 d4<=$3 a0<=$4;
transparentcolour#16,46 POSINT rgbvalue*3 : d0<=$1 d1<=$2 d2<=$3 d3<=$4;
transparentcolor#16,46 rgbvalue*3 : d1<=$1 d2<=$2 d3<=$3 d0<=-1;
//unloadspritefile /*no params */ : ;
video#16,47 TLPOINT SIZE_T videotype FILENAME : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 d4<=$3 a0<=$4;
visualpage#16,48 pagenumber : d0<=$1;
// waitlastdone is an example of a command with no parameters or associations
// The colon is required otherwise no primitive will be called.
waitlastdone#16,49 /* no params*/ : ;
waitsample#16,50 boolean : d0<=$1 ;
transparency#16,51 posint: d0<=$1;
// !!!! DEBUG Frazz - 15/08/95
sound#16,52 filename : a0<=$1;
enumrange
snd_flags 0 3 looped=1 override=2;
command
PlaySound#16,113 filename snd_flags : a0<=$1 d0<=$2;
StopSound#16,114 : ;
function
MCI#16,53 =int filename filename=(result): d0=>$0 a1<=$1 a0=>$2 ;
enumrange
SpriteMotionControl 0 15 unbound=0 bound_x=1 wrapped_x=2 fixed_x=3 bound_y=4 wrapped_y=8 fixed_y=12 bound=5 wrapped=10;
//enumrange
//SpriteMotionControl 0 2 unbound bound wrapped;
enumrange
UserSpriteType 0 30 ;
enumrange
SpriteType 0 31 ;
enumrange
SpriteFlagBits 0 31 enabled=1 visible=2 dragable=4 popup=8 clickable=16 ;
command
// Sprite ID,X,Y,AnimationType,StartFrame,FrameRate,[SpriteFrameList]
sprite#16,54 posint=(id) tlpoint animationtype posint=(startframe) posint=(framerate,"Frames per ms") posint>=1
: d0<=$1 d1<=$2.1 d2<=$2.2 d3<=$3 d4<=$4 d5<=$5 d6<=0 a0<=$6;
CreateSprite#16,54#sprite posint=(id) tlpoint animationtype posint=(startframe) posint=(framerate,"Frames per ms") iconbank posint>=1
: d0<=$1 d1<=$2.1 d2<=$2.2 d3<=$3 d4<=$4 d5<=$5 d6<=$6 a0<=$7;
spriteb#16,54#sprite posint=(id) tlpoint animationtype posint=(startframe) posint=(framerate,"Frames per ms") iconbank posint>=1
: d0<=$1 d1<=$2.1 d2<=$2.2 d3<=$3 d4<=$4 d5<=$5 d6<=$6 a0<=$7;
delsprite#16,55 posint=(id) : d0<=$1;
DeleteSprite#16,55 posint=(id) : d0<=$1;
MoveSprite#16,56 posint tlpoint : d0<=$1 d1<=$2.1 d2<=$2.2;
MoveSpriteTo#16,57 posint tlpoint : d0<=$1 d1<=$2.1 d2<=$2.2;
SpriteMechanics#16,58 posint=(id) float=(vx) float=(vy) float=(ax) float=(ay) float=(E) : d0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5 d5<=$6 ;
SpriteBBox#16,59 posint=(id) tlpoint size_t : d0<=$1 d1<=$2.1 d2<=$2.2 d3<=$3.1 d4<=$3.2;
SpriteFlags#16,60 posint=(id) boolean=(enabled) boolean=(visible) boolean=(dragable) boolean=(popup) SpriteMotionControl : d0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5 d5<=$6 ;
SpritePopup#16,61 posint=(id) posint=(delay) boolean=(shownow) : d0<=$1 d1<=$2 d2<=$3 ;
SpriteFlags2#16,62 posint=(id) SpriteFlagBits SpriteMotionControl : d0<=$1 d1<=$2 d2<=$3 ;
SetSpriteFlags#16,62 posint=(id) SpriteFlagBits SpriteMotionControl : d0<=$1 d1<=$2 d2<=$3 ;
// on_sprite_* and off_sprite_* use d4 as internal event number
on_sprite_collision#16,63 posint=(id1) posint=(id2) scriptref : d0!>$1 d1!>$2 a0<=$3 d4<=0;
on_sprite_move#16,63 posint=(id) point=(where) scriptref : d0!>$1 d1!>$2.1 d2!>$2.2 a0<=$3 d4<=1;
on_sprite_drop#16,63 posint=(id) point=(where) scriptref : d0!>$1 d1!>$2.1 d2!>$2.2 a0<=$3 d4<=2;
on_sprite_popup#16,63 posint=(id) boolean=(visible) scriptref : d0!>$1 d1!>$2 a0<=$3 d4<=3;
on_sprite_animstop#16,63 posint=(id) scriptref : d0!>$1 a0<=$2 d4<=4;
off_sprite_collision#16,63 : a0<=0 d4<=0;
off_sprite_move#16,63 : a0<=0 d4<=1;
off_sprite_drop#16,63 : a0<=0 d4<=2;
off_sprite_popup#16,63 : a0<=0 d4<=3;
off_sprite_animstop#16,63 : a0<=0 d4<=4;
function
SpriteGetData#16,67=int posint=(id) tlpoint=(where) float=(vx) float=(vy) float=(ax) float=(ay)
: d0=>$0 d0<=$1 d1=>$2.1 d2=>$2.2 d3=>$3 d4=>$4 d5=>$5 d6=>$6 ;
SpriteGetData2#16,67=int posint=(id) tlpoint=(where) float=(vx) float=(vy) float=(ax) float=(ay) int=(frame)
: d0=>$0 d0<=$1 d1=>$2.1 d2=>$2.2 d3=>$3 d4=>$4 d5=>$5 d6=>$6 d7=>$7 ;
GetSpriteData#16,67=int posint=(id) tlpoint=(where) float=(vx) float=(vy) float=(ax) float=(ay) int=(frame)
: d0=>$0 d0<=$1 d1=>$2.1 d2=>$2.2 d3=>$3 d4=>$4 d5=>$5 d6=>$6 d7=>$7 ;
command
SpriteCollision#16,68 posint=(id) UserSpriteType int=(CollisionOffset) SpriteType>=0 SpriteType>=0 : d0<=$1 d1<=$2 d2<=$3 a0<=$4 a1<=$5 ;
animstop#16,69 posint=(id) : d0<=$1;
animstart#16,70 posint=(id) : d0<=$1;
animrestart#16,71 posint=(id) : d0<=$1;
togglebutton#16,72 tlpoint size_t string : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3;
//all html commands use the same code
htmltextbox#16,73#htmlbox tlpoint size_t filename : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3 d4<=-1 d5<=-1 d6<=0;
htmltextboxb#16,73#htmlbox tlpoint size_t filename iconbank : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3 d4<=-1 d5<=-1 d6<=$4;
customhtmltextbox#16,73#htmlbox tlpoint size_t filename posint=(upid) posint=(downid)
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3 d4<=$4 d5<=$5 d6<=0;
customhtmltextboxb#16,73#htmlbox tlpoint size_t filename posint=(upid) posint=(downid) iconbank
: d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3 d4<=$4 d5<=$5 d6<=$6;
LoadWMF#16,74#wmfimage tlpoint size_t filename : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3;
Browser#16,110#browser tlpoint size_t filename : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 a0<=$3;
printscreen#16,75 TLPOINT SIZE_T PrintOptions float : d0<=$1.1 d1<=$1.2 d2<=$2.1 d3<=$2.2 d4<=$3 d5<=$4;
printsetup#16,98 PrintOptions2 string*7 : d0<=$1 a0<=$2 a1<=$3 a2<=$4 a3<=$5 a4<=$6 a5<=$7 a6<=$8 ;
//Simple "dirty" object manipulation functions
command
//Get/SetXXXProperty calls use d1 internally for the property number
SetIntProperty#16,78 posint=(id) string=(property) int=(value) : d0<=$1 a0<=$2 d2<=$3 ;
SetFloatProperty#16,79 posint=(id) string=(property) float=(value) : d0<=$1 a0<=$2 d2<=$3 ;
SetBoolProperty#16,80 posint=(id) string=(property) boolean=(value) : d0<=$1 a0<=$2 d2<=$3 ;
SetStringProperty#16,81 posint=(id) string=(property) string=(value) : d0<=$1 a0<=$2 a1<=$3 ;
SetFilenameProperty#16,81 posint=(id) string=(property) filename=(value) : d0<=$1 a0<=$2 a1<=$3 ;
SetRGBProperty#16,82 posint=(id) string=(property) rgbvalue*3 : d0<=$1 a0<=$2 d2<=$3 d3<=$4 d4<=$5 ;
SetPointProperty#16,83 posint=(id) string=(property) POINT=(value) : d0<=$1 a0<=$2 d2<=$3.1 d3<=$3.2 ;
SetFloatPointProperty#16,84 posint=(id) string=(property) float*2 : d0<=$1 a0<=$2 d2<=$3 d3<=$4 ;
SetScriptProperty#16,85 posint=(id) string=(property) scriptref=(value): d0<=$1 a0<=$2 a1<=$3 ;
SetIntArrayProperty#16,86 posint=(id) string=(property) int>=1 : d0<=$1 a0<=$2 a1<=$3 ;
SetFloatArrayProperty#16,87 posint=(id) string=(property) float>=1 : d0<=$1 a0<=$2 a1<=$3 ;
SetStringArrayProperty#16,88 posint=(id) string=(property) string>=1 : d0<=$1 a0<=$2 a1<=$3 ;
SetPointArrayProperty#16,89 posint=(id) string=(property) point>=1 : d0<=$1 a0<=$2 a1<=$3 ;
SetProperty#16,90 posint=(id) string=(property) : d0<=$1 a0<=$2 ;
DeleteObject#16,91 posint=(id) : d0<=$1 ;
SetDelayedUpdate#16,92 boolean : d0<=$1 ;
GetIntProperty#16,103 posint=(id) string=(property) int=(value) : d0<=$1 a0<=$2 d2=>$3 ;
GetFloatProperty#16,104 posint=(id) string=(property) float=(value) : d0<=$1 a0<=$2 d2=>$3 ;
GetBoolProperty#16,105 posint=(id) string=(property) boolean=(value) : d0<=$1 a0<=$2 d2=>$3 ;
GetStringProperty#16,106 posint=(id) string=(property) string=(value) : d0<=$1 a0<=$2 a1=>$3 ;
GetFilenameProperty#16,106 posint=(id) string=(property) string=(value) : d0<=$1 a0<=$2 a1=>$3 ;
GetRGBProperty#16,107 posint=(id) string=(property) rgbvalue*3 : d0<=$1 a0<=$2 d2=>$3 d3=>$4 d4=>$5 ;
GetPointProperty#16,108 posint=(id) string=(property) point=(value) : d0<=$1 a0<=$2 d2=>$3.1 d3=>$3.2 ;
GetFloatPointProperty#16,109 posint=(id) string=(property) float*2 : d0<=$1 a0<=$2 d2=>$3 d3=>$4 ;
function
FGetIntProperty#16,103 =int posint=(id) string=(property) : d0<=$1 a0<=$2 d2=>$0 ;
FGetFloatProperty#16,104 =float posint=(id) string=(property) : d0<=$1 a0<=$2 d2=>$0 ;
FGetBoolProperty#16,105 =boolean posint=(id) string=(property) : d0<=$1 a0<=$2 d2=>$0 ;
FGetStringProperty#16,106 =string posint=(id) string=(property) : d0<=$1 a0<=$2 a1=>$0 ;
FGetFilenameProperty#16,106 =filename posint=(id) string=(property) : d0<=$1 a0<=$2 a1=>$0 ;
function
GetNextObjectID#16,94 =int : d0=>$0 ;
CreateObject#16,102 =anyobject string : d0=>$0 a0<=$1 ; //d1 used internally for object number
command
DestroyAllObjects#13,21 : d0<=1 ;
DestroyAllGlobalObjects#13,21 : d0<=2 ;
command
InitClick#16,95 filename : a0<=$1;
Click#16,96 : ;
on_video_finished#16,97 posint=(id) scriptref : d0!>$1 a0<=$2 d4<=0 ;
off_video_finished#16,97 : a0<=0 d4<=0 ;
BorderColour#16,99 rgbvalue*3 : d0<=$1 d1<=$2 d2<=$3;
SetActiveGroups#16,100 groupnumber>=0 groupnumber>=0 : a0<=$1 a1<=$2;
SetDefaultGroup#16,101 groupnumber : d0<=$1;
function
// These are the built-in maths functions
sin #6,1 =float float : d0<=$1 d0=>$0;
cos #6,2 =float float : d0<=$1 d0=>$0;
tan #6,3 =float float : d0<=$1 d0=>$0;
asin #6,4 =float float : d0<=$1 d0=>$0;
acos #6,5 =float float : d0<=$1 d0=>$0;
atan #6,6 =float float : d0<=$1 d0=>$0;
log #6,7 =float float : d0<=$1 d0=>$0; //log base e
log10 #6,8 =float float : d0<=$1 d0=>$0; //log base 10
exp #6,9 =float float : d0<=$1 d0=>$0; //e to the power x
sqrt #6,10 =float float : d0<=$1 d0=>$0;
pow #6,11 =float float=(x) float=(y) : d0<=$1 d1<=$2 d0=>$0; //x to the power y
float #6,12 =float int : d0<=$1 d0=>$0; //float the integer parameter
int #6,13 =int float : d0<=$1 d0=>$0; //convert the float parameter to the nearest integer
random#6,14 =float : d0=>$0; //return a pseudo-random number 0.0<=N<=1.0
command
// The built-in maths command for setting the random number seed. 1=>reset seed to default
randomise#6,15 int : d0<=$1;
function
max #6,16 =int int>=2 : d0=>$0 a0<=$1; //return the maximum value in the list
min #6,17 =int int>=2 : d0=>$0 a0<=$1; //return the minimum value in the list
fmax #6,18 =float float>=2 : d0=>$0 a0<=$1; //return the maximum value in the list
fmin #6,19 =float float>=2 : d0=>$0 a0<=$1; //return the minimum value in the list
abs #6,20 =int int : d0=>$0 d0<=$1; //return the absolute value
fabs #6,21 =float float : d0=>$0 d0<=$1; //return the absolute value
enum sortorder ascending descending;
command
sortint #6,22 int[] sortorder : a0<=>$1 d0<=$2;
sortfloat #6,23 float[] sortorder : a0<=>$1 d0<=$2;
sortstring #6,24 string[] sortorder : a0<=>$1 d0<=$2;
sortfilename#6,24 filename[] sortorder : a0<=>$1 d0<=$2;
sortuser #6,25 void[] void void int=(cbfunc) : a0<=>$1 a1!>$2 a2!>$3 a4<!$4;
sortintuser #6,26 int[] int int int=(cbfunc) : a0<=>$1 d0!>$2 d1!>$3 a4<!$4;
enumrange
// Type for TIDY$ string function
//lower => convert to lowercase
//upper => convert to uppercase. If neither or both lower and upper are specified neither is performed
//ltrim => remove leading whitespace
//rtrim => remove trailing whitespace
//compress => compress all sequences of whitespace to a single space
//whitespace is taken to be characters with ASCII codes 0-32 and 127
tidymode 0 31 lower=1 upper=2 ltrim=4 rtrim=8 compress=16;
function
// These are the built-in string functions - all pretty BASIC-like.
// Index 0 is the first character in a string.
LEFT$ #7,1 =STRING STRING BUFSIZ=(n) : a0<=$1 d0<=$2 a0=>$0; //return the leftmost n chars
MID$ #7,2 =STRING STRING INT=(first) BUFSIZ=(n) : a0<=$1 d0<=$2 d1<=$3 a0=>$0; //return the n chars beginning with first
RIGHT$ #7,3 =STRING STRING BUFSIZ=(n) : a0<=$1 d0<=$2 a0=>$0; //return the rightmost n chars
len #7,4 =int string : a0<=$1 d0=>$0; //return the length of the string
string$ #7,5 =string BUFSIZ=(n) string=(str) : d0<=$1 a0<=$2 a0=>$0; //return a string consisting of n copies of the first char of str
substr$ #7,6 =string string=(start) string=(source): a0<=$1 a1<=$2 a0=>$0; //return the sub-string in source beginning with start
substring$#7,6=string string=(source) string=(start): a1<=$1 a0<=$2 a0=>$0; //return the sub-string in source beginning with start
tidy$ #7,7 =string string tidymode : a0<=$1 d0<=$2 a0=>$0; //return a tidied version of the input string
instr #7,8 =int string=(source) string=(start) int=(startat) : a0<=$1 a1<=$2 d0<=$3 d0=>$0;
insert$ #7,9 =string string=(source) string=(target) BUFSIZ=(pos) : a0<=$1 a1<=$2 d0<=$3 a0=>$0; //return target with source inserted at pos
replace$ #7,10=string string=(source) string=(target) BUFSIZ=(pos) : a0<=$1 a1<=$2 d0<=$3 a0=>$0; //return target with source replaced at pos
snipleft$ #7,11=string string POSINT=(n) : a0<=$1 d0<=$2 a0=>$0; //return target with n chars removed from start
snipmid$ #7,12=string string BUFSIZ=(first) INT=(n): a0<=$1 d0<=$2 d1<=$3 a0=>$0; //return target with n chars removed from first
snipright$#7,13=string string POSINT=(n) : a0<=$1 d0<=$2 a0=>$0; //return target with n chars removed from end
command
replacein$#7,14 string=(source) string=(target) BUFSIZ=(pos) : a0<=$1 a1<=>$2 d0<=$3; //modify target with source replaced at pos
function
// These are the built-in type conversion functions
STRING #8,1 =STRING FILENAME : a0<=$1 a0=>$0; //convert FILENAME to STRING
FILENAME #8,2 =FILENAME STRING : a0<=$1 a0=>$0; //convert STRING to FILENAME
ftostr #8,3 =string float string : d0<=$1 a0<=$2 a0=>$0; //convert float to string using C format string
itostr #8,4 =string int : d0<=$1 a0=>$0; //convert integer to string
strtof #8,5 =float string : a0<=$1 d0=>$0; //convert string to float
strtoi #8,6 =int string : a0<=$1 d0=>$0; //convert string to integer
chr$ #8,7 =string int : d0<=$1 a0=>$0; //convert char code to single char string
asc #8,8 =int string : a0<=$1 d0=>$0; //convert first char of string to char code
hex$ #8,9 =string int : d0<=$1 a0=>$0; //convert integer to hex string
oct$ #8,10 =string int : d0<=$1 a0=>$0; //convert integer to octal string
bstrtoi #8,11 =int string int : a0<=$1 d0=>$0 d0<=$2; //convert base 2 or 16 string to integer
date$ #9,3 =string : a0=>$0; //return the date as a string "Wed Jan 02 1995"
time$ #9,4 =string : a0=>$0; //return the time as a string "15:30:22"
//TIMER and EVENT functions
/*
enum event_type timer; // MAX_EVENT in timer.c must match the range here
enum timer_type one_shot periodic;
command
on_event #11,1 event_type scriptref : d0<=$1 a0<=$2;
off_event #11,3 event_type : d0<=$1 ;
timer #11,2 posint=(period, "Interval in 1/10s") timer_type : d0<=$1 d1<=$2;
*/
//NOTE : printfinished is a special case!!!!!!!!!
enum event_type keydown keyup timer mouseclick rmouseclick printfinished mousedown mousemove; //NPET in primitiv.h related to the range here
enum timer_type timer_off one_shot periodic; //TimerState in primitiv.h must match the definition here
enumrange timer_id 0 1 timer0 timer1;
enumrange priority 0 4 lowest lower normal higher highest;
command
on_event#13,8 event_type posint posint scriptref : d2<=$1 d0!>$2 d1!>$3 a0<=$4;
timer#13,9 timer_id posint=(period, "Interval in 1/1000s") timer_type : d0<=$1 d1<=$2 d2<=$3;
off_event#13,10 event_type : d0<=$1;
on_print_finished#13,8 string scriptref : d2<=5 a1!>$1 a0<=$2 ;
off_print_finished#13,10 : d0<=5 ;
function
BrowserSetPriority#13,11 =int priority : d0<=$1 d0=>$0;
command
BrowserSetImageCache#13,12 objectstate posint=(NImages) posint=(NKBytes) : d0<=$1 d1<=$2 d2<=$3 ;
SetReadOnlyCache#13,15 objectstate filename filename : d0<=$1 a0<=$2 a1<=$3 ;
BrowserSetCursorBusy#13,16 boolean : d0<=$1 ;
BrowserShowCursor#13,17 boolean : d0<=$1 ;
BrowserSetHelpCursor#13,19 boolean : d0<=$1 ;
BrowserSetStatus#13,22 string : a0<=$1 ;
function
BrowserSetDisplayMode#13,18 =int posint filename : d0=>$0 d0<=$1 a0<=$2;
//END
// RenderWare(TM) Graphics Library
// TVML(TM) Script Interface definitions
private
RwCamera RwClump RwLight RwMaterial RwMatrix4d RwPolygon3d
RwRaster RwScene RwSpline RwStream RwTexture RwUserDraw RwPalette;
enum
RwAxisAlignment rwNAAXISALIGNMENT rwNOAXISALIGNMENT rwALIGNAXISZORIENTX rwALIGNAXISZORIENTY rwALIGNAXISXYZ ;
RwCameraProjection rwNACAMERAPROJECTION rwPERSPECTIVE rwPARALLEL ;
RwCombineOperation rwNACOMBINEOPERATION rwREPLACE rwPRECONCAT rwPOSTCONCAT ;
RwDebugSeverity rwNADEBUGMESSAGESEVERITY rwINFORM rwWARNING rwERROR ;
RwGeometrySampling rwNAGEOMETRYSAMPLING rwPOINTCLOUD rwWIREFRAME rwPOLYLINE rwSOLID ;
RwLightType rwNALIGHTTYPE rwDIRECTIONAL rwPOINT rwCONICAL ;
RwLightSampling rwNALIGHTSAMPLING rwFACET rwVERTEX ;
RwPickObject rwNAPICKOBJECT rwPICKCLUMP rwPICKVERTEX ;
RwSearchMode rwNASEARCHMODE rwLOCAL rwGLOBAL ;
RwSplineType rwNASPLINETYPE rwOPENLOOP rwCLOSEDLOOP ;
RwSplinePath rwNASPLINEPATH rwSMOOTH rwNICEENDS ;
RwState rwNASTATE rwOFF rwON ;
RwStreamType rwNASTREAM rwSTREAMFILE rwSTREAMFILENAME rwSTREAMMEMORY ;
RwStreamAccess rwNASTREAMACCESS rwSTREAMREAD rwSTREAMWRITE rwSTREAMAPPEND ;
RwTextureDitherMode rwNATEXTUREDITHER rwDITHERON rwDITHEROFF rwAUTODITHER ;
RwUserDrawType rwNAUSERDRAWTYPE rwCLUMPALIGN rwVERTEXALIGN rwBBOXALIGN rwVPALIGN ;
/*
RwSystemInfo
rwNASYSTEMINFO
rwVERSIONSTRING
rwVERSIONMAJOR
rwVERSIONMINOR
rwVERSIONRELEASE
rwFIXEDPOINTLIB
rwDEBUGGINGLIB ;
*/
enumrange
RwClumpHints 0 32767 rwCONTAINER=1 rwHS=2 rwEDITABLE=4 ;
RwTextureModes 0 32767 rwLIT=1 rwFORESHORTEN=2 rwFILTER=4 ;
RwRasterOptions 0 32767 rwAUTODITHERRASTER=%x0001 rwDITHERRASTER=%x0002 rwFITRASTER=%x0004
rwINDEXRASTER=%x0008 rwGAMMARASTER=%x0010 rwOFFSETRASTER=%x0020 ;
RwPaletteOptions 0 32767 rwGAMMAPALETTE=%x0001 ;
RwUserDrawAlignmentTypes 0 32767
rwALIGNTOP=%x0001 rwALIGNBOTTOM=%x0002
rwALIGNLEFT=%x0004 rwALIGNRIGHT=%x0008
rwALIGNTOPLEFT=%x0005 rwALIGNBOTTOMRIGHT=%x000a ;
RwMaterialModes 0 32767 rwDOUBLE=8 ;
RwDeviceInfo 0 32767
rwNADEVICEINFO=0
rwRENDERDEPTH=1
rwINDEXEDREBDERING=2
rwPALETTEBASED=3
rwPALETTE=4
rwPALETTESIZE=5
rwFIRSTPALETTEENTRY=6
rwLASTPALETTEENTRY=7
rwDEVICESPECIFICINFO=1000 ;
RwDeviceAction 0 32767
rwNADEVICEACTION=0
rwDEVICESPECIFICACTION=1000 rwWINSETOUTPUTSIZE=1000 ;
/*
RwOpenOption 0 32767
rwNAOPENACTION=0
rwNOOPENOPTION=1
rwGAMMACORECT=2
rwDEVICESPECIFICOPEN=1000 ;
*/
enum RwErrorCode
E_RW_NOERROR
E_RW_NULLP
E_RW_INVCOP
E_RW_NOMEM
E_RW_RSPARSE
E_RW_RSREAD
E_RW_WSWRITE
E_RW_DEGEN
E_RW_INVLIGHT
E_RW_SHPPATH
E_RW_READ
E_RW_RANGE
E_RW_WRITE
E_RW_NOFILE
E_RW_BADOPEN
E_RW_NOTROOT
E_RW_INVSPP
E_RW_INVSPT
E_RW_INVDEVICE
E_RW_INVMATERIAL
E_RW_INVFRAME
E_RW_INVFRAMESTEP
E_RW_INVTEXTUREWIDTH
E_RW_INVTEXTUREHEIGHT
E_RW_INVTEXTUREDEPTH
E_RW_INVVERTEXINDEX
E_RW_DEFSCENE
E_RW_INVGEOMETRYSAMPLING
E_RW_RSINVGEOMETRYSAMPLING
E_RW_INVLIGHTSAMPLING
E_RW_RSINVLIGHTSAMPLING
E_RW_NOPROTOTYPEFOUND
E_RW_ZEROVEC
E_RW_NESTEDMODEL
E_RW_NOMATCHBEGIN
E_RW_NOMATCHEND
E_RW_NESTEDPROTOTYPE
E_RW_NOMODELBEGIN
E_RW_INVPROTOTYPE
E_RW_NOCLUMP
E_RW_NOCLUMPBUILT
E_RW_DEGENPOLYGON
E_RW_COMPLEXPOLYGON
E_RW_TEXTURENOTFOUND
E_RW_INVTEXTURENAME
E_RW_INVCAMERAPROJECTION
E_RW_INVSTATE
E_RW_INVSEARCHMODE
E_RW_INVHINT
E_RW_USER
E_RW_INVAXISALIGNMENT
E_RW_INVUSERDRAWTYPE
E_RW_INVUSERDRAWALIGN
E_RW_RSINVTRACESTATE
E_RW_RSINVHINT
E_RW_RSINVAXISALIGNMENT
E_RW_INVSYSTEMINFO
E_RW_INVTEXTUREMODE
E_RW_RSINVTEXTUREMODE
E_RW_RSNOHINTS
E_RW_RSNOTEXTUREMODES
E_RW_INVRASTEROPTIONS
E_RW_INVTEXTUREDITHERMODE
E_RW_INVRASTERSIZE
E_RW_INVDEVICEINFO
E_RW_INVDEVICEACTION
E_RW_INVOPENOPTION
E_RW_RASTERINUSE
E_RW_RSINVDITHERMODE
E_RW_RSINVGAMMAMODE
E_RW_INVIMAGEFILE
E_RW_INVBUFFERSIZE
E_RW_INVMATERIALMODE
E_RW_RSINVMATERIALMODE
E_RW_RSNOMATERIALMODES
E_RW_INVPOLYGONINDEX
E_RW_CLUMPHASCOMPLEXPOLYGONS
E_RW_DEVICENOTFOUND
E_RW_DEVICEALREADYSTARTED
E_RW_UNABLETOSTARTDEVICE
E_RW_DEVICEINCORRECTVERSION
E_RW_DEVICENOTSTARTED
E_RW_NODEVICESPECIFIED
E_RW_NOSUITABLEDEVICE
E_RW_NODEVICESAVAILABLE
E_RW_LIBRARYNOTINITIALIZED
E_RW_INVSTREAMACCESSTYPE
E_RW_INVSTREAMTYPE
E_RW_ENDOFSTREAM
E_RW_INVALIDCHUNKTYPE
E_RW_INVALIDCHUNKSTRUCTURE
E_RW_NOTAUSERCREATEDRASTER
E_RW_ENVMAPOUTSIDECAMERAUPDATE
E_RW_TEXTUREHASNONAME
E_RW_TEXTURENOTINDICTIONARY
E_RW_INTERNAL
E_RW_MAXERROR ;
function
RwAddChildToClump#4,1 = RwClump RwClump =(clump) RwClump =(child) : a0=>$0 a0<=$1 a1<=$2 ;
RwAddClumpToScene#2,6 = RwScene RwScene =(scene) RwClump =(clump) : a0=>$0 a0<=$1 a1<=$2 ;
RwAddHint#4,2 = BOOL RwClumpHints =(hint) : d0=>$0 d0<=$1 ;
RwAddHintToClump#4,3 = RwClump RwClump =(clump) RwClumpHints =(hint) : a0=>$0 a0<=$1 d0<=$2 ;
RwAddLightToScene#2,7 = RwScene RwScene =(scene) RwLight =(light) : a0=>$0 a0<=$1 a1<=$2 ;
RwAddPolygonToClump#4,4 = RwPolygon3d RwClump =(clump) INT =(sides) INT>=3 : a0=>$0 a0<=$1 d0<=$2 a1<=$3 ;
RwAddPolygonsToClump#4,5 = RwClump RwClump =(dst) RwClump =(src) : a0=>$0 a0<=$1 a1<=$2 ;
RwAddTextureModeToMaterial#4,6 = RwMaterial RwMaterial =(m) RwTextureModes =(mode) : a0=>$0 a0<=$1 d0<=$2 ;
RwAddTextureModeToPolygon#4,7 = RwPolygon3d RwPolygon3d =(pol) RwTextureModes =(mode) : a0=>$0 a0<=$1 d0<=$2 ;
RwAddTextureModeToSurface#4,8 = BOOL RwTextureModes =(mode) : d0=>$0 d0<=$1;
//RwAddUserDrawToClump = RwClump RwClump =(clump) RwUserDraw =(userdraw) : a0=>$0 a0<=$1 a1<=$2 ;
RwAddVector#4,10 = BOOL RwReal>=3 RwReal>=3 RwReal[3] : d0=>$0 a0<=$1 a1<=$2 a2<=>$3 ;
RwAddVertexToClump#4,11 = INT RwClump =(clump) RwReal =(x) RwReal =(y) RwReal =(z) : d0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwBeginCameraUpdate#2,8 = RwCamera RwCamera =(cam) : a0=>$0 a0<=$1 ;
//RwBitmapRaster = RwRaster void =(bitmap) RwRasterOptions =(options) : a0=>$0 ;
RwBlock#4,13 = BOOL RwReal =(width) RwReal =(height) RwReal =(depth) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 ;
RwCalculateClumpVertexNormal#4,14 = RwClump RwClump =(clump) INT =(vindex) : a0=>$0 a0<=$1 d0<=$2 ;
RwClearCameraViewport#2,9 = RwCamera RwCamera =(cam) : a0=>$0 a0<=$1 ;
RwClumpBegin#4,15 = BOOL : d0=>$0 ;
RwClumpDistance#4,16 = RwReal RwClump =(clump) RwReal>=3 : d0=>$0 a0<=$1 a1<=$2 ;
RwRootClumpEnd#4,17 = RwClump RwClump =(instance) : a0=>$0 a1=>$1 ;
RwChildClumpEnd#4,419 = RwClump : a0=>$0 ;
RwCone#4,18 = BOOL RwReal =(height) RwReal =(radius) INT =(sides) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 ;
RwCopyMaterial#4,19 = RwMaterial RwMaterial =(src) RwMaterial =(dst) : a0=>$0 a0<=$1 a1<=$2 ;
RwCopyMatrix#4,20 = RwMatrix4d RwMatrix4d =(src) RwMatrix4d =(dst) : a0=>$0 a0<=$1 a1<=$2 ;
RwCreateCamera#2,10 = RwCamera INT =(maxw) INT =(maxh) : a0=>$0 d0<=$1 d1<=$2 ;
RwCreateClump#4,21 = RwClump INT =(vcount) INT =(pcount) : a0=>$0 d0<=$1 d1<=$2 ;
RwCreateLight#2,11 = RwLight RwLightType =(kind) RwReal =(x) RwReal =(y) RwReal =(z) RwReal =(lum) : a0=>$0 d0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5 ;
RwCreateMaterial#4,22 = RwMaterial : a0=>$0 ;
RwCreateMatrix#2,12 = RwMatrix4d : a0=>$0 ;
RwCreateRaster#4,23 = RwRaster INT =(w) INT =(h) : a0=>$0 d0<=$1 d1<=$2 ;
RwCreateScene#2,13 = RwScene : a0=>$0 ;
RwCreateSpline#4,24 = RwSpline INT =(npoints) RwSplineType =(type) RwReal[][3] : a0=>$0 d0<=$1 d1<=$2 a1<=>$3 ;
RwCreateSprite#4,25 = RwClump RwTexture =(texture) : a0=>$0 a0<=$1 ;
RwCreateTexture#4,26 = RwTexture RwRaster =(raster) : a0=>$0 a0<=$1 ;
//RwCreateUserDraw = RwUserDraw RwUserDrawType =(type) RwUserDrawAlignmentTypes =(align) INT =(x) INT =(y) INT =(width) INT =(height) RwUserDrawCallBack =(callback) : a0=>$0 ;
RwCrossProduct#4,28 = BOOL RwReal>=3 RwReal>=3 RwReal[3] : d0=>$0 a0<=$1 a1<=$2 a2<=>$3 ;
RwCubicTexturizeClump#4,29 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwCurrentMaterial#4,30 = RwMaterial : a0=>$0 ;
RwCylinder#4,31 = BOOL RwReal =(height) RwReal =(minrad) RwReal =(maxrad) INT =(sides) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 d3<=$4 ;
RwDamageCameraViewport#4,32 = RwCamera RwCamera =(cam) INT =(x) INT =(y) INT =(w) INT =(h) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 d3<=$5 ;
RwDefaultScene#4,33 = RwScene : a0=>$0 ;
RwDestroyCamera#2,14 = BOOL RwCamera =(cam) : d0=>$0 a0<=$1 ;
RwDestroyClump#4,34 = BOOL RwClump =(clump) : d0=>$0 a0<=$1 ;
RwDestroyLight#2,15 = BOOL RwLight =(light) : d0=>$0 a0<=$1 ;
RwDestroyMaterial#4,35 = BOOL RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwDestroyMatrix#2,16 = BOOL RwMatrix4d =(mat) : d0=>$0 a0<=$1 ;
RwDestroyPolygon#4,36 = BOOL RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwDestroyRaster#4,37 = BOOL RwRaster =(ras) : d0=>$0 a0<=$1 ;
RwDestroyScene#2,17 = BOOL RwScene =(scene) : d0=>$0 a0<=$1 ;
RwDestroySpline#4,38 = BOOL RwSpline =(spline) : d0=>$0 a0<=$1 ;
RwDestroyTexture#4,39 = BOOL RwTexture =(t) : d0=>$0 a0<=$1 ;
RwDestroyUserDraw#4,40 = BOOL RwUserDraw =(userdraw) : d0=>$0 a0<=$1;
RwDeviceControl#2,18 = INT RwDeviceAction =(action) RwCamera INT =(param1) INT =(param2) : d0=>$0 d0<=$1 a0<=$2 d1<=$3 d2<=$4 ;
RwDisc#4,41 = BOOL RwReal =(height) RwReal =(radius) INT =(sides) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 ;
RwDotProduct#4,42 = RwReal RwReal>=3 RwReal>=3 : d0=>$0 a0<=$1 a1<=$2 ;
RwDuplicateCamera#4,43 = RwCamera RwCamera =(cam) : a0=>$0 a0<=$1 ;
RwDuplicateClump#2,19 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwDuplicateLight#2,20 = RwLight RwLight =(light) : a0=>$0 a0<=$1 ;
RwDuplicateMaterial#2,21= RwMaterial RwMaterial =(src) : a0=>$0 a0<=$1 ;
RwDuplicateMatrix#2,22 = RwMatrix4d RwMatrix4d =(mat) : a0=>$0 a0<=$1 ;
RwDuplicateRaster#2,23 = RwRaster RwRaster =(ras) : a0=>$0 a0<=$1 ;
RwDuplicateSpline#2,24 = RwSpline RwSpline =(spline) : a0=>$0 a0<=$1 ;
RwDuplicateUserDraw#4,44= RwUserDraw RwUserDraw =(userdraw) : a0=>$0 a0<=$1 ;
RwEndCameraUpdate#2,25 = RwCamera RwCamera =(cam) : a0=>$0 a0<=$1 ;
RwEnvMapClump#4,45 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwFindClump#4,46 = RwClump RwClump =(clump) BOOL=(predicatefunc) RwClump =(cbclump) : a0=>$0 a0<=$1 a1<!$2 a2!>$3 ;
RwFindClumpInt#4,47 = RwClump RwClump =(clump) BOOL=(predicatefunc) RwClump =(cbclump) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwFindClumpLong#4,48 = RwClump RwClump =(clump) BOOL=(predicatefunc) RwClump =(cbclump) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwFindClumpPointer#4,49 = RwClump RwClump =(clump) BOOL=(predicatefunc) RwClump =(cbclump) VOID : a0=>$0 a0<=$1 a1<!$2 a2!>$3 a3<!>$4 ;
RwFindClumpReal#4,50 = RwClump RwClump =(clump) BOOL=(predicatefunc) RwClump =(cbclump) RwReal : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwFindNamedTexture#4,51 = RwTexture STRING =(name) : a0=>$0 a0<=$1 ;
RwFindTaggedClump#4,52 = RwClump RwClump =(clump) INT =(tag) : a0=>$0 a0<=$1 d0<=$2 ;
RwFindTaggedPolygon#4,53= RwPolygon3d RwClump =(clump) INT =(tag) : a0=>$0 a0<=$1 d0<=$2 ;
RwForAllClumpsInHierarchy#4,54 = RwClump RwClump =(clump) RwClump =(func) RwClump=(cbclump) : a0=>$0 a0<=$1 a1<!$2 a2!>$3 ;
RwForAllClumpsInHierarchyInt#4,55 = RwClump RwClump =(clump) RwClump =(func) RwClump=(cbclump) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllClumpsInHierarchyLong#4,56 = RwClump RwClump =(clump) RwClump =(func) RwClump=(cbclump) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllClumpsInHierarchyPointer#4,57 = RwClump RwClump =(clump) RwClump =(func) RwClump=(cbclump) VOID : a0=>$0 a0<=$1 a1<!$2 a2!>$3 a3<!>$4 ;
RwForAllClumpsInHierarchyReal#4,58 = RwClump RwClump =(clump) RwClump =(func) RwClump=(cbclump) RwReal: a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllClumpsInScene#4,59 = RwScene RwScene =(scene) RwClump =(func) RwClump=(cbclump) : a0=>$0 a0<=$1 a1<!$2 a2!>$3 ;
RwForAllClumpsInSceneInt#4,60 = RwScene RwScene =(scene) RwClump =(func) RwClump=(cbclump) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllClumpsInSceneLong#4,61 = RwScene RwScene =(scene) RwClump =(func) RwClump=(cbclump) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllClumpsInScenePointer#4,62 = RwScene RwScene =(scene) RwClump =(func) RwClump=(cbclump) VOID : a0=>$0 a0<=$1 a1<!$2 a2!>$3 a3<!>$4 ;
RwForAllClumpsInSceneReal#4,63 = RwScene RwScene =(scene) RwClump =(func) RwClump=(cbclump) RwReal: a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllLightsInScene#4,64 = RwScene RwScene =(scene) RwLight =(func) RwLight=(cblight) : a0=>$0 a0<=$1 a1<!$2 a2!>$3 ;
RwForAllLightsInSceneInt#4,65 = RwScene RwScene =(scene) RwLight =(func) RwLight=(cblight) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllLightsInSceneLong#4,66 = RwScene RwScene =(scene) RwLight =(func) RwLight=(cblight) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllLightsInScenePointer#4,67 = RwScene RwScene =(scene) RwLight =(func) RwLight=(cblight) VOID : a0=>$0 a0<=$1 a1<!$2 a2!>$3 a3<!>$4 ;
RwForAllLightsInSceneReal#4,68 = RwScene RwScene =(scene) RwLight =(func) RwLight=(cblight) RwReal: a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllNamedTextures#4,69 = BOOL RwTexture =(func) RwTexture=(cbtexture) : d0=>$0 a1<!$1 a2!>$2 ;
RwForAllNamedTexturesInt#4,70 = BOOL RwTexture =(func) RwTexture=(cbtexture) INT : d0=>$0 a1<!$1 a2!>$2 d1<!>$3;
RwForAllNamedTexturesLong#4,71 = BOOL RwTexture =(func) RwTexture=(cbtexture) INT : d0=>$0 a1<!$1 a2!>$2 d1<!>$3;
RwForAllNamedTexturesPointer#4,72 = BOOL RwTexture =(func) RwTexture=(cbtexture) VOID : d0=>$0 a1<!$1 a2!>$2 a3<!>$3;
RwForAllNamedTexturesReal#4,73 = BOOL RwTexture =(func) RwTexture=(cbtexture) RwReal: d0=>$0 a1<!$1 a2!>$2 d1<!>$3;
RwForAllPolygonsInClump#4,74 = RwClump RwClump =(clump) RwPolygon3d =(func) RwPolygon3d=(cbpoly) : a0=>$0 a0<=$1 a1<!$2 a2!>$3 ;
RwForAllPolygonsInClumpInt#4,75 = RwClump RwClump =(clump) RwPolygon3d =(func) RwPolygon3d=(cbpoly) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllPolygonsInClumpLong#4,76 = RwClump RwClump =(clump) RwPolygon3d =(func) RwPolygon3d=(cbpoly) INT : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwForAllPolygonsInClumpPointer#4,77 = RwClump RwClump =(clump) RwPolygon3d =(func) RwPolygon3d=(cbpoly) VOID : a0=>$0 a0<=$1 a1<!$2 a2!>$3 a3<!>$4 ;
RwForAllPolygonsInClumpReal#4,78 = RwClump RwClump =(clump) RwPolygon3d =(func) RwPolygon3d=(cbpoly) RwReal : a0=>$0 a0<=$1 a1<!$2 a2!>$3 d1<!>$4 ;
RwGetCameraBackColor#4,79 = BOOL RwCamera =(cam) RwReal*3 : d0=>$0 a0<=$1 d1=>$2 d2=>$3 d3=>$4 ;
RwGetCameraBackdrop#4,80 = RwRaster RwCamera =(cam) : a0=>$0 a0<=$1 ;
RwGetCameraBackdropOffset#2,29 = RwCamera RwCamera =(cam) INT =(x) INT =(y) : a0=>$0 a0<=$1 d0=>$2 d1=>$3 ;
RwGetCameraBackdropViewportRect#4,81 = RwCamera RwCamera =(cam) INT =(x) INT =(y) INT =(w) INT =(h) : a0=>$0 a0<=$1 d0=>$2 d1=>$3 d2=>$4 d3=>$5 ;
RwGetCameraLookAt#2,30 = BOOL RwCamera =(cam) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetCameraLookRight#4,82 = BOOL RwCamera =(cam) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetCameraLookUp#4,83 = BOOL RwCamera =(cam) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetCameraNearClipping#4,84= RwReal RwCamera =(cam) : d0=>$0 a0<=$1 ;
RwGetCameraFarClipping#4,85 = RwReal RwCamera =(cam) : d0=>$0 a0<=$1 ;
RwGetCameraPosition#2,31 = BOOL RwCamera =(cam) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetCameraProjection#4,86 = RwCameraProjection RwCamera =(cam) : d0=>$0 a0<=$1 ;
RwGetCameraViewOffset#4,87 = BOOL RwCamera =(cam) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetCameraViewport#2,32 = RwCamera RwCamera =(cam) INT =(x) INT =(y) INT =(w) INT =(h) : a0=>$0 a0<=$1 d0=>$2 d1=>$3 d2=>$4 d3=>$5 ;
//RwGetCameraViewportRaster#4,88 = RwRaster RwCamera =(cam) RwRaster =(ras) : a0=>$0 a0<=$1 a1=>$2 ;
RwGetCameraViewwindow#4,89 = RwCamera RwCamera =(cam) RwReal =(w) RwReal =(h) : a0=>$0 a0<=$1 d0=>$2 d1=>$3 ;
RwGetClumpBBox#4,90 = RwClump RwClump =(clump) RwReal[3] RwReal[3] : a0=>$0 a0<=$1 a1<=>$2 a2<=>$3 ;
RwGetClumpAxisAlignment#4,91= RwAxisAlignment RwClump =(clump) : d0=>$0 a0<=$1 ;
RwGetClumpDataInt#2,33 = INT RwClump=(clump) : d0=>$0 a0<=$1 ;
RwGetClumpDataReal#4,92 = RwReal RwClump=(clump) : d0=>$0 a0<=$1 ;
RwGetClumpHints#4,93 = RwClumpHints RwClump =(clump) : d0=>$0 a0<=$1 ;
RwGetClumpJointMatrix#4,94 = RwMatrix4d RwClump =(clump) RwMatrix4d =(mat) : a0=>$0 a0<=$1 a1<=$2 ;
RwGetClumpLocalBBox#4,95 = RwClump RwClump =(clump) RwReal[3] RwReal[3] : a0=>$0 a0<=$1 a1<=>$2 a2<=>$3 ;
RwGetClumpLTM#4,96 = RwMatrix4d RwClump =(clump) RwMatrix4d =(mat) : a0=>$0 a0<=$1 a1<=$2 ;
RwGetClumpMatrix#4,97 = RwMatrix4d RwClump =(clump) RwMatrix4d =(mat) : a0=>$0 a0<=$1 a1<=$2 ;
RwGetClumpNumChildren#4,98 = INT RwClump =(clump) : d0=>$0 a0<=$1 ;
RwGetClumpNumPolygons#4,99 = INT RwClump =(clump) : d0=>$0 a0<=$1 ;
RwGetClumpNumUserDraws#4,100= INT RwClump =(clump) : d0=>$0 a0<=$1 ;
RwGetClumpNumVertices#4,101 = INT RwClump =(clump) : d0=>$0 a0<=$1 ;
RwGetClumpOrigin#4,102 = BOOL RwClump RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetClumpOwner#4,103 = RwScene RwClump =(clump) : a0=>$0 a0<=$1 ;
RwGetClumpParent#4,104 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwGetClumpRoot#4,105 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwGetClumpState#4,106 = RwState RwClump =(clump) : d0=>$0 a0<=$1 ;
RwGetClumpTag#4,107 = INT RwClump =(clump) : d0=>$0 a0<=$1 ;
RwGetClumpVertex#4,108 = BOOL RwClump =(clump) INT =(index) RwReal[3] : d0=>$0 a0<=$1 d1<=$2 a1<=>$3 ;
RwGetClumpVertexNormal#4,109= BOOL RwClump =(clump) INT =(index) RwReal[3] : d0=>$0 a0<=$1 d1<=$2 a1<=>$3 ;
RwGetClumpVertexUV#4,110 = BOOL RwClump =(clump) INT =(index) RwReal*2 : d0=>$0 a0<=$1 d0<=$2 d1=>$3 d2=>$4 ;
RwGetClumpVertexViewportPosition#4,111 = BOOL RwClump =(clump) INT =(vindex) RwCamera =(camera) INT =(px) INT =(py) BOOL =(visible) : d0=>$0 a0<=$1 d0<=$2 a1<=$3 d1=>$4 d2=>$5 d3=>$6 ;
RwGetClumpViewportRect#4,112 = RwClump RwClump =(clump) RwCamera =(cam) INT =(x) INT =(y) INT =(w) INT =(h) : a0=>$0 a0<=$1 a1<=$2 d0=>$3 d1=>$4 d2=>$5 d3=>$6;
RwGetDebugAssertionState#4,113 = RwState : d0=>$0 ;
RwGetDebugMessageState#4,114 = RwState : d0=>$0 ;
RwGetDebugScriptState#4,115 = RwState : d0=>$0 ;
RwGetDebugSeverity#4,116 = RwDebugSeverity : d0=>$0 ;
RwGetDebugTraceState#4,117 = RwState : d0=>$0 ;
RwGetDeviceInfo#4,118 = BOOL RwDeviceInfo =(info) INT =(value) : d0=>$0 d0<=$1 d1=>$2 ;
RwGetError#2,68 = RwErrorCode : d0=>$0 ;
RwGetFirstChildClump#4,119 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwGetLightBrightness#4,120 = RwReal RwLight =(light) : d0=>$0 a0<=$1 ;
RwGetLightColor#4,121 = BOOL RwLight =(light) RwReal*3 : d0=>$0 a0<=$1 d1=>$2 d2=>$3 d3=>$4 ;
RwGetLightConeAngle#4,122 = RwReal RwLight =(light) : d0=>$0 a0<=$1 ;
RwGetLightDataInt#4,123 = INT RwLight =(light) : d0=>$0 a0<=$1 ;
RwGetLightDataReal#4,124 = RwReal RwLight =(light) : d0=>$0 a0<=$1 ;
RwGetLightOwner#4,125 = RwScene RwLight =(light) : a0=>$0 a0<=$1 ;
RwGetLightPosition#4,126 = BOOL RwLight =(light) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetLightState#4,127 = RwState RwLight =(light) : d0=>$0 a0<=$1 ;
RwGetLightType#4,349 = RwLightType RwLight =(light) : d0=>$0 a0<=$1 ;
RwGetLightVector#4,128 = BOOL RwLight =(light) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetMaterialAmbient#4,129 = RwReal RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwGetMaterialColor#4,130 = BOOL RwMaterial =(m) RwReal*3 : d0=>$0 a0<=$1 d1=>$2 d2=>$3 d3=>$4 ;
RwGetMaterialDataInt#4,131 = INT RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwGetMaterialDataReal#4,132 = RwReal RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwGetMaterialDiffuse#4,133 = RwReal RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwGetMaterialGeometrySampling#4,134 = RwGeometrySampling RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwGetMaterialLightSampling#4,135 = RwLightSampling RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwGetMaterialOpacity#4,136 = RwReal RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwGetMaterialSpecular#4,137 = RwReal RwMaterial =(m) : d0=>$0 a0<=$1 ;
RwGetMaterialTexture#4,138 = RwTexture RwMaterial =(m) : a0=>$0 a0<=$1;
RwGetMaterialTextureModes#4,139 = RwTextureModes RwMaterial =(m) : d0=>$0 a0<=$1;
RwGetMatrixElement#4,140 = RwReal RwMatrix4d =(mat) INT =(i) INT =(j) : d0=>$0 a0<=$1 d0<=$2 d1<=$3 ;
RwGetMatrixElements#4,141 = BOOL RwMatrix4d =(mat) RwReal[][] : d0=>$0 a0<=$1 a1<=>$2;
RwGetNamedTexture#4,142 = RwTexture STRING =(name) : a0=>$0 a0<=$1 ;
RwGetNextClump#4,143 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwGetNumNamedTextures#4,144 = INT : d0=>$0 ;
//RwGetPaletteEntries#4,145 = RwPaletteEntry INT =(n) INT =(length) RwPaletteEntry =(rgb) : a0=>$0 ;
RwGetPolygonAmbient#4,146 = RwReal RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonCenter#4,147 = BOOL RwPolygon3d =(pol) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetPolygonColor#4,148 = BOOL RwPolygon3d =(pol) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetPolygonDataInt#4,149 = INT RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonDataReal#4,150 = RwReal RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonDiffuse#4,151 = RwReal RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonGeometrySampling#4,152 = RwGeometrySampling RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonLightSampling#4,153 = RwLightSampling RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonMaterial#4,154 = RwMaterial RwPolygon3d =(pol) : a0=>$0 a0<=$1 ;
RwGetPolygonNormal#4,155 = BOOL RwPolygon3d =(pol) RwReal[3] : d0=>$0 a0<=$1 a1<=>$2 ;
RwGetPolygonNumSides#4,156 = INT RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonOpacity#4,157 = RwReal RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonOwner#4,158 = RwClump RwPolygon3d =(pol) : a0=>$0 a0<=$1 ;
RwGetPolygonSpecular#4,159 = RwReal RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonTag#4,160 = INT RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonTexture#4,161 = RwTexture RwPolygon3d =(pol) : a0=>$0 a0<=$1 ;
RwGetPolygonTextureModes#4,162 = RwTextureModes RwPolygon3d =(pol) : d0=>$0 a0<=$1 ;
RwGetPolygonUV#4,163 = BOOL RwPolygon3d =(pol) RwReal*2 : d0=>$0 a0<=$1 d1=>$2 d2=>$3 ;
//RwGetPolygonVertices#4,164= INT RwPolygon3d =(pol) INT =(varray) : d0=>$0 a0<=$1 ;
RwGetRasterDataInt#4,165 = INT RwRaster =(ras) : d0=>$0 a0<=$1 ;
RwGetRasterDataReal#4,166 = RwReal RwRaster =(ras) : d0=>$0 a0<=$1 ;
RwGetRasterDepth#4,167 = INT RwRaster =(ras) : d0=>$0 a0<=$1 ;
RwGetRasterHeight#4,168 = INT RwRaster =(ras) : d0=>$0 a0<=$1 ;
//RwGetRasterPixels#4,169 = STRING RwRaster =(ras) : a0=>$0 a0<=$1 ;
RwGetRasterStride#4,170 = INT RwRaster =(ras) : d0=>$0 a0<=$1 ;
RwGetRasterWidth#4,171 = INT RwRaster =(ras) : d0=>$0 a0<=$1 ;
RwGetSceneDataInt#4,172 = INT RwScene =(scene) : d0=>$0 a0<=$1 ;
RwGetSceneDataReal#4,173 = RwReal RwScene =(scene) : d0=>$0 a0<=$1 ;
RwGetSceneNumClumps#4,174 = INT RwScene =(scene) : d0=>$0 a0<=$1 ;
RwGetSceneNumLights#4,175 = INT RwScene =(scene) : d0=>$0 a0<=$1 ;
RwGetShapePath#4,176 = BOOL FILENAME =(path) : d0=>$0 a0=>$1 ;
RwGetSplineDataInt#4,177 = INT RwSpline =(spline) : d0=>$0 a0<=$1 ;
RwGetSplineDataReal#4,178 = RwReal RwSpline =(spline) : d0=>$0 a0<=$1 ;
RwGetSplineNumPoints#4,179 = INT RwSpline =(spline) : d0=>$0 a0<=$1 ;
RwGetSplinePoint#4,180 = BOOL RwSpline =(spline) INT =(index) RwReal[3] : d0=>$0 a0<=$1 d0<=$2 a1<=>$3 ;
RwGetSystemInfo#4,181 = BOOL STRING =(verstring) INT=(major) INT=(minor) STRING=(rel) INT=(fixed) INT=(debug) : d0=>$0 a0=>$1 d1=>$2 d2=>$3 a1=>$4 d3=>$5 d4=>$6 ;
RwGetTextureDataInt#4,182 = INT RwTexture =(t) : d0=>$0 a0<=$1 ;
RwGetTextureDataReal#4,183 = RwReal RwTexture =(t) : d0=>$0 a0<=$1 ;
RwGetTextureDictSearchMode#4,184 = RwSearchMode : d0=>$0 ;
RwGetTextureDithering#4,185 = RwTextureDitherMode : d0=>$0 ;
RwGetTextureFrame#4,186 = INT RwTexture =(t) : d0=>$0 a0<=$1 ;
RwGetTextureFrameStep#4,187 = INT RwTexture =(t) : d0=>$0 a0<=$1 ;
RwGetTextureGammaCorrection#4,350 = RwState : d0=>$0 ;
RwGetTextureName#4,188 = BOOL RwTexture =(t) STRING =(name) : d0=>$0 a0<=$1 a1=>$2 ;
RwGetTextureNumFrames#4,189 = INT RwTexture =(t) : d0=>$0 a0<=$1 ;
RwGetTextureRaster#4,190 = RwRaster RwTexture =(t) : a0=>$0 a0<=$1 ;
//RwGetUserDrawAlignment = RwUserDrawAlignmentTypes RwUserDraw =(userdraw) : d0=>$0 ;
////RwGetUserDrawCallback = RwUserDrawCallBack RwUserDraw =(userdraw) : a0=>$0 ;
//RwGetUserDrawOffset = RwUserDraw RwUserDraw =(userdraw) INT =(x) INT =(y) : a0=>$0 ;
//RwGetUserDrawOwner = RwClump RwUserDraw =(userdraw) : a0=>$0 ;
//RwGetUserDrawParentAlignment = RwUserDrawAlignmentTypes RwUserDraw =(userdraw) : d0=>$0 ;
//RwGetUserDrawSize = RwUserDraw RwUserDraw =(userdraw) INT =(width) INT =(height) : a0=>$0 ;
//RwGetUserDrawType = RwUserDrawType RwUserDraw =(userdraw) : d0=>$0 ;
//RwGetUserDrawVertexIndex = INT RwUserDraw=(userdraw) : d0=>$0 ;
RwHemisphere#4,191 = BOOL RwReal =(radius) INT =(sides) : d0=>$0 d0<=$1 d1<=$2 ;
RwIdentityCTM#4,192 = BOOL : d0=>$0 ;
RwIdentityJointTM#4,193 = BOOL : d0=>$0 ;
RwIdentityMatrix#4,194 = RwMatrix4d RwMatrix4d =(mat) : a0=>$0 a0<=$1 ;
RwInclude#4,195 = BOOL RwClump =(clump) : d0=>$0 a0<=$1 ;
RwIncludeGeometry#4,196 = BOOL RwClump =(clump) : d0=>$0 a0<=$1 ;
RwInvalidateCameraViewport#2,35 = RwCamera RwCamera =(cam) : a0=>$0 a0<=$1 ;
RwInvertMatrix#4,197 = RwMatrix4d RwMatrix4d =(src) RwMatrix4d =(dst) : a0=>$0 a0<=$1 a1<=$2 ;
RwJointTransformBegin#4,198 = BOOL : d0=>$0 ;
RwJointTransformEnd#4,199 = BOOL : d0=>$0 ;
RwMaskTexture#4,200 = RwTexture RwTexture =(texture) RwRaster =(mask) : a0=>$0 a0<=$1 a1<=$2 ;
RwMaterialBegin#4,201 = BOOL : d0=>$0 ;
RwMaterialEnd#4,202 = BOOL : d0=>$0 ;
RwModelBegin#4,203 = BOOL : d0=>$0 ;
RwModelEnd#4,204 = BOOL : d0=>$0 ;
RwMultiplyMatrix#4,205 = RwMatrix4d RwMatrix4d =(a) RwMatrix4d =(b) RwMatrix4d =(c) : a0=>$0 a0<=$1 a1<=$2 a2<=$3 ;
RwNormalize#4,206 = BOOL RwReal[3] : d0=>$0 a1<=>$1 ;
RwNormalizeClump#4,207 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
//RwOpen = BOOL FILENAME =(devname) /*void =(param)*/ : d0=>$0 ;
RwOpenDebugStream#4,208 = BOOL FILENAME =(filename) : d0=>$0 a0<=$1 ;
//RwOpenExt = BOOL FILENAME =(devname) /*void =(param) INT =(numargs) RwOpenArgument =(args)*/ : d0=>$0 ;
RwOrthoNormalizeMatrix#2,36 = RwMatrix4d RwMatrix4d =(src) RwMatrix4d =(dst) : a0=>$0 a0<=$1 a1<=$2 ;
RwPanCamera#4,209 = RwCamera RwCamera =(cam) RwReal =(theta) : a0=>$0 a0<=$1 d0<=$2 ;
RwPickClump#4,210 = RwClump RwClump =(clump) INT =(x) INT =(y) RwCamera =(cam) RwPickObject RwClump =(clump) RwPolygon3d INT=(vindex) INT=(d2) RwReal*3 :
a0=>$0 a0<=$1 d0<=$2 d1<=$3 a1<=$4 d2=>$5 a2=>$6 a3=>$7 d4=>$8 d5=>$9 d6=>$10 d7=>$11 d8=>$12 ;
RwPickScene#4,211 = RwScene RwScene =(scene) INT =(x) INT =(y) RwCamera =(cam) RwPickObject RwClump =(clump) RwPolygon3d INT=(vindex) INT=(d2) RwReal*3 :
a0=>$0 a0<=$1 d0<=$2 d1<=$3 a1<=$4 d2=>$5 a2=>$6 a3=>$7 d4=>$8 d5=>$9 d6=>$10 d7=>$11 d8=>$12 ;
RwPointCamera#4,212 = RwCamera RwCamera =(cam) RwReal =(x) RwReal =(y) RwReal =(z) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwPolygon#4,213 = BOOL INT >=1 : d0=>$0 a0<=$1 ;
RwPolygonExt#4,214 = BOOL INT >=1 INT =(tag) : d0=>$0 a0<=$1 d1<=$2 ;
RwPopCurrentMaterial#4,215 = RwMaterial : a0=>$0 ;
RwPopScratchMatrix#2,37 = RwMatrix4d : a0=>$0 ;
RwProtoBegin#4,216 = BOOL STRING =(name) : d0=>$0 a0<=$1 ;
RwProtoEnd#4,217 = BOOL : d0=>$0 ;
RwProtoInstance#4,218 = BOOL STRING =(name) : d0=>$0 a0<=$1 ;
RwProtoInstanceGeometry#4,219 = BOOL STRING =(name) : d0=>$0 a0<=$1 ;
RwPushCurrentMaterial#4,220 = RwMaterial : a0=>$0 ;
RwPushScratchMatrix#2,38 = RwMatrix4d : a0=>$0 ;
RwQuad#4,221 = BOOL INT =(v1) INT =(v2) INT =(v3) INT =(v4) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 d3<=$4 ;
RwQuadExt#4,222 = BOOL INT =(v1) INT =(v2) INT =(v3) INT =(v4) INT =(tag) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5 ;
RwQueryRotateMatrix#4,223 = RwMatrix4d RwMatrix4d =(mat) RwReal[3] RwReal =(degrees) RwReal[3] : a0=>$0 a0<=$1 a1<=>$2 d1=>$3 a2<=>$4 ;
RwRandom#2,39 = INT : d0=>$0 ;
RwReadMaskRaster#4,224 = RwRaster FILENAME=(name) : a0=>$0 a0<=$1 ;
RwReadNamedTexture#4,225 = RwTexture FILENAME=(name) : a0=>$0 a0<=$1 ;
RwReadRaster#2,40 = RwRaster FILENAME=(name) RwRasterOptions =(options) : a0=>$0 a0<=$1 d0<=$2 ;
RwReadShape#2,41 = RwClump FILENAME=(name) : a0=>$0 a0<=$1 ;
RwReadTexture#4,226 = RwTexture STRING =(name) : a0=>$0 a0<=$1 ;
//RwReleaseRasterPixels = RwRaster RwRaster =(raster) INT=(pixels) : a0=>$0 ;
RwRemoveChildFromClump#4,227= RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwRemoveClumpFromScene#4,228= RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwRemoveHint#4,229 = BOOL RwClumpHints =(hint) : d0=>$0 d0<=$1 ;
RwRemoveHintFromClump#4,230 = RwClump RwClump =(clump) RwClumpHints =(hint) : a0=>$0 a0<=$1 d0<=$2 ;
RwRemoveLightFromScene#4,231= RwLight RwLight =(light) : a0=>$0 a0<=$1 ;
RwRemoveTextureModeFromMaterial#4,232 = RwMaterial RwMaterial =(m) RwTextureModes =(mode) : a0=>$0 a0<=$1 d0<=$2 ;
RwRemoveTextureModeFromPolygon#4,233 = RwPolygon3d RwPolygon3d =(pol) RwTextureModes =(mode) : a0=>$0 a0<=$1 d0<=$2 ;
RwRemoveTextureModeFromSurface#4,234 = BOOL RwTextureModes =(mode) : d0=>$0 d0<=$1 ;
//RwRemoveUserDrawFromClump = RwUserDraw RwUserDraw =(userdraw) : a0=>$0 a0<=$1 ;
RwRenderClump#2,42 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwRenderScene#2,67 = RwScene RwScene =(scene) : a0=>$0 a0<=$1 ;
RwResetCamera#4,235 = RwCamera RwCamera =(cam) : a0=>$0 a0<=$1 ;
RwReversePolygonFace#4,236 = RwPolygon3d RwPolygon3d =(pol) : a0=>$0 a0<=$1 ;
RwRevolveCamera#4,237 = RwCamera RwCamera =(cam) RwReal =(theta) : a0=>$0 a0<=$1 d0<=$2 ;
RwRotateCTM#4,238 = BOOL RwReal =(ax) RwReal =(ay) RwReal =(az) RwReal =(theta) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 d3<=$4 ;
RwRotateJointTM#4,239 = BOOL RwReal =(ax) RwReal =(ay) RwReal =(az) RwReal =(theta) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 d3<=$4 ;
RwRotateMatrix#2,43 = RwMatrix4d RwMatrix4d =(mat) RwReal =(vx) RwReal =(vy) RwReal =(vz) RwReal =(theta) RwCombineOperation =(op) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 d3<=$5 d4<=$6 ;
RwRotateMatrixCos#4,240 = RwMatrix4d RwMatrix4d =(mat) RwReal =(vx) RwReal =(vy) RwReal =(vz) RwReal =(ctheta) RwReal =(dir) RwCombineOperation =(op) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 d3<=$5 d4<=$6 d5<=$7 ;
RwScaleCTM#4,241 = BOOL RwReal =(sx) RwReal =(sy) RwReal =(sz) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 ;
RwScaleMatrix#2,44 = RwMatrix4d RwMatrix4d =(mat) RwReal =(sx) RwReal =(sy) RwReal =(sz) RwCombineOperation =(op) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 d3<=$5 ;
RwScaleVector#4,242 = BOOL RwReal>=3 RwReal =(scale) RwReal[3] : d0=>$0 a0<=$1 d1<=$2 a1<=>$3 ;
RwScratchMatrix#2,45 = RwMatrix4d : a0=>$0 ;
RwSetCameraBackColor#2,46 = RwCamera RwCamera =(cam) RwReal =(r) RwReal =(g) RwReal =(b) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
//RwSetCameraBackColorStruct= RwCamera RwCamera =(cam) RwRGBColor =(color) : a0=>$0 ;
RwSetCameraBackdrop#2,47 = RwCamera RwCamera =(cam) RwRaster =(ras) : a0=>$0 a0<=$1 a1<=$2 ;
RwSetCameraBackdropOffset#2,48 = RwCamera RwCamera =(cam) INT =(x) INT =(y) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 ;
RwSetCameraBackdropViewportRect#2,49 = RwCamera RwCamera =(cam) INT =(x) INT =(y) INT =(w) INT =(h) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 d3<=$5 ;
//
RwSetCameraDataInt#4,243 = RwCamera RwCamera =(cam) INT=(value) : a0=>$0 a0<=$1 d1<=$2 ;
RwSetCameraDataReal#4,244 = RwCamera RwCamera =(cam) RwReal=(value) : a0=>$0 a0<=$1 d1<=$2 ;
RwSetCameraLookAt#2,50 = RwCamera RwCamera =(cam) RwReal =(x) RwReal =(y) RwReal =(z) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwSetCameraLookUp#2,51 = RwCamera RwCamera =(cam) RwReal =(x) RwReal =(y) RwReal =(z) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwSetCameraNearClipping#4,245 = RwCamera RwCamera =(cam) RwReal =(neard) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetCameraFarClipping#4,246= RwCamera RwCamera =(cam) RwReal =(fard) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetCameraPosition#2,52 = RwCamera RwCamera =(cam) RwReal =(x) RwReal =(y) RwReal =(z) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwSetCameraProjection#4,247 = RwCamera RwCamera =(cam) RwCameraProjection =(kind) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetCameraViewOffset#4,248 = RwCamera RwCamera =(cam) RwReal =(x) RwReal =(y) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 ;
RwSetCameraViewport#2,53 = RwCamera RwCamera =(cam) INT =(x) INT =(y) INT =(w) INT =(h) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 d3<=$5 ;
RwSetCameraViewwindow#2,54 = RwCamera RwCamera =(cam) RwReal =(w) RwReal =(h) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 ;
RwSetClumpDataInt#2,55 = RwClump RwClump =(clump) int =(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetClumpDataReal#4,249 = RwClump RwClump =(clump) RwReal =(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetClumpAxisAlignment#4,250 = RwClump RwClump =(clump) RwAxisAlignment : a0=>$0 a0<=$1 d0<=$2 ;
RwSetClumpHints#4,251 = RwClump RwClump =(clump) RwClumpHints =(hints) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetClumpState#4,252 = RwClump RwClump =(clump) RwState =(onoff) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetClumpTag#4,253 = RwClump RwClump =(clump) INT =(tag) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetClumpVertex#4,254 = RwClump RwClump =(clump) INT =(index) RwReal>=3 : a0=>$0 a0<=$1 d0<=$2 a1<=$3 ;
RwSetClumpVertexNormal#4,255= RwClump RwClump =(clump) INT =(index) RwReal>=3 : a0=>$0 a0<=$1 d0<=$2 a1<=$3 ;
RwSetClumpVertexUV#4,256 = RwClump RwClump =(clump) INT =(index) RwReal*2 : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4;
RwSetClumpVertices#4,257 = RwClump RwClump =(clump) INT>=1 RwReal[][3] INT =(n) : a0=>$0 a0<=$1 a1<=$2 a2<=>$3 d0<=$4 ;
//RwSetDebugStream#4,258 = BOOL FILE =(stream) : d0=>$0 a0<=$1 ;
RwSetAxisAlignment#4,259 = BOOL RwAxisAlignment =(alignment) : d0=>$0 d0<=$1 ;
RwSetHints#4,260 = BOOL RwClumpHints =(hints) : d0=>$0 d0<=$1 ;
RwSetLightBrightness#4,261 = RwLight RwLight =(light) RwReal =(lum) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetLightColor#4,262 = RwLight RwLight =(light) RwReal =(r) RwReal =(g) RwReal =(b) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
//RwSetLightColorStruct = RwLight RwLight =(light) RwRGBColor =(color) : a0=>$0 a0<=$1 ;
RwSetLightConeAngle#4,263 = RwLight RwLight =(light) RwReal =(theta) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetLightDataInt#4,264 = RwLight RwLight =(light) INT=(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetLightDataReal#4,265 = RwLight RwLight =(light) RwReal=(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetLightPosition#4,266 = RwLight RwLight =(light) RwReal =(x) RwReal =(y) RwReal =(z) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwSetLightState#4,267 = RwLight RwLight =(light) RwState =(state) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetLightVector#4,268 = RwLight RwLight =(light) RwReal =(x) RwReal =(y) RwReal =(z) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwSetMaterialAmbient#4,269 = RwMaterial RwMaterial =(m) RwReal =(ka) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialColor#4,270 = RwMaterial RwMaterial =(m) RwReal =(r) RwReal =(g) RwReal =(b) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
//RwSetMaterialColorStruct = RwMaterial RwMaterial =(m) RwRGBColor =(color) : a0=>$0 ;
RwSetMaterialDataInt#4,271 = RwMaterial RwMaterial =(m) INT=(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialDataReal#4,272 = RwMaterial RwMaterial =(m) RwReal=(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialDiffuse#4,273 = RwMaterial RwMaterial =(m) RwReal =(kd) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialGeometrySampling#4,274 = RwMaterial RwMaterial =(m) RwGeometrySampling =(t) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialLightSampling#4,275 = RwMaterial RwMaterial =(m) RwLightSampling =(t) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialOpacity#4,276 = RwMaterial RwMaterial =(m) RwReal =(opacity) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialSpecular#4,277 = RwMaterial RwMaterial =(m) RwReal =(ks) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialSurface#4,278 = RwMaterial RwMaterial =(m) RwReal =(ka) RwReal =(kd) RwReal =(ks) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4;
RwSetMaterialTexture#4,279 = RwMaterial RwMaterial =(m) RwTexture =(what) : a0=>$0 a0<=$1 a1<=$2 ;
RwSetMaterialTextureModes#4,280 = RwMaterial RwMaterial =(m) RwTextureModes =(modes) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMatrixElement#4,281 = RwMatrix4d RwMatrix4d =(mat) INT =(i) INT =(j) RwReal =(val) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwSetMatrixElements#4,282 = RwMatrix4d RwMatrix4d =(mat) RwReal[][] : a0=>$0 a0<=$1 a1<=>$2 ;
//RwSetPaletteEntries#4,284 = INT INT =(n) INT =(length) POSINT>=4 RwPaletteOptions =(options) : d0=>$0 ;
RwSetPolygonAmbient#4,284 = RwPolygon3d RwPolygon3d =(p) RwReal =(Ka) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonColor#4,285 = RwPolygon3d RwPolygon3d =(p) RwReal =(r) RwReal =(g) RwReal =(b) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
//RwSetPolygonColorStruct = RwPolygon3d RwPolygon3d =(p) RwRGBColor =(color) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonDataInt#4,286 = RwPolygon3d RwPolygon3d =(p) INT =(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonDataReal#4,287 = RwPolygon3d RwPolygon3d =(p) RwReal=(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonDiffuse#4,288 = RwPolygon3d RwPolygon3d =(p) RwReal=(Kd) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonGeometrySampling#4,289 = RwPolygon3d RwPolygon3d =(p) RwGeometrySampling =(t) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonLightSampling#4,290 = RwPolygon3d RwPolygon3d =(p) RwLightSampling =(t) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonMaterial#4,291 = RwPolygon3d RwPolygon3d =(p) RwMaterial =(m) : a0=>$0 a0<=$1 a1<=$2 ;
RwSetPolygonOpacity#4,292 = RwPolygon3d RwPolygon3d =(p) RwReal =(opacity) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonSpecular#4,293 = RwPolygon3d RwPolygon3d =(p) RwReal =(Ks) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonSurface#4,294 = RwPolygon3d RwPolygon3d =(p) RwReal =(ka) RwReal =(kd) RwReal =(ks) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwSetPolygonTag#4,295 = RwPolygon3d RwPolygon3d =(p) INT =(tag) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonTexture#4,296 = RwPolygon3d RwPolygon3d =(p) RwTexture =(t) : a0=>$0 a0<=$1 a1<=$2 ;
RwSetPolygonTextureModes#4,297 = RwPolygon3d RwPolygon3d =(p) RwTextureModes =(modes) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonUV#4,298 = RwPolygon3d RwPolygon3d =(p) RwReal*2 : a0=>$0 a0<=$1 d0<=$2 d1<=$3 ;
////RwSetRasterData = RwRaster RwRaster =(ras) void =(value) : a0=>$0 ;
RwSetSceneDataInt#4,299 = RwScene RwScene =(scene) INT =(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetSceneDataReal#4,300 = RwScene RwScene =(scene) RwReal=(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetShapePath#2,57 = BOOL FILENAME =(path) RwCombineOperation =(op) : d0=>$0 a0<=$1 d0<=$2 ;
RwSetSplineDataInt#4,301 = RwSpline RwSpline =(spline) INT =(user) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetSplineDataReal#4,302 = RwSpline RwSpline =(spline) RwReal=(user) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetSplinePoint#4,351 = RwSpline RwSpline =(sp) INT =(index) RwReal>=3 : a0=>$0 a0<=$1 d0<=$2 a1<=$3 ;
RwSetSurface#4,303 = BOOL RwReal =(ka) RwReal =(kd) RwReal =(ks) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 ;
RwSetSurfaceAmbient#4,304 = BOOL RwReal =(ka) : d0=>$0 d0<=$1 ;
RwSetSurfaceColor#4,305 = BOOL RwReal =(r) RwReal =(g) RwReal =(b) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 ;
RwSetSurfaceDiffuse#4,306 = BOOL RwReal =(kd) : d0=>$0 d0<=$1 ;
RwSetSurfaceGeometrySampling#4,307 = BOOL RwGeometrySampling =(sampling) : d0=>$0 d0<=$1 ;
RwSetSurfaceLightSampling#4,308 = BOOL RwLightSampling =(sampling) : d0=>$0 d0<=$1 ;
RwSetSurfaceOpacity#4,309 = BOOL RwReal =(opacity) : d0=>$0 d0<=$1 ;
RwSetSurfaceSpecular#4,310 = BOOL RwReal =(ks) : d0=>$0 d0<=$1 ;
RwSetSurfaceTexture#4,311 = BOOL STRING =(name) : d0=>$0 a0<=$1 ;
RwSetSurfaceTextureNull#4,420 = BOOL : d0=>$0 ;
RwSetSurfaceTextureExt#4,312 = BOOL STRING =(texturename) STRING =(maskname) : d0=>$0 a0<=$1 a1<=$2 ;
RwSetSurfaceTextureModes#4,313 = BOOL RwTextureModes =(modes) : d0=>$0 d0<=$1 ;
RwSetTag#4,314 = BOOL INT =(tag) : d0=>$0 d0<=$1 ;
RwSetTextureDataInt#4,315 = RwTexture RwTexture =(texture) INT =(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetTextureDataReal#4,316 = RwTexture RwTexture =(texture) RwReal=(value) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetTextureDictSearchMode#4,317 = BOOL RwSearchMode =(mode) : d0=>$0 d0<=$1 ;
RwSetTextureDithering#4,318 = BOOL RwTextureDitherMode =(mode) : d0=>$0 d0<=$1 ;
RwSetTextureFrame#4,319 = RwTexture RwTexture =(t) INT =(index) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetTextureFrameStep#4,320 = RwTexture RwTexture =(t) INT =(val) : a0=>$0 a0<=$1 d0<=$2 ;
RwSetTextureGammaCorrection#4,321 = BOOL RwState =(state) : d0=>$0 d0<=$1 ;
RwSetTextureRaster#4,322 = RwTexture RwTexture =(texture) RwRaster =(ras) : a0=>$0 a0<=$1 a1<=$2 ;
//RwSetUserDrawAlignment = RwUserDraw RwUserDraw =(userdraw) RwUserDrawAlignmentTypes =(align) : a0=>$0 ;
//RwSetUserDrawCallback = RwUserDraw RwUserDraw =(userdraw) RwUserDrawCallBack =(callback) : a0=>$0 ;
//RwSetUserDrawData = RwUserDraw RwUserDraw =(userdraw) void =(value) : a0=>$0 ;
//RwSetUserDrawOffset = RwUserDraw RwUserDraw =(userdraw) INT =(x) INT =(y) : a0=>$0 ;
//RwSetUserDrawParentAlignment = RwUserDraw RwUserDraw =(userdraw) RwUserDrawAlignmentTypes =(align) : a0=>$0 ;
//RwSetUserDrawSize = RwUserDraw RwUserDraw =(userdraw) INT =(width) INT =(height) : a0=>$0 ;
//RwSetUserDrawType = RwUserDraw RwUserDraw =(userdraw) RwUserDrawType =(type) : a0=>$0 ;
//RwSetUserDrawVertexIndex = RwUserDraw RwUserDraw =(userdraw) INT =(index) : a0=>$0 ;
RwShowCameraImage#2,58 = RwCamera RwCamera =(cam) : a0=>$0 a0<=$1 ;
RwSphere#4,323 = BOOL RwReal =(radius) INT =(sides) : d0=>$0 d0<=$1 d1<=$2 ;
RwSphericalTexturizeClump#4,324 = RwClump RwClump =(clump) : a0=>$0 a0<=$1 ;
RwSplinePoint#4,325 = BOOL RwSpline =(spline) RwSplinePath =(path) RwReal =(where) RwReal[3] RwReal[3] :
d0=>$0 a0<=$1 d0<=$2 d1<=$3 a1<=>$4 a2<=>$5 ;
RwSplineTransform#4,326 = RwReal RwSpline =(spline) RwSplinePath =(path) RwReal =(where) RwReal>=3 RwMatrix4d =(mat) :
d0=>$0 a0<=$1 d0<=$2 d1<=$3 a1<=$4 a2<=$5 ;
RwSubtractVector#4,328 = BOOL RwReal>=3 RwReal>=3 RwReal[3] : d0=>$0 a0<=$1 a1<=$2 a2<=>$3 ;
RwTextureDictBegin#4,329 = BOOL : d0=>$0 ;
RwTextureDictEnd#4,330 = BOOL : d0=>$0 ;
RwTextureNextFrame#2,59 = RwTexture RwTexture =(t) : a0=>$0 a0<=$1 ;
RwTiltCamera#2,60 = RwCamera RwCamera =(cam) RwReal =(theta) : a0=>$0 a0<=$1 d0<=$2 ;
RwTransformBegin#4,331 = BOOL : d0=>$0 ;
RwTransformCTM#4,332 = BOOL RwMatrix4d =(mat) : d0=>$0 a0<=$1 ;
RwGetLightLTM#4,333 = RwMatrix4d RwLight =(light) RwMatrix4d =(m) : a0=>$0 a0<=$1 a1<=$2 ;
RwTransformLight#2,61 = RwLight RwLight =(light) RwMatrix4d =(m) RwCombineOperation =(op) : a0=>$0 a0<=$1 a1<=$2 d0<=$3 ;
RwGetCameraLTM#4,334 = RwMatrix4d RwCamera =(camera) RwMatrix4d =(m) : a0=>$0 a0<=$1 a1<=$2 ;
RwTransformCameraOrientation#2,62 = RwCamera RwCamera =(c) RwMatrix4d =(m) : a0=>$0 a0<=$1 a1<=$2 ;
RwTransformCamera#4,335 = RwCamera RwCamera =(camera) RwMatrix4d =(m) RwCombineOperation =(op) : a0=>$0 a0<=$1 a1<=$2 d0<=$3 ;
RwTransformClump#2,63 = RwClump RwClump =(clump) RwMatrix4d =(mat) RwCombineOperation =(op) : a0=>$0 a0<=$1 a1<=$2 d0<=$3 ;
RwTransformClumpJoint#2,64 = RwClump RwClump =(clump) RwMatrix4d =(mat) RwCombineOperation =(op) : a0=>$0 a0<=$1 a1<=$2 d0<=$3 ;
RwTransformEnd#4,336 = BOOL : d0=>$0 ;
RwTransformJointTM#4,337 = BOOL RwMatrix4d =(mat) : d0=>$0 a0<=$1 ;
RwTransformMatrix#4,338 = RwMatrix4d RwMatrix4d =(m) RwMatrix4d =(mat) RwCombineOperation =(op) : a0=>$0 a0<=$1 a1<=$2 d0<=$3 ;
RwTransformPoint#4,339 = BOOL RwReal[3] RwMatrix4d =(mat) : d0=>$0 a0<=>$1 a1<=$2 ;
RwTransformVector#4,340 = BOOL RwReal[3] RwMatrix4d =(mat) : d0=>$0 a0<=>$1 a1<=$2 ;
RwTranslateCTM#4,341 = BOOL RwReal =(tx) RwReal =(ty) RwReal =(tz) : d0=>$0 d0<=$1 d1<=$2 d2<=$3 ;
RwTranslateMatrix#2,65 = RwMatrix4d RwMatrix4d =(mat) RwReal =(tx) RwReal =(ty) RwReal =(tz) RwCombineOperation =(op) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 d3<=$5 ;
RwTriangle#4,342 = BOOL INT =(v1) INT =(v2) INT =(v3) : d0=>$0 d1<=$1 d2<=$2 d3<=$3 ;
RwTriangleExt#4,343 = BOOL INT =(v1) INT =(v2) INT =(v3) INT =(tag) : d0=>$0 d1<=$1 d2<=$2 d3<=$3 d4<=$4 ;
RwUndamageCameraViewport#4,344 = RwCamera RwCamera =(cam) INT =(x) INT =(y) INT =(w) INT =(h) : a0=>$0 a0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5 ;
RwVCMoveCamera#4,345 = RwCamera RwCamera =(cam) RwReal =(x) RwReal =(y) RwReal =(z) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4 ;
RwVertex#4,346 = INT RwReal =(x) RwReal =(y) RwReal =(z) : d0=>$0 d1<=$1 d2<=$2 d3<=$3 ;
RwVertexExt#4,347 = INT RwReal =(x) RwReal =(y) RwReal =(z) RwReal*2 RwReal>=3 : d0=>$0 d1<=$1 d2<=$2 d3<=$3 d4<=$4 d5<=$5 a0<=$6 ;
RwWCMoveCamera#2,66 = RwCamera RwCamera =(cam) RwReal =(x) RwReal =(y) RwReal =(z) : a0=>$0 a0<=$1 d0<=$2 d1<=$3 d2<=$4;
RwWriteShape#4,348 = BOOL FILENAME =(filename) RwClump =(clump) : d0=>$0 a0<=$1 a1<=$2 ;
RwVertexUV#4,418 = INT RwReal =(x) RwReal =(y) RwReal =(z) RwReal*2 : d0=>$0 d1<=$1 d2<=$2 d3<=$3 d4<=$4 d5<=$5 ;
// RenderWare 2.0 additional commands/functions
enumrange rwCHUNKTYPE 0 1013
rwCHUNKCAMERA rwCHUNKMATRIX rwCHUNKMATERIAL rwCHUNKPALETTE rwCHUNKRASTER rwCHUNKTEXTURE rwCHUNKCLUMP
rwCHUNKLIGHT rwCHUNKSCENE rwCHUNKDATA rwCHUNKRECT rwCHUNKV3D rwCHUNKSTRING rwCHUNKUSER;
enumrange rwCHUNKFLAGS 0 %x1f
rwSAVECHUNKNORMALS =%x01 rwSAVECHUNKUVS =%x02 rwSAVECHUNKLUMINANCES =%x4 rwSAVECHUNKRASTERS =%x8
rwSAVECHUNKTAGS =%x10 rwSAVECHUNKALL =%x1f rwLOADCHUNKRASTERS =%x8 ;
function
RwAddMaterialModeToMaterial#4,370 = RwMaterial RwMaterial RwMaterialModes : a0=>$0 a0<=$1 d0<=$2 ;
RwAddMaterialModeToPolygon#4,371 = RwPolygon3d RwPolygon3d RwMaterialModes : a0=>$0 a0<=$1 d0<=$2 ;
RwAddMaterialModeToSurface#4,372 = BOOL RwMaterialModes : d0=>$0 d0<=$1 ;
RwAddTextureToDict#4,373 = RwTexture STRING=(name) RwTexture : a0=>$0 a0<=$1 a1<=$2 ;
RwCloseStreamFile#4,374 = BOOL RwStream : d0=>$0 a0<=$1 ;
RwCloseStreamMemory#4,375 = BOOL RwStream Memory : d0=>$0 a0<=$1 a1<=>$2 ;
RwFindStreamChunk#4,376 = BOOL RwStream rwCHUNKTYPE : d0=>$0 a0<=$1 d0<=$2 ;
RwGetChunkSize#4,377 = INT rwCHUNKTYPE VOID rwCHUNKFLAGS : d0=>$0 d0<=$1 a0<=$2 d1<=$3 ;
RwGetClumpLightSampleRate#4,378 = RwReal RwCLump : d0=>$0 a0<=$1 ;
RwGetDisplayDevices#4,379 = STRING : a0=>$0 ;
RwGetInternalError#4,380 = BOOL : d0=>$0 ;
RwGetLightRadius#4,381 = RwReal RwLight : d0=>$0 a0<=$1 ;
RwExtract#4,382 = BOOL string int string : d0=>$0 a0<=$1 d1<=$2 a1=>$3 ;
RwGetMaterialModes#4,384 = RwMaterialModes RwMaterial : d0=>$0 a0<=$1 ;
RwGetPolygonMaterialModes#4,385 = RwMaterialModes RwPolygon3d: d0=>$0 a0<=$1 ;
RwGetSceneDepthCueDistance#4,386 = RwReal RwScene : d0=>$0 a0<=$1 ;
RwGetSceneDepthCueState#4,387 = RwState RwScene : d0=>$0 a0<=$1 ;
RwOpenStreamFile#4,388 = RwStream RwStreamAccess FILEREF : a0=>$0 d0<=$1 a0<=$2 ;
RwOpenStreamFilename#4,389 = RwStream RwStreamAccess FILENAME : a0=>$0 d0<=$1 a0<=$2 ;
RwOpenStreamMemory#4,390 = RwStream RwStreamAccess Memory : a0=>$0 d0<=$1 a0<=$2 ;
RwReadStream#4,391 = BOOL RwStream STRING BUFSIZ=(length) : d0=>$0 a0<=$1 a1=>$2 d0<=$3 ;
RwReadStreamChunk#4,392 = BOOL RwStream rwCHUNKTYPE VOID rwCHUNKFLAGS: d0=>$0 a0<=$1 d0<=$2 a1=>$3 d1<=$4 ;
RwReadStreamChunkHeader#4,393 = INT RwStream : d0=>$0 a0<=$1 ;
RwReadStreamChunkType#4,394 = BOOL RwStream rwCHUNKTYPE : d0=>$0 a0<=$1 d1=>$2 ;
RwReadStreamInt#4,395 = BOOL RwStream INT[] INT=(length) : d0=>$0 a0<=$1 a1<=>$2 d0<=$3 ;
RwReadStreamReal#4,396 = BOOL RwStream RwReal[] INT=(length) : d0=>$0 a0<=$1 a1<=>$2 d0<=$3 ;
RwRemoveMaterialModeFromMaterial#4,397 = RwMaterial RwMaterial RwMaterialModes : a0=>$0 a0<=$1 d0<=$2 ;
RwRemoveMaterialModeFromPolygon#4,398 = RwPolygon3d RwPolygon3d RwMaterialModes : a0=>$0 a0<=$1 d0<=$2 ;
RwRemoveMaterialModeFromSurface#4,399 = BOOL RwMaterialModes : d0=>$0 d0<=$1 ;
RwSeekStream#4,400 = BOOL RwStream INT=(offset) : d0=>$0 a0<=$1 d0<=$2 ;
RwSetClumpLightSampleRate#4,401 = RwReal RwClump RwReal : d0=>$0 a0<=$1 d0<=$2 ;
RwSetClumpLocalBBox#4,402 = RwClump RwClump RwReal>=3 RwReal>=3 : a0=>$0 a0<=$1 a1<=$2 a2<=$3 ;
RwSetLightRadius#4,403 = RwLight RwLight RwReal : a0=>$0 a0<=$1 d0<=$2 ;
RwSetMaterialModes#4,406 = RwMaterial RwMaterial RwMaterialModes : a0=>$0 a0<=$1 d0<=$2 ;
RwSetPolygonMaterialModes#4,407 = RwPolygon3d RwPolygon3d RwMaterialModes : a0=>$0 a0<=$1 d0<=$2 ;
RwSetSceneDepthCueDistance#4,408 = BOOL RwScene RwReal : d0=>$0 a0<=$1 d0<=$2 ;
RwSetSceneDepthCueState#4,409 = BOOL RwScene RwState : d0=>$0 a0<=$1 d0<=$2 ;
RwSetSurfaceMaterialModes#4,410 = BOOL RwMaterialModes : d0=>$0 d0<=$1 ;
RwSkipStreamChunk#4,411 = BOOL RwStream : d0=>$0 a0<=$1 ;
RwWriteStream#4,412 = BOOL RwStream STRING=(value) INT=(length) : d0=>$0 a0<=$1 a1<=$2 d0<=$3 ;
RwWriteStreamChunk#4,413 = BOOL RwStream rwCHUNKTYPE VOID=(value) rwCHUNKFLAGS : d0=>$0 a0<=$1 d0<=$2 a1<=$3 d1<=$4 ;
RwWriteStreamChunkHeader#4,414 = BOOL RwStream rwCHUNKTYPE INT=(size) : d0=>$0 a0<=$1 d0<=$2 d1<=$3 ;
RwWriteStreamInt#4,415 = BOOL RwStream INT>=1 INT=(length) : d0=>$0 a0<=$1 a1<=$2 d0<=$3 ;
RwWriteStreamReal#4,416 = BOOL RwStream RwReal>=1 INT=(length) : d0=>$0 a0<=$1 a1<=$2 d0<=$3 ;
RwStrError#4,417 = STRING RwErrorCode : a0=>$0 d0<=$1 ;
// RenderWare 3ds model converters
enumrange RwConvertOptions 0 %x0fff
optNONE =%x0000
optANIMATION=%x0001 optHEADER =%x0002
/*optAPIFILE=%x0004 not implemented */
optPROTOTYPE=%x0008 optFLAT =%x0010 optCOMBINE =%x0020
optSPLIT =%x0040 optNORMALIZE=%x0080 optCENTRE =%x0100
/*optINLINE =%x0200 clump/file output via different functions */
optOPACITY=%x0400 optCOMMENTS=%x0800;
RwConvertTexture 0 %x1f
optNONE =%x0000 optTEXTURE=%x0001 optTEXTUREEXT=%x0002 optLIT=%x0004 optFILTER=%x0008 optFORESHORTEN=%x0010;
RwConvertHints 0 %x3
optNONE =%x0000 optHS=%x0001 optEDITABLE=%x0002;
enum
RwConvertSeverity rwCONVERTFATAL rwCONVERTERROR rwCONVERTWARN;
RwConvertVerbosity rwCONVERTBRIEF rwCONVERTNORMAL rwCONVERTVERBOSE;
function
Rw3dsReadShape#4,352 =RwClump FILENAME : a0=>$0 a1<=$1 ;
Rw3dsOutputFile#4,353 =BOOL FILENAME=(infile) FILENAME=(outfile) : d0=>$0 a0<=$1 a1<=$2 ;
//RwDxfReadShape#4,356 =RwClump FILENAME : a0=>$0 a1<=$1 ;
//RwDxfOutputFile#4,357 =BOOL FILENAME=(infile) FILENAME=(outfile) : d0=>$0 a0<=$1 a1<=$2 ;
command
Set3dsConvertOptions#4,354 RwConvertOptions RwConvertTexture RwConvertHints RwReal=(scale) RwReal=(normalize) RwReal*3 RwReal=(opacity)
: d0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5 d5<=$6 d6<=$7 d7<=$8 d8<=$9 ;
Use3dsConvertDefault#4,355 : ;
//SetDxfConvertOptions#4,358 RwConvertOptions RwConvertHints RwReal=(scale) RwReal=(normalize) RwReal*3 RwReal=(opacity)
// : d0<=$1 d1<=$2 d2<=$3 d3<=$4 d4<=$5 d5<=$6 d6<=$7 d7<=$8 ;
//UseDxfConvertDefault#4,359 : ;
SetConvertErrorLevel#4,360 objectstate RwConvertSeverity : d0<=$1 d1<=$2 ;
SetConvertMessageLevel#4,361 objectstate RwConvertVerbosity : d0<=$1 d1<=$2 ;
/* Windows interfaces for RenderWare apps */
enum
MouseEvent MOUSEMOVE
LBUTTONDOWN LBUTTONUP LBUTTONDBLCLK
RBUTTONDOWN RBUTTONUP RBUTTONDBLCLK
MBUTTONDOWN MBUTTONUP MBUTTONDBLCLK;
WinEvent WM_CREATE WM_DESTROY WM_MOVE WM_SIZE WM_PAINT WM_TIMER WM_CHAR WM_KEYDOWN WM_KEYUP WM_ACTIVATE;
// Keycodes for special keys
enumrange
Keycode 0 127 KEY_PGUP=33 KEY_PGDN KEY_END KEY_HOME KEY_LEFT KEY_UP KEY_RIGHT KEY_DOWN KEY_INS=45 KEY_DEL
KEY_F1=112 KEY_F2 KEY_F3 KEY_F4 KEY_F5 KEY_F6 KEY_F7 KEY_F8 KEY_F9 KEY_F10 KEY_F11 KEY_F12;
enumrange
Window 0 4 ;
// Mouse key bit defs exactly as Windows NT/95 defines them
enumrange
MK_DEFS 0 31 MK_LBUTTON=%x01 MK_RBUTTON=%x02 MK_SHIFT=%x04 MK_CONTROL=%x08 MK_MBUTTON=%x10;
// Window styles as Windows NT/95 shifted right 16 bits
enumrange
WSTYLE 0 %xffff WS_OVERLAPPED=0 WS_MAXIMIZEBOX=1 WS_MINIMIZEBOX=2 WS_THICKFRAME=4 WS_SYSMENU=8 WS_CAPTION=%x00c0 WS_CHILD=%x4000 WS_POPUP=%x8000;
BrowserShowStyle 0 11 MAXIMIZE=3 MINIMIZE=6 RESTORE=9 FULLSCREEN=11;
WindowShowStyle 0 11 HIDE=0 NORMAL=1 SHOWMINIMIZED=2 SHOWMAXIMIZED=3 MAXIMIZE=3 SHOWNOACTIVATE=4 SHOW=5
MINIMIZE=6 SHOWMINNOACTIVE=7 SHOWNA=8 RESTORE=9;
/* WM_SIZE message wParam values - first event param for OnWinEvent for WM_SIZE */
SIZE_REASON 0 4 SIZE_RESTORED=0 SIZE_MINIMIZED=1 SIZE_MAXIMIZED=2 SIZE_MAXSHOW=3 SIZE_MAXHIDE=4;
ACTIVATE_REASON 0 2 WA_INACTIVE WA_ACTIVE WA_CLICKACTIVE;
/* ShowBrowserInterfaces flags */
SBI_FLAGS 0 15 BI_OUTPUT=%x01 BI_STATUS=%x02 BI_TOOLBAR=%x04 BI_MENU=%x08 ;
// GetInfo and GetDiskInfo items are handled by the same function
TVML_INFO 0 26
CDROMS //string of device names e.g. E:\
BrowserVersion //e.g 201
BrowserType //APP, OCX
MemoryLoad //0-100%
MemoryTotalPhysical //int
MemoryFreePhysical //int
MemoryTotalPagefile //int
MemoryFreePagefile //int
OSPlatform //INFO_Platform
OSMajorVersion //int
OSMinorVersion //int
OSBuildNumber //int
OSStringData //string
ProcessorArchitecture //INFO_ProcessorArchitecture
ProcessorLevel //int - architecture specific
CompanyName //string
LegalCopyright //string
PrivateBuild //string
SpecialBuild //string
DisplayDepth //int
BrowserDepth //int
FixedDrives //string e.g. "C:\D:\
CommandLine //string
ScriptFile //string
InstallDir //string
ActiveWidth //int
ActiveHeight //int
;
// GetInfo and GetDiskInfo items are handled by the same function
TVML_DISKINFO 100 103
DiskTotal //int MBytes
DiskFree //int MBytes
DiskClusterSize //int bytes
DiskType //int INFO_DiskType
// "UNKNOWN, ERROR, REMOVABLE, FIXED, REMOTE, CDROM, RAM"
;
//GetFileInfo items
TVML_FILEINFO 0 3
FileCreate //date
FileAccess //date
FileWrite //date
FileSize //int bytes
;
INFO_Platform 0 2
WIN32S WINDOWS NT ;
INFO_ProcessorArchitecture 0 3
INTEL MIPS ALPHA PPC ;
INFO_DiskType 0 6
DISK_UNKNOWN DISK_ERROR DISK_REMOVABLE DISK_FIXED DISK_REMOTE DISK_CDROM DISK_RAM ;
/* GetSystemMetrics items */
SM_ITEM 0 75
SM_CXSCREEN
SM_CYSCREEN
SM_CXVSCROLL
SM_CYHSCROLL
SM_CYCAPTION
SM_CXBORDER
SM_CYBORDER
SM_CXDLGFRAME
SM_CYDLGFRAME
SM_CYVTHUMB
SM_CXHTHUMB
SM_CXICON
SM_CYICON
SM_CXCURSOR
SM_CYCURSOR
SM_CYMENU
SM_CXFULLSCREEN
SM_CYFULLSCREEN
SM_CYKANJIWINDOW
SM_MOUSEPRESENT
SM_CYVSCROLL
SM_CXHSCROLL
SM_DEBUG
SM_SWAPBUTTON
SM_RESERVED1
SM_RESERVED2
SM_RESERVED3
SM_RESERVED4
SM_CXMIN
SM_CYMIN
SM_CXSIZE
SM_CYSIZE
SM_CXFRAME
SM_CYFRAME
SM_CXMINTRACK
SM_CYMINTRACK
SM_CXDOUBLECLK
SM_CYDOUBLECLK
SM_CXICONSPACING
SM_CYICONSPACING
SM_MENUDROPALIGNMENT
SM_PENWINDOWS
SM_DBCSENABLED
SM_CMOUSEBUTTONS
SM_SECURE
SM_CXEDGE
SM_CYEDGE
SM_CXMINSPACING
SM_CYMINSPACING
SM_CXSMICON
SM_CYSMICON
SM_CYSMCAPTION
SM_CXSMSIZE
SM_CYSMSIZE
SM_CXMENUSIZE
SM_CYMENUSIZE
SM_ARRANGE
SM_CXMINIMIZED
SM_CYMINIMIZED
SM_CXMAXTRACK
SM_CYMAXTRACK
SM_CXMAXIMIZED
SM_CYMAXIMIZED
SM_NETWORK
// 64-66 not used
SM_CLEANBOOT=67
SM_CXDRAG
SM_CYDRAG
SM_SHOWSOUNDS
SM_CXMENUCHECK
SM_CYMENUCHECK
SM_SLOWMACHINE
SM_MIDEASTENABLED
SM_CMETRICS
SM_CXFIXEDFRAME=7
SM_CYFIXEDFRAME=8
SM_CXSIZEFRAME=32
SM_CYSIZEFRAME=33
;
command
RwClose#1,1 : ;
//LocalInitDoneRw#1,2 ShowStyle : d0<=$1 ; // Called by script when its ready to reveal window and accept messages
LocalInitDoneRw#1,2 : ; // Called by script when its ready to reveal window and accept messages
RwCloseDebugStream#1,3 : ;
RwSetDebugAssertionState#1,4 RwState : d0<=$1 ;
RwSetDebugMessageState#1,5 RwState : d0<=$1 ;
RwSetDebugOutputState#1,6 RwState : d0<=$1 ;
RwSetDebugScriptState#1,7 RwState : d0<=$1 ;
RwSetDebugSeverity#1,8 RwDebugSeverity : d0<=$1 ;
RwSetDebugTraceState#1,9 RwState : d0<=$1 ;
RwSRandom#1,10 INT : d0<=$1 ;
RwSetUserError#1,12 : ;
DestroyAnimation#2,69 RwClump : a0<=$1 ;
function
// Rw library startup and create window
InitRw#2,1 =INT STRING=(title) WSTYLE TLPOINT SIZE_T SIZE_T
: d7=>$0 a0<=$1 d0<=$2 d1<=$3.1 d2<=$3.2 d3<=$4.1 d4<=$4.2 d5<=$5.1 d6<=$5.2
d8<=0 d9<=0 d10<=0 ;
// Rw library startup and create window
InitRwExt#2,1 =INT STRING=(title) WSTYLE TLPOINT SIZE_T SIZE_T int=(width) int=(height) int=(depth)
: d7=>$0 a0<=$1 d0<=$2 d1<=$3.1 d2<=$3.2 d3<=$4.1 d4<=$4.2 d5<=$5.1 d6<=$5.2
d8<=$6 d9<=$7 d10<=$8 ;
// Rw shutdown and close window
DeinitRw#2,2 =INT : d0=>$0 ;
// Support common code
CheckAndReadPalette#2,3 = INT FILENAME : d0=>$0 a0<=$1 ;
LoadAnimation#2,4 = INT RwClump FILENAME : d0=>$0 a0<=$1 a1<=$2 ;
AnimateClump#2,5 = RwClump RwClump : a0=>$0 a0<=$1 ;
SetPalette#2,70 = INT RwStream : d0=>$0 a0<=$1 ;
command
OnMouseEvent#3,1 MouseEvent INT=(xpos) INT=(ypos) INT=(vkeys) SCRIPTREF : d0<=$1 d1!>$2 d2!>$3 d3!>$4 a0<=$5 ;
OnWinEvent#3,2 WinEvent INT=(w) INT=(l) SCRIPTREF : d0<=$1 d1!>$2 d2!>$3 a0<=$4 ;
WinSetCapture#3,3 :;
WinReleaseCapture#3,4 :;
WinInvalidateRect#3,5 :;
WinClientToScreen#3,6 INT INT : d0<=>$1 d1<=>$2;
WinSetTimer#3,7 INT=(timer) INT=(period) : d0<=$1 d1<=$2 ;
WinKillTimer#3,8 INT=(timer) : d0<=$1 ;
WinBeginPaint#3,9 :;
WinEndPaint#3,10 :;
WinGetClientRect#3,11 INT=(width) INT=(height) : d0=>$1 d1=>$2;
WinClose#3,12 :;
OffMouseEvent#3,13 MouseEvent : d0<=$1 ;
OffWinEvent#3,14 WinEvent : d0<=$1 ;
// Extended multiple window handling interface
OnMouseEvent2 #3,15 Window MouseEvent INT=(xpos) INT=(ypos) INT=(vkeys) BOOL : d0!>$3 d1!>$4 d2!>$5 a0<!$6 d4<=$1 d5<=$2 ;
OnWinEvent2 #3,16 Window WinEvent INT=(w) INT=(l) BOOL : d0!>$3 d1!>$4 a0<!$5 d4<=$1 d5<=$2 ;
OffMouseEvent2 #3,17 Window MouseEvent : d0<=$1 d1<=$2 ;
OffWinEvent2 #3,18 Window WinEvent : d0<=$1 d1<=$2 ;
WinShowWindow #3,20 Window WindowShowStyle : d0<=$1 d1<=$2 ;
WinSetWindowPos #3,21 Window TLPOINT : d0<=$1 d1<=$2.1 d2<=$2.2 ;
WinDestroyWindow #3,22 Window : d0<=$1 ;
WinSetCapture2 #3,23 Window : d0<=$1 ;
WinInvalidateRect2#3,24 Window : d0<=$1 ;
WinClientToScreen2#3,25 Window INT INT : d0<=$1 d1<=>$2 d2<=>$3 ;
WinSetTimer2 #3,26 Window INT=(timer) INT=(period) : d0<=$1 d1<=$2 d2<=$3 ;
WinKillTimer2 #3,27 Window INT=(timer) : d0<=$1 d1<=$2 ;
WinBeginPaint2 #3,28 Window : d0<=$1 ;
WinEndPaint2 #3,29 Window : d0<=$1 ;
WinGetClientRect2 #3,30 Window INT=(width) INT=(height) : d0<=$1 d1=>$2 d2=>$3 ;
WinSetActiveWindow#3,31 Window : d0<=$1 ;
function
WinCreateWindow #3,19 =INT Window STRING=(title) WSTYLE TLPOINT SIZE_T SIZE_T
: d7=>$0 a0<=$2 d0<=$3 d1<=$4.1 d2<=$4.2 d3<=$5.1 d4<=$5.2 d5<=$6.1 d6<=$6.2 d8<=$1 ;
RwBeginCameraUpdate2 #3,32 = RwCamera Window RwCamera =(cam) : a0=>$0 d0<=$1 a0<=$2 ;
RwShowCameraImage2 #3,33 = RwCamera Window RwCamera =(cam) : a0=>$0 d0<=$1 a0<=$2 ;
// Browser / Windows support commands/functions
command
ShowBrowserWindow#13,1 BrowserShowStyle : d0<=$1 ;
BrowserExit#13,2 : ;
SetBrowserWindowPos#13,3 TLPOINT : d0<=$1.1 d1<=$1.2 ;
SetBrowserWindowSize#13,4 SIZE_T : d0<=$1.1 d1<=$1.2 ;
SetBrowserInterfaces#13,5 INT : d0<=$1 ;
function
GetSystemMetrics#13,6 =INT SM_ITEM : d0=>$0 d0<=$1 ;
launch#13,7 =INT filename : d0=>$0 a0<=$1 ;
GetInfo#13,14 =STRING TVML_INFO : a0=>$0 a1<=0 d0<=$1;
GetDiskInfo#13,14 =STRING filename TVML_DISKINFO : a0=>$0 a1<=$1 d0<=$2;
GetFileInfo#13,20 =STRING filename TVML_FILEINFO : a0=>$0 a1<=$1 d0<=$2;
//<shellapi.h> ShellExecute
// File compress utility
enum
compress_type NONE AHUFF;
check_type NONE SUMCHECK CRC_16 CRC_32;
file_format TEXT SYMBOl_1;
compress_error ERR_NONE ERR_OPEN ERR_SUMCHECK ERR_CRC_FAIL ERR_COMP_UNKNOWN ERR_FORMAT_UNKNOWN ERR_BAD_HEADER;
function
compress#5,1 =compress_error FILENAME=(infile) FILENAME=(outfile) file_format compress_type check_type :
d0=>$0 a0<=$1 a1<=$2 d0<=$3 d1<=$4 d2<=$5;
filecopy#13,13 =compress_error FILENAME=(infile) FILENAME=(outfile) :
d0=>$0 a0<=$1 a1<=$2 ;
//timeline support
enumrange
tlid 1 50 ;
tlcontrolcode 0 5 start pause restart reset single_step resume ;
enum
tlseekmode absolute relative ;
command
add_timeline#15,1 tlid boolean=(manualstart) boolean=(looped) timeline : d0<=$1 d1<=$2 d2<=$3 a0<=$4 ;
remove_timeline#15,2 tlid : d0<=$1 ;
timeline_control#15,3 tlid tlcontrolcode : d0<=$1 d1<=$2 ;
timeline_delay#15,4 tlid float=(delay) : d0<=$1 d2<=$2 ;
timeline_seek#15,5 tlid tlseekmode float=(offset) : d0<=$1 d1<=$2 d2<=$3 ;
timeline_timer#15,6 posint=(interval) posint=(stepsize) : d0<=$1 d1<=$2 ; //interval and stepsize in ms
all_timelines#15,7 tlcontrolcode : d0<=$1 ;
all_timelines_delay#15,8 float=(delay) : d2<=$1 ;
// Direct X interface
private GUID ;
//enumrange dpid 0 32767 ;
enum
DirectPlayError
DP_OK
DPERR_ALREADYINITIALIZED
DPERR_ACCESSDENIED
DPERR_ACTIVEPLAYERS
DPERR_BUFFERTOOSMALL
DPERR_CANTADDPLAYER
DPERR_CANTCREATEGROUP
DPERR_CANTCREATEPLAYER
DPERR_CANTCREATESESSION
DPERR_CAPSNOTAVAILABLEYET
DPERR_EXCEPTION
DPERR_GENERIC
DPERR_INVALIDFLAGS
DPERR_INVALIDOBJECT
DPERR_INVALIDPARAM
DPERR_INVALIDPARAMS
DPERR_INVALIDPLAYER
DPERR_NOCAPS
DPERR_NOCONNECTION
DPERR_NOMEMORY
DPERR_OUTOFMEMORY
DPERR_NOMESSAGES
DPERR_NONAMESERVERFOUND
DPERR_NOPLAYERS
DPERR_NOSESSIONS
DPERR_SENDTOOBIG
DPERR_TIMEOUT
DPERR_UNAVAILABLE
DPERR_UNSUPPORTED
DPERR_BUSY
DPERR_USERCANCEL
DPERR_NOINTERFACE
DPERR_CANNOTCREATESERVER
DPERR_PLAYERLOST
DPERR_SESSIONLOST
DPERR_BUFFERTOOLARGE
DPERR_CANTCREATEPROCESS
DPERR_APPNOTSTARTED
DPERR_INVALIDINTERFACE
DPERR_NOSERVICEPROVIDER
DPERR_UNKNOWNAPPLICATION
DPERR_NOTLOBBIED ;
enumrange
DPSendFlags 0 31
DPSEND_GUARANTEED =1
DPSEND_HIGHPRIORITY =2
DPSEND_OPENSTREAM =8
DPSEND_CLOSESTREAM =16 ;
DPCapsFlags 0 127
DPCAPS_ISHOST =2
DPCAPS_GROUPOPTIMIZED =8
DPCAPS_KEEPALIVEOPTIMIZED =%X10
DPCAPS_GUARANTEEDOPTIMIZED =%X20
DPCAPS_GUARANTEEDSUPPORTED =%X40 ;
DPEnumFlags 0 3
DPENUMSESSIONS_AVAILABLE =1
DPENUMSESSIONS_ALL =2 ;
DPESCFlags 0 1
DPESC_TIMEDOUT =1;
DPEnumPlayerFlags 0 %xff
DPENUMPLAYERS_ALL = %x00
DPENUMPLAYERS_LOCAL = %x08
DPENUMPLAYERS_REMOTE = %x10
DPENUMPLAYERS_GROUP = %x20
DPENUMPLAYERS_SESSION = %x80 ;
DPGetCapsFlags 0 1
DPGETCAPS_GUARANTEED =1 ;
DPGetFlags 0 1
DPGET_REMOTE =0
DPGET_LOCAL =1 ;
DPSetFlags 0 3
DPSET_REMOTE =0
DPSET_LOCAL =1
DPSET_GUARANTEED =2 ;
enum
DPSYSMESS
DPSYS_CREATEPLAYER
DPSYS_DELETEPLAYER
DPSYS_CREATEGROUP
DPSYS_DELETEGROUP
DPSYS_ADDPLAYERTOGROUP
DPSYS_DELETEPLAYERFROMGROUP
DPSYS_SETPLAYERDATA
DPSYS_SETGROUPDATA
DPSYS_SETPLAYERNAME
DPSYS_SETGROUPNAME
DPSYS_HOST
DPSYS_SESSIONLOST ;
enumrange
DPOPENFLAGS 0 255
DPSESSION_NEWPLAYERSDISABLED=1
DPSESSION_MIGRATEHOST=4
DPSESSION_NOMESSAGEID=8
DPSESSION_JOINDISABLED=%X20
DPSESSION_KEEPALIVE=%X40
DPSESSION_NODATAMESSAGES=%X80 ;
function
DPCreate#17,1=DirectPlayError GUID : d0=>$0 a0<=$1 ;
DPEnumerate#17,2=DirectPlayError GUID string BOOL*2 BOOL : d4=>$0 a0!>$1 a1!>$2 d0!>$3 d1!>$4 a4<!$5 ;
DPAddPlayerToGroup#17,3=DirectPlayError BOOL=(group) BOOL=(player) : d0=>$0 d1<=$1 d2<=$2;
DPClose#17,4=DirectPlayError : d0=>$0;
DPCreateGroup#17,5=DirectPlayError BOOL string=(friendly) string=(formal) : d0=>$0 d1=>$1 a0<=$2 a1<=$3 ;
DPCreatePlayer#17,6=DirectPlayError BOOL string=(friendly) string=(formal) : d0=>$0 d1=>$1 a0<=$2 a1<=$3 ;
DPDeletePlayerFromGroup#17,7=DirectPlayError BOOL=(group) BOOL=(player) : d0=>$0 d1<=$1 d2<=$2 ;
DPDestroyGroup#17,8=DirectPlayError BOOL=(group) : d0=>$0 d1<=$1 ;
DPDestroyPlayer#17,9=DirectPlayError BOOL=(player) : d0=>$0 d1<=$1 ;
//DPEnableNewPlayers#17,10=DirectPlayError boolean : d0=>$0 d0<=$1 ;
DPEnumGroupPlayers#17,11=DirectPlayError BOOL=(group) guid=(session) DPEnumPlayerFlags BOOL=(player) string=(friendly) string=(formal) BOOL :
d4=>$0 d5<=$1 a5<=$2 d6<=$3 d0!>$4 a0!>$5 a1!>$6 a4<!$7 ;
DPEnumGroups#17,12=DirectPlayError guid=(session) DPEnumPlayerFlags BOOL=(player) string=(friendly) string=(formal) BOOL :
d4=>$0 a5<=$1 d6<=$2 d0!>$3 a0!>$4 a1!>$5 a4<!$6 ;
DPEnumPlayers#17,13=DirectPlayError guid=(session) DPEnumPlayerFlags BOOL=(player) string=(friendly) string=(formal) BOOL :
d4=>$0 a5<=$1 d6<=$2 d0!>$3 a0!>$4 a1!>$5 a4<!$6 ;
DPEnumSessions#17,14=DirectPlayError
string=(strguid) string=(password) DPEnumFlags int=(timeout)
guid string=(session_name) int[8] DPESCflags BOOL :
d4=>$0 a5<=$1 a6<=$2 d5<=$3 d6<=$4 a0!>$5 a1!>$6 a2<!>$7 d0!>$8 a4<!$9 ;
//DPGetMessageCount=DirectPlayError BOOL int :
// d0=>$0 d1<=$1 d2=>$2 ;
DPGetPlayerCaps#17,15=DirectPlayError BOOL int[9] DPGetCapsFlags : d0=>$0 d1<=$1 a0<=>$2 d2<=$3 ;
DPGetCaps#17,16=DirectPlayError int[9] DPGetCapsFlags : d0=>$0 a0<=>$1 d1<=$2 ;
DPGetPlayerName#17,17=DirectPlayError BOOL string=(friendly) string=(formal) : d0=>$0 d1<=$1 a0=>$2 a1=>$3 ;
DPGetGroupName#17,26=DirectPlayError BOOL string=(friendly) string=(formal) : d0=>$0 d1<=$1 a0=>$2 a1=>$3 ;
DPOpenExistingSession#17,18=DirectPlayError guid string=(password) : d0=>$0 a0<=$1 a1<=$2 ;
DPCreateNewSession#17,19=DirectPlayError string=(strguid) string=(password) int=(maxplayers) string=(name) DPOPENFLAGS int>=4
: d0=>$0 a0<=$1 a1<=$2 d1<=$3 a2<=$4 d2<=$5 a4<=$6 ;
DPSend#17,20=DirectPlayError BOOL=(dpidfrom) BOOL=(dpidto) DPSendFlags string : //RwMemory structure
d0=>$0 d1<=$1 d2<=$2 d3<=$3 a0<=$4 ;
//DPSend#17,20=DirectPlayError BOOL=(dpidfrom) BOOL=(dpidto) DPSendFlags memory : //RwMemory structure
// d0=>$0 d1<=$1 d2<=$2 d3<=$3 a0<=$4 ;
DPSetPlayerName#17,21=DirectPlayError BOOL string=(friendly) string=(formal) DPSetFlags : d0=>$0 d1<=$1 a0<=$2 a1<=$3 d2<=$4 ;
DPSetGroupName#17,27=DirectPlayError BOOL string=(friendly) string=(formal) DPSetFlags : d0=>$0 d1<=$1 a0<=$2 a1<=$3 d2<=$4 ;
DPlayErrorString#17,22=string int : a0=>$0 d0<=$1 ;
command
//only works within the DPEnumSessionsCallback
ResetEnumSessionsTimeout#17,23 int : d0<=$1 ;
//Event handlers
on_directplay_sysevent#17,24 DPSYSMESS=(etype) BOOL=(player) BOOL=(extra) scriptref :
d0!>$1 d1!>$2 d2!>$3 a4<=$4 ;
on_directplay_userevent#17,25 BOOL=(fromdpid) BOOL=(todpid) string=(message) scriptref :
d0!>$1 d1!>$2 a0!>$3 a4<=$4 ;
off_directplay_sysevent#17,24 : a0<=0 ;
off_directplay_userevent#17,25 : a0<=0 ;
//client/server functions
enumrange WinSockError 10000 11004
// All Windows Sockets error constants are biased by WSABASEERR from the "normal" (WSABASEERR = 10000)
// Windows Sockets definitions of regular Microsoft C error constants
WSAEINTR =10004
WSAEBADF =10009
WSAEACCES =10013
WSAEFAULT =10014
WSAEINVAL =10022
WSAEMFILE =10024
WSAEWOULDBLOCK =10035
WSAEINPROGRESS =10036
WSAEALREADY =10037
WSAENOTSOCK =10038
WSAEDESTADDRREQ =10039
WSAEMSGSIZE =10040
WSAEPROTOTYPE =10041
WSAENOPROTOOPT =10042
WSAEPROTONOSUPPORT =10043
WSAESOCKTNOSUPPORT =10044
WSAEOPNOTSUPP =10045
WSAEPFNOSUPPORT =10046
WSAEAFNOSUPPORT =10047
WSAEADDRINUSE =10048
WSAEADDRNOTAVAIL =10049
WSAENETDOWN =10050
WSAENETUNREACH =10051
WSAENETRESET =10052
WSAECONNABORTED =10053
WSAECONNRESET =10054
WSAENOBUFS =10055
WSAEISCONN =10056
WSAENOTCONN =10057
WSAESHUTDOWN =10058
WSAETOOMANYREFS =10059
WSAETIMEDOUT =10060
WSAECONNREFUSED =10061
WSAELOOP =10062
WSAENAMETOOLONG =10063
WSAEHOSTDOWN =10064
WSAEHOSTUNREACH =10065
WSAENOTEMPTY =10066
WSAEPROCLIM =10067
WSAEUSERS =10068
WSAEDQUOT =10069
WSAESTALE =10070
WSAEREMOTE =10071
WSASYSNOTREADY =10091
WSAVERNOTSUPPORTED =10092
WSANOTINITIALISED =10093
WSAEDISCON =10101
WSAHOST_NOT_FOUND =11001
WSATRY_AGAIN =11002
WSANO_RECOVERY =11003
WSANO_DATA =11004
WSANO_ADDRESS =11004
;
enumrange
TCPChannel 0 10;
ServerConnection 0 100;
TCPPort 0 32767;
DGChannel 0 10;
DGPort 0 32767;
//TCP functions
function
TCPGetHostByAddr#10,1 = WinSockError string=(addr) string=(name) : d0=>$0 a0<=$1 a1=>$2 ;
TCPGetHostByName#10,2 = WinSockError string=(name) string=(addr) : d0=>$0 a0<=$1 a1=>$2 ;
TCPGetHost#10,3 = WinSockError string=(name) string=(addr) : d0=>$0 a0=>$1 a1=>$2 ;
function
CreateTCPServer#10,4 =WinSockError TCPPort ServerConnection=(limit) TCPChannel : d0=>$0 d1<=$1 d2<=$2 d3=>$3 d4<=1 ;
CreateTCPClient#10,5 =WinSockError filename=(host) TCPPort TCPChannel : d0=>$0 a0<=$1 d1<=$2 d3=>$3 d4<=1 ;
CreateTCPStreamServer#10,4 =WinSockError TCPPort ServerConnection=(limit) TCPChannel: d0=>$0 d1<=$1 d2<=$2 d3=>$3 d4<=0 ;
CreateTCPStreamClient#10,5 =WinSockError filename=(host) TCPPort TCPChannel : d0=>$0 a0<=$1 d1<=$2 d3=>$3 d4<=0 ;
TCPSendToClient#10,6 =WinSockError TCPChannel ServerConnection string=(message) : d0=>$0 d1<=$1 d2<=$2 a0<=$3 ;
TCPSendToServer#10,7 =WinSockError TCPChannel string=(message) : d0=>$0 d1<=$1 a0<=$2 ;
TCPSendToAllClients#10,20 =WinSockError TCPChannel string=(message) : d0=>$0 d1<=$1 a0<=$2 ;
TCPReadFromClient#10,8 =WinSockError TCPChannel ServerConnection string=(message) int=(length) : d0=>$0 d1<=$1 d2<=$2 a0=>$3 d3=>$4 ;
TCPReadFromServer#10,9 =WinSockError TCPChannel string=(message) int=(length) : d0=>$0 d1<=$1 a0=>$2 d3=>$3 ;
CloseTCPServerConnection#10,10 =WinSockError TCPChannel ServerConnection : d0=>$0 d1<=$1 d2<=$2 ;
CloseTCPServer#10,11 =WinSockError TCPChannel : d0=>$0 d1<=$1 ;
CloseTCPClient#10,19 =WinSockError TCPChannel : d0=>$0 d1<=$1 ;
CreateDGServer#10,12 =WinSockError DGPort DGChannel : d0=>$0 d1<=$1 d3=>$2 ;
CreateDGClient#10,13 =WinSockError filename=(host) DGPort DGChannel : d0=>$0 a0<=$1 d1<=$2 d3=>$3 ;
DGSendToClient#10,14 =WinSockError DGChannel filename=(host) DGPort string=(message) : d0=>$0 d1<=$1 a0<=$2 d2<=$3 a1<=$4 ;
DGSendToServer#10,15 =WinSockError DGChannel string=(message) : d0=>$0 d1<=$1 a0<=$2 ;
DGRead#10,16 =WinSockError DGChannel filename=(peer) DGPort string=(message) int=(length) : d0=>$0 d1<=$1 a0=>$2 d2=>$3 a1=>$4 d3=>$5 ;
CloseDGServer#10,17 =WinSockError DGChannel : d0=>$0 d1<=$1 ;
CloseDGClient#10,17 =WinSockError DGChannel : d0=>$0 d1<=$1 ;
GetSocketError#10,18 =string int : a0=>$0 d0<=$1 ;
CreateTCPServerEx#10,21 =WinSockError
TCPPort ServerConnection=(limit) TCPChannel filename=(peer) scriptref=(AcceptHandler) scriptref=(ReceiveHandler)
: d4=>$0 d5<=$1 d1<!>$2 d6=>$3 a0!>$4 a4<=$5 a5<=$6 d3<=1 ;
CreateTCPClientEx#10,22 =WinSockError
filename=(host) TCPPort TCPChannel boolean=(connected) scriptref=(ConnectHandler) scriptref=(ReceiveHandler)
: d4=>$0 a0<=$1 d5<=$2 d6=>$3 d1!>$4 a4<=$5 a5<=$6 d3<=1 ;
CreateTCPStreamServerEx#10,21 =WinSockError
TCPPort ServerConnection=(limit) TCPChannel filename=(peer) scriptref=(AcceptHandler) scriptref=(ReceiveHandler)
: d4=>$0 d5<=$1 d1<!>$2 d6=>$3 a0!>$4 a4<=$5 a5<=$6 d3<=0 ;
CreateTCPStreamClientEx#10,22 =WinSockError
filename=(host) TCPPort TCPChannel boolean=(connected) scriptref=(ConnectHandler) scriptref=(ReceiveHandler)
: d4=>$0 a0<=$1 d5<=$2 d6=>$3 d1!>$4 a4<=$5 a5<=$6 d3<=0 ;
CreateDGServerEx#10,23 =WinSockError DGPort DGChannel scriptref=(ReceiveHandler) : d0=>$0 d1<=$1 d3=>$2 a0<=$3 ;
CreateDGClientEx#10,24 =WinSockError filename=(host) DGPort DGChannel scriptref=(ReceiveHandler) : d0=>$0 a0<=$1 d1<=$2 d3=>$3 a1<=$4 ;
//event handlers
command
//d4 is the internal event number, a4 is the handler
//d0 is Channel d1 is ServerConnection
//d2 is WinSockError a0 is peer
OnTCPAccept#10,25 TCPChannel ServerConnection filename=(peer) scriptref : d4<=0 d0!>$1 d1!>$2 a0!>$3 a4<=$4 ;
OnTCPConnect#10,25 TCPChannel boolean=(connected) scriptref : d4<=1 d0!>$1 d1!>$2 a4<=$3 ;
OnTCPReceiveFromClient#10,25 TCPChannel ServerConnection scriptref : d4<=2 d0!>$1 d1!>$2 a4<=$3 ;
OnTCPReceiveFromServer#10,25 TCPChannel scriptref : d4<=3 d0!>$1 a4<=$2 ;
OnDGReceive#10,25 DGChannel scriptref : d4<=4 d0!>$1 a4<=$2 ;
OnTCPError#10,25 TCPChannel ServerConnection WinSockError scriptref : d4<=5 d0!>$1 d1!>$2 d2!>$3 a4<=$4 ;
OnDGError#10,25 DGChannel WinSockError scriptref : d4<=6 d0!>$1 d2!>$2 a4<=$3 ;
OffTCPAccept#10,25 : d4<=0 a4<=0;
OffTCPConnect#10,25 : d4<=1 a4<=0;
OffTCPReceiveFromClient#10,25 : d4<=2 a4<=0;
OffTCPReceiveFromServer#10,25 : d4<=3 a4<=0;
OffDGReceive#10,25 : d4<=4 a4<=0;
OffTCPError#10,25 : d4<=5 a4<=0;
OffDGError#10,25 : d4<=6 a4<=0;