TenFex System Calls
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