TenFex System Calls

 

first off, these are the parameter types:


a = any

s = string

x = index = integer number

v = value = floating point number

i = image

n = node = executable stuff in { }

0 = none


next is the list of all system calls

the character in front of the space is the return type, the characters after the space are the parameters needed


NoVarChanges 0
SetVar a sa
GetVar a s
SetVarArr a sxa
GetVarArr a sx
SetVar_Ext a xsa
GetVar_Ext a xs
SetVarArr_Ext a xsxa
GetVarArr_Ext a xsx
Add a aa
Sub a aa
Mul a aa
Div a aa
SetFunc 0 sn
CallFunc 0 s
tsc_CallFunc 0 s
Emit x svvxxx
KillThisEmitter 0
EnumLines 0 s
EnumLinesAddStyle 0 s
EnumKaras 0 sx
EnumChars 0 sxx
CurLine 0 x
CurKara 0 xx
CurChar 0 xxx
GetParam v xsvx
GetStdPos 0 xxx
CurTime v
InOutAlpha v vv
InOutAlphaExt v vvvv
range v vvv
rand v vv
abs v v
sqrt v v
sin v v
cos v v
floor v v
SharpForErrors 0 v
GetImg i xxx
GetBorderImg i xxx
GetCustomImg i xxxs
GetCustomBorderImg i xxxs
ImgRescale i ixx
RescaleImg i ixx
ImgCrop i ixxxx
GetImgSizeX v i
GetImgSizeY v i
ImgRotate i iv
RotateImg i iv
BeginSubframe 0
BeginSubimage 0 xx
EndSubframe i
GetFrameImg i
DrawFinal 0 ivvvvv
FillColor i ivvv
FillAlpha i iv
MergeColorAlpha i ii
ColorToAlpha i i
ImgMulShift i ivvvvvvvv
ImgMultiply i ii
ImgTexturize i iivv
ImgInvert i i
GenParticleFx 0 sixvvvvx
ParticleForce 0 svvvv
ParticleTraced 0 ss
EmitterAlpha 0 sv
DrawParticles 0 s
CompEqual x vv
CompGreater x vv
TrackerGen 0 sx
TrackerActivateDebug 0 sx
TrackerUpdate 0 s
TrackerSums 0 svvv
TrackerRestartIfLess 0 sxx
TrackerSetKeepFeatures 0 sx
TrackerLoadMovement 0 xx
TrackerUpdatePosition 0 vv
EmitGroupAdd 0 sx
EmitGroupEnforceDistance 0 sv
EmitGroupEnforceBorderDistance 0 sv
EmitGroupMoveToLine 0 svvv
WinDrawStart 0 xx
WinDrawEnd i
WinDrawPathMode 0
WinDrawMoveTo 0 xx
WinDrawLineTo 0 xx
WinDrawPie 0 xxxxxxxx
Print 0 s



some of those will also be called automatically for you. for example

5 +3

will result in

Add(5,3)


btw TenFex supports * / prioritization

which means

5 + 3*2 = 5 + (3*2) = 11

this is in contrast to ass calc

[>>img\tentacle\stand_c.bmp] will load an image which you can also store in a variable (preferred because then you can reuse it fast :) )



images will be stored inside the FEX effect file, so no need to give them to your users ;)


if you want TenFex to enumerate Kara or Line or Chr or Pixels, tell it to do so, for example:



FUNC["perLine"]=

{

    Print( “oneLineMore” );

}


EnumLines( "perLine" );


lastly, in TenFex you “emit” objects which will then be rendered.

to emit, you give the start and end time as well as the line, kara and character you would like the emitted object to contain. also, emitting an object requires you to give a drawing function


Emit( "ten_jump_tg", CurLineStart-0.2, CurLineStart, CurLine, 0, -1 );


will emit the function “ten_jump_tg” to be drawn the 0.2 seconds before line start, containing the 0-th Kara of the current line, and all characters (thus the -1)


ten_jump_tg can than easily draw almost anything:


FUNC["ten_jump_tg"]=

{

DrawFinal( _img_text, _posx, _posy, 100, 100, 1 );

}


DrawFinal takes:

an image

the position

the scaling in x and y

and an alpha value 0...1


variables starting with _ are member variables of the emitted object, some of those will be calculated automatically

Basic Stuff

Emit will automatically set the following member variables for your:


timing:

_start

_end


what?

_line

_kara

_char


images:

_img_text

_img_border


pos:

_posx

_posy

Emit Default Member Variables