file_id.diz
--------------------------------------------------------------------
faktory demo script tutorial
1) Basics
you must use the following directory structure
/demo
/demo/data/
/demo/data/music/
/demo/data/textures/
/demo/data/scenes/
in /demo goes your .exe
in /demo/data goes script.txt
demo.exe takes 1 parameter and that is the name of the script file.
By default it will try to run /data/script.txt, but you can overwrite
that with a parameter.
demo data/script2.txt
2) Creating the demo
in the script do:
<demo>
<create></create>
<load></load>
<run></run>
</demo>
now you have a demo :)
btw - you can use a shorthand for xml also like this:
of course it is only for xml tags that don't have children, but
parameters are fine.
<demo>
<create/>
<load/>
<run/>
</demo>
IT won't do anything, because you have to add effects in and tell
it what to do!
But first lets change some parameters.
<demo name="ubercooldemo" width="640" height="480" bpp="32" fullscreen="0">
<load></load>
<run></run>
</demo>
The text is quite flexible so you can arrange it nicely:
<demo name="ubercooldemo"
width="640"
height="480"
bpp="32"
fullscreen="0">
<load></load>
<run></run>
</demo>
if you wanted too..
Then to
3) Adding Effects
You should check effects.txt for the list of effects.
New effects are added all the time. Effects can very
simple or very complicated. They could have lots of
scriptable parameters..or none.
<add type="effect_type" name="give_it_a_name"></add>
Once the effect is added you can set any of its parameters.
<add type="musicplay" name="track1"></add>
<track1 filename="cooltune.mp3"></track1>
4) Default effects
There are default effects that you don't have to create.
One is "draworder".
<draworder effect="clear1" effect="bobs"></draworder>
More later...
5) Events
The demo will be quite boring without effects I think :)
Events can be triggered by:
time
keypress
time:
<event time="0.4">
<flash1><go></go></flash1>
</event>
This is in seconds from when the <run></run> is started.
keypress:
<event key="q">
<flash1><go></go></flash1>
</event>
When you run the demo and press "q" it will trigger those
commands.
So to generate events you can type them into the text file,
but this can take a long time - especially for syncing music
instruments like claps to flashes. So how about a way to
generate events easily?
The demo will now create a keylog.txt file when you run it,
with a list of the keys you press and what time you did it at.
Simply copy this .txt file into the script and run the demo
again and the events will trigger :) Then you can edit the
script to remove and incorrect events or to tweak them.
--------------------------------------------------------------------
faktory demo code tutorial
class fWindow
|
class fWindowGL
|
class fDemo
|
class skroo (name of demo)
class cEffect
|
class cYourEffectName
The demo is organised by running effects which are read in from a
script file in an XML-like format.
LOADING:
1) The script is parsed by the XML code. It just stores a hierarhy
of tags, parameters and values. <TAG parameter=value>
2) The demo code starts to parse the XML hierarchy.
When it finds <demo> it will call the demo's doXML() funtion which
only understands specific tags.
3) The demo will ADD new effects that the script tells it to add.
It will "new" many different types of classes, but because all
the classes are derives from cEffect it only needs to keep
cEffect pointers.
4) The demo will call the effects doXML() function when it finds a
tag which has the same name as the effect name. This is how
effects get their parameters passed to them.
5) When <event> tags are found the demo will add them to a list of
events. Events can either be triggered by time or by keypress.
The events keep a pointer to the XML kTag structure, so that
when the event is fire, the appropriate doXML() functions are
called.
6) The <load> tag is hit to the demo will call all the effects load()
function.
7) The <run> tag is hit, so the demo will enter the main loop.
EACH FRAME:
1) The events are checked to see if a new one needs to be preformed.
When one is, it will call the effects doXML() function and pass
in the changed parameters to it.
2) The drawlist of effects is gone through and each effects update()
and draW() function is called. The drawlist can be changed with
the <draworder> tag.
3) Screen is flipped.
For your effects you should not load data with FOPEN ...
Rather use cMemoryStream or cFileStream. These work almost
exactally like fopen, but will allow us to change the location
of the data(eg, RAM/.RAR) etc..
--------------------------------------------------------------------
Here is a short tutorial on how camera works:
basically, you must first CREATE the camera like this:
<camera mode="create" name="bob" pos="0,0,-150"></camera>
this will create a camera called bob, and will give it a position. the cameras
rotation will be set to 0,0,0 by default. the cameras 'viewport' will be set
to fullscreen, the viewport is the area of the screen the camera will show in,
so 0,0,0.5,0.5 will mean it will only draw to a quater of the screen and will
appear in the top left corner. So you can also create a camera like:
<camera mode="create" name="bob" pos="0,0,-150" rot="0,0,0"
viewport="0,0,1,1"></camera>
once the camera is made you want to tell an effect to use it. If you have a
skybox effect:
<add type="skybox" name="sky"></add>
<skybox file_top="top.jpg" file_left="left.jpg" file_right="right.jpg"
file_bottom="bot.jpg" file_front="front.jpg" file_back="back.jpg"
camera="bob"></skybox>
and you can change the camera at any time: <skybox camera="bob2"></skybox>
but this will just give you a static camera..useful for somethings, but if you
want the camera to move you need to add keyframes. keyframes are snapshots of
camera settings at certain times, the camera will blend between these
keyframes. to specify keyframes:
<camera name="bob" mode="keyframe">
<key t="0.0" pos="0,0,2"></key>
<key t="200.0" pos="0,0,-2"></key>
<key t="400.0" pos="0,0,2"></key>
<key t="600.0" pos="0,0,-2"></key>
</camera>
t is TIME
pos is position (XYZ)
rot is rotation (XYZ)
this will make the camera go forward and then back, then forward then back.
it'll happen over 600 'frames'. The further apart the keyframes, the longer
it'll take to blend. at the end, it won't loop though, i need to add this
feature. You can also animate the cameras rotation:
<camera name="bob" mode="keyframe">
<key t="0.0" pos="0,0,2" rot="0,0,0"></key>
<key t="200.0" pos="0,0,-2" rot="0,0,180"></key>
<key t="400.0" pos="0,0,2" rot="0,0,0></key>
<key t="600.0" pos="0,0,-2" rot="0,0,90"></key>
</camera>
this animation the camera will rotate around Z (like turning your head).
try it out, i have some EXAMPLES of this camera script being used:
http://www.rawhed.com/tmp/crazy_v3.rar
there are .txt log files for text, warning and errors...if something dies
check the log files..but it still might not help you ;)
////////////////////////////////////////////////////////////////////////////////
>videoplayer, mayaplayer - setframe
you can now set your frame in the videoplayer and the mayaplayer.
there are 2 parameters, 'frame' and 'play',
frame will set the frame number and play is an on/off(0/1) value
which will set the animation to play or stop.
so to pause at a frame:
<mplay play="0"></mplay>
or to pause at a specific frame:
<mplay frame="401" play="0"></mplay>
and of course to start the playback again set play="1"
<key mode="set" control="keybank+" val="q"/>
<keybank num="0" key="1"></keybank>
<keybank num="1" key="2"></keybank>
<keybank num="2" key="3"></keybank>
<event key="q" bank="0"></event>
////////////////////////////////////////////////////////////////////////////////
>multi keymapping, support weird keys : " ;'. " etc..
i haven't fixed 'weird keys', but i found out why its not working
so i can fix it soon.
keybanks:
the demoengine has 10 keybanks( so thats 0..9, not 1..10 ) . you can add events to any of these banks.
the demoengine also keeps track of which is the current selected keybank.
<keybank set="0"></keybank>
will set the current bank to 0
<keybank inc="1"></keybank>
will increase the current bank by 1
<keybank inc="3"></keybank>
will increate the current bank by 3
<keybank dec="2"></keybank>
will decrease the current bank by 2
whenever the current bank is less than zero, it will stop at 0, if it
goes higher than 9, it will stop at 9. the default keybank is 0.
also there is a change to the way events are specified:
<event key="Q" bank="0">
<clear color="0xffff0000"></clear>
</event>
easy... if you don't put the bank parameter it will default to -1,
-1 means it will work GLOBALLY, it doesn't matter what bank the current keybank
is set to.
so..here is an example of how to use it completely:
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<event key="1" bank="-1">
<keybank inc="1"></keybank>
</event>
<event key="2" bank="-1">
<keybank dec="1"></keybank>
</event>
<event key="3" bank="-1">
<keybank set="3"></keybank>
</event>
<event key="Q" bank="0">
<clear color="0xffff0000"></clear>
</event>
<event key="W" bank="1">
<clear color="0xff00ff00"></clear>
</event>
<event key="E" bank="-1">
<clear color="0xff0000ff"></clear>
</event>
<draworder effect="clear"></draworder>
so keys 1,2,3 will change the current keybank
keys Q,W,E are events, but Q,W only work when you are on curtain current keybank
E will work no matter what your current keybank selected is.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// friday 11-07-2002
//
// + improved xml parser(handles spaces better, faster)
// can now do <hello/> instead of <hello></hello>
// + improved camera parameters, including looping ability
// pingpong with easein+out.
// + added animated gif support :) including transparent gifs
// + using a newer version of BASS
// + added an AVI writer effect!
// + added new examples for the new fx
//
////////////////////////////////////////////////////////////////////////////
//
// wednesday 04-06-2002
//
// been AGES since updated this..ARGH ;p lots has happened though
// here is a summary of what i can remember
//
// + added .md2 player effect
// + lockflash effect added (flashes your num/caps/scroll lock)
// + wavebox effected added
// + fogflash effect added
// + picture effect tiles now, useful for rotozoom
// + added 'camera' element, keyframing
// + added 'texture' element, textures can be reused etc..
// + now effects hold data about their variables which can
// be retrieved.
// + more examples!
// + added gridmap effect
// + added skybox effect
// + improved vis for musicplay effect
//
////////////////////////////////////////////////////////////////////////////
//
// wednesday 16-10-2002
//
// + added a doc about creating plugins
// + name="blah" actually changes the window title now(yay)
// + gave the exe an icon :)
// + added new effect skybox
// + started new "gridmap"
// + started a webcam plugin
// + added new effects to videoplayer and made it faster and
// more compatible.
// + added examples for videoplay, skycube, particlebox, clear,
// flash and others
//
//////////////////////////////////////////////////////////////////////////////
//
// friday 04-10-2002
//
// + added videoplayer effect
// + put keylogging back in
// + added more examples
//
////////////////////////////////////////////////////////////////////////////
//
// sunday 08-09-2002
//
// + removed all effects from main code, making things more modula.
// It now uses DLL plugins via the new command <loadplugin>!
// This allows coders to add effects more easily. Had to
// change the directory structure and split libraries, but its
// much better now.
//
// + Made more script examples to help people learn
//
// + Made some code example for easily writing new plugins
//
// + It used to be that if you didn't specify a texture for an
// effect it would use white. Now it uses the last textureset.
// This allows a texture from effect1 to be used for effect2.
// You can make some nice effects using this.
//
//
//
////////////////////////////////////////////////////////////////////////////
//
// monday 26-08-2002
//
// + added vhs into the demo tag...setting this to 1 will let you FF
// and REW the demo
//
// + effect dogtail, has parameters: num and filename
//
// + added quicksort back in, so loading is faster
//
// + ALL effects now have these values:
//
// <fx speed="1.0" active="1"></fx>
//
// speed will make it go faster/slower ;) and active will just turn
// the effect on or off, even if its in the draworder list.
//
// + fixed some small bugs
//
// + ALL effects now have tweakable opengl values. But the effect
// itself can override the ones you set. Here is how it looks:
//
// <myeffect>
// <gl restore="0">
// <render active="0" flat="1" wire="0" envmap="0" linewidth="1"
// color="1,1,1,1"></render>
// <depth active="0" test="1" write="1"></ztest>
// <cull active="0" cull="1" mode="0"></cull>
// <alpha active="0" blend="0" blendsrc="1" blenddst="1"
// mask="0" maskvalue="0.5"></alpha>
// <proj active="0" fov="45" near="0.1" far="400"></proj>
// <fog active="0" fog="0" mode="1" density="0.5"
// zstart="0.0" zend="1.0" color="0xffff0000"></fog>
// </gl>
// </myeffect>
//
// + commenting is in there, use <! and --> for comments..however
// there might be a bug..
//
// + <include file="script5.txt"></include> can be used to include
// extra script files, so you can seperate them if you want.
//
////////////////////////////////////////////////////////////////////////////
//
// saturday 04-08-2002
//
// + made demo LICK_THE_EVERYTHING using demo engine
//
////////////////////////////////////////////////////////////////////////////
//
// thursday 25-07-2002
//
// + added new version of UT's LTREE effect. Leaves fall off of
// the tree - very nice :)
//
// + when scripting music filenames you no loader need to specify the path
//
// + better error handling..much less likely to crash if u don't have the
// data files.
//
// + XML parser tried to report bugs in the script
//
// + optimised. sync is much more accurate.
//
// + added sample="1" or "0" to musicplay effect (.wav files only)
// this will mean you can play the .wav file again and again and it
// will generate new channels to play it on.
// So if you bind a musicplay effect to a key that has sample="1"
// when you press the key before the sample has finished playing it
// will play it again...up to 16 channels per musisplay effect.
//
// + added active="1" or "0" to fontcool text. So you can specify all
// your lines of text but switch which are visible
//
// + particlebox has new parameters:
//
// spawndim="10,10,10" dimension particles can spawn in
// dirmin="-1,0,0" particle XYZ movement direction minrange
// dirmax="1,0,1" particle XYZ movement direction maxrange
// lifespan="100" average particle lifespan
//
////////////////////////////////////////////////////////////////////////////
//
// wednesday 18-07-2002
//
//
// + echo,flange,rotate,flangespeed added to musicplay effect
//
//
// + loopframe parameter added to 3dscene. This is the frame at which
// the animation will reset back to zero. If you don't want the
// animation to loop you should use 10000 or something super high :)
//
////////////////////////////////////////////////////////////////////////////
//
// sunday 14-07-2002
//
//
// + can pass parameter of the script you want to load
// eg:
// demo script2.txt
//
// + new effect: fontcool
//
// fontcool
// parameters:
// basefont="arial" (most windows TTF's)
// extrude="0.1" (Z amount to extrude, 0 = flat)
// italics="0"
// quality="0.1" (0 best,slowest -> 1 worst,fastest)
// commands:
// <text
// num="0" (which text line this is)
// string="hello"
// tra="0,0,0" (translation)
// rot="0,0,0" (rotation)
// sca="1,1,1" (scale)
// trav="0,0,0" (translation increment)
// rotv="0,0,0" (rotation increment)
// scav="0,0,0" (scale increment)
// color="0xffffffff">
//
// + new effect: particlebox
//
// particlebox
// paramaters:
// texture="blah.tga"
// number="500" (number of particleS)
// speed="1"
// dim="50,50,50" (dimensions of box)
// tra="0,0,0" (translation)
// rot="0,0,0" (rotation)
// sca="1,1,1" (scale)
// trainc="0,0,0" (ammount to increase translation by each frame)
// rotinc="0,0,0" (ammount to increase rotation by each frame)
// scainc="0,0,0" (cmmount to increase scale by each frame)
// pdir="0,0,0" (direction particles move in)
// prot="0,0,0" (rotation of particles)
// command:
// random (randomise particles)
// origin (bring all the origin)
//
// + 3dscene effect: added camera parameter to swap current camera
//
// + picture effect changed the translatin, rotation, scale
// to use this smaller format:
// tra="0,0,0"
// rot="0,0,0" (degrees)
// sca="1,1,1"
//
// + started work on new effect dogtail
// + bugs fixed
//
////////////////////////////////////////////////////////////////////////////
//
// monday 08-07-2002
//
//
// + musicplay now also supports these:
// filename="*.mtm,*.mo3,*.mp3,*.mp2,*.ogg,*.wav"
// + added trailval="1.0" to clear effect
// this will not clear the screen but just darken it.
// very useful for blurry additive effects and motion trails
//
////////////////////////////////////////////////////////////////////////////
//
// friday 05-07-2002
//
// + new effects from UT:
//
// starspace
// parameters:
// commands:
// teddy
// parameters:
// commands:
// ltree
// parameters:
// commands:
//
// + attack, sustain, decay added to flash
// + additive,subtracted, negative flash modes
//
// + picture effect R<->B bug fixed.
// + picture effect supports arbitary sized .tga now
// but they must be bigger then 8 and must an even number
// so 640x480 will work..it will divide the images up into
// segments of 256x256 or smaller.
//
// + engine speed has improved so the synchronisation will be more accurate
//
// + new effect: 3dscene
//
// 3dscene (no camera control..YET)
// paramaters:
// file="blah.zen"
// speed="0.4"
// timeoffset="0.0"
// frame="0.0"
// visible="1"
// commands:
// go
//
// still very basic..needs camera control added.
//
////////////////////////////////////////////////////////////////////////////
wanted:
+ viewports for effects and ability to scroll/zoom in them(picture effect zoom+scroll!)
+ how can i hold anim still and jump to some specific frame?
+ how can i define/control ground/sky
+ dif skybox movement
+ how can i change angle of camera for 3D anim?
+ how can i zoom it?
+ different camera movement for this one would be very handy as well.
+ another thing we should get a hold of is smoke. for the factory..
+ how about +/- things in the draworder? would it be possible with current
structure and interpretation of the script?
<camera mode="create" name="cam1" viewport="" fov="" znear="" zfar="" position="0,0,0" rotation="0,0,0" viewport=""></camera>
new stuff:
////////////////////////////////////////////////////////////////////////////////////////////
update fx: GRIDMAP:
this effect has some new presets. presets 0->14. some new funky distortions.
to use this effect:
<add type="gridmap" name="gm"></add>
<gm preset="13"></gm>
<draworder effect="clear" effect="something" effect="gm"></draworder>
<event key="q"
<gm preset="5"></gm>
</event>
<event key="w"
<gm preset="9"></gm>
</event>
////////////////////////////////////////////////////////////////////////////////////////////
new fx: LOCKFLASH:
flashes the Num & Caps & Scroll lock lights!!!!!
this is how to create it and let keys Q,W,E toggle the lights:
<add type="lockflash" name="lf"></add>
<draworder effect="clear" effect="lf"></draworder>
<event key="q">
<lf num></lf>
</event>
<event key="w">
<lf caps></lf>
</event>
<event key="e">
<lf scroll></lf>
</event>
////////////////////////////////////////////////////////////////////////////////////////////
new fx: WAVEBOX:
sort of weird 3d wave effect, but can look totally different and weird by choosing right
parameters and using some strange textures and blending
here is how to create it:
<add type="Wavebox" name="wave"></add>
<wave texture="partblue.tga" preset="11"></wave>
<draworder effect="clear" effect="wave"></draworder>
<event key="Q">
<wave texture="partblue.tga"></wave>
</event>
<event key="w">
<wave preset="8"></wave>
</event>
the effect comes with 11 "presets" of wave shape. toggle these with preset="2" parameter
////////////////////////////////////////////////////////////////////////////////////////////
new engine: NEW TEXTURE HANDLING:
this allows you to load textures and then swap textures in effects.
wavebox is the only effect so far to use the engine NEW texture handler so far, but I'll change
the others to use it soooon.
here is how to use it:
to load some textures into engine:
<texture mode="load" filename="part2.tga"></texture>
<texture mode="load" filename="partblue.tga"></texture>
<texture mode="load" filename="phantasy.tga"></texture>
then you can use these textures in wavebox effect:
<add type="Wavebox name="wave"></add>
<wave texture="partblue.tga"></wave>
<event key="q">
<wave texture="phantasy.tga"></wave>
</event>
<event key="w">
<wave texture="part2.tga"></wave
</event>
////////////////////////////////////////////////////////////////////////////////////////////
new fx: FOGFLASH:
this is similar to the old 'flash' effect, but it uses the opengl FOG engine, this means in 3d
scenes the flash will start from the back and come to the front. Pretty neat.
<add type="fogflash" name="ff"></add>
<ff speed="0.01" attack="2.0" sustain="0.0" decay="5.0" srccolor="0,0,0" dstcolor="0.9,0.8,0.5" srczstart="100" srczend="200" dstzstart="0" dstzend="100">
<gl restore="0">
</gl>
</ff>
<draworder effect="clear" effect="fogflash" effect="something"></draworder>
you NEED the <gl restore="0"> part because otherwise the FOG state won't be passed to the next effect.
there is one preset so far, which can be set with:
<ff preset="0"></ff>
////////////////////////////////////////////////////////////////////////////////////////////
------------------------------------------------------------------------------
program
demo.exe scriptname.txt (defaults to script.txt)
------------------------------------------------------------------------------
script
demo
parameters:
name="q3view"
width="640"
height="480"
bpp="32"
fullscreen="0"
vhs="1" means you can click an FF/REW the demo
commands:
create
load
run
------------------------------------------------------------------------------
load
parameters:
effect="effectname"
This is the effect to play while loading is occuring.
This effect will be loaded first..so best if its small :)
------------------------------------------------------------------------------
event
paramaters:
time="0.0"
key="a"
trigger="a"
commands:
example:
<event key="j">
<flash1><go></go></flash1>
<logo scax="4" scay="4"></logo>
<fish1 timeoffset="40"></fish1>
<logo rotz="180"></logo>
</event>
<event time="2.6" trigger="j">
</event>
<event time="50">
<flash2><go></go></flash2>
<fish1 timeoffset="-80"></fish1>
<logo rotz="0"></logo>
</event>
------------------------------------------------------------------------------
draworder
paramaters:
effect="blah1"
effect="blah2"
effect="blah3"
commands:
example:
<draworder effect="clear1" effect="ball" effect="bobs"></draworder>
------------------------------------------------------------------------------
ALL EFFECTS have these:
xxx
parameters:
active="1" draw+update on/off, even if effect in draworder list
speed="1.0" multiplier for speed
they also all have a GL section:
<gl restore="1"> this means that after the effect is run it will return
the original gl values. this should be used most of time
<render active="1"
flat="0" use smooth/flat shading
wire="0" wireframe
envmap="0" environment mapping on/off
linewidth="1"
color="1,1,1,1">
</render>
<depth active="1"
test="0" test zbuffer...turn this off to draw always
write="0"> write to zbuffer
</depth>
<cull active="1"
cull="1" cull backfacing polgons..or not
mode="0"> 0=back, 1=front
</cull>
<alpha active="1"
blend="0" turn blending on/off(1/0)
blendsrc="1" there are 10 blend modes, see below for list
blenddst="1"
mask="0" use the texture alpha channel to cutout
maskvalue="0.5"> 0.0->1.0 if alpha channel pixel >= maskvalue then cutout
</alpha>
<proj active="1"
fov="45" field of view in degrees
near="0.1" near clip plane
far="400"> far clip plane
</proj>
<fog active="1"
on="1"
mode="1"
density="1.0"
zstart="0.0"
zend="50.0"
color="0xffffffff">
</fog>
</gl>
blend table
0 GL_ZERO
1 GL_ONE
2 GL_SRC_COLOR
3 GL_ONE_MINUS_SRC_COLOR
4 GL_SRC_ALPHA
5 GL_ONE_MINUS_SRC_ALPHA
6 GL_DST_ALPHA
7 GL_ONE_MINUS_DST_ALPHA
8 GL_DST_COLOR
9 GL_ONE_MINUS_DST_COLOR
------------------------------------------------------------------------------
clear
paramaters:
color="0xff112233"
trailval="0.0" (0.0->1.0)
commands:
example:
<add type="clear" name="clear1"></add>
<clear1 color="0xffffffff" trailval="1.0"></clear1>
------------------------------------------------------------------------------
musicplay
paramaters:
filename="*.it,*.xm,*.mod,*.s3m,*.mtm,*.mo3,*.mp3,*.mp2,*.ogg,*.wav"
volume="1.0"
flange="0"
echo="0"
rotate="1"
flangespeed="0.0005"
sample="1" (only for .wav files, can play multiple times like for sfx)
commands:
play
stop
example:
<add type="musicplay" name="track flange="1" echo="0"></add>
<track filename="data/music/potion.mp3"></track>
------------------------------------------------------------------------------
flash
paramaters:
color="0xff112233"
attack="1.0"
sustain="1.0"
decay="1.0"
mode="0" (0=additive 1=subtractive 2=negative)
commands:
go
example:
<add type="flash" name="flash1"></add>
<flash1 color="0xffffffff" mode="1" attack="0.2" decay="0.2" sustain="1.0"></flash1>
<event time="5">
<flash1><go></go></flash1>
<event>
------------------------------------------------------------------------------
picture (must be >8x8 and even width and height,24/32bpp)
paramaters:
filename="*.tga"
tra="0,0,0"
rot="0,0,0" (degrees)
sca="0,0,0"
commands:
example:
------------------------------------------------------------------------------
starspace
parameters:
commands:
example:
<add type="starspace" name="space1"></add>
------------------------------------------------------------------------------
teddy
parameters:
commands:
example:
<add type="teddy" name="teddy1"></add>
------------------------------------------------------------------------------
ltree
parameters:
commands:
example:
<add type="ltree" name="tree1"></add>
------------------------------------------------------------------------------
3dscene
paramaters:
filename="blah.zen"
speed="0.4"
timeoffset="0.0"
frame="0.0"
loopframe="90.0"
visible="1"
camera="camera01"
commands:
go
example:
<add type="3dscene" name="ball"></add>
<ball filename="headlook.zen"></ball>
------------------------------------------------------------------------------
fontcool
parameters:
basefont="arial" (most windows TTF's)
extrude="0.1" (Z amount to extrude, 0 = flat)
italics="0"
quality="0.1" (0 best,slowest -> 1 worst,fastest)
numtexts="1" (number of lines of text)
texture="blah.tga"
commands:
<text
num="0" (which text line this is)
active="1" (draw or not)
string="hello"
tra="0,0,0" (translation)
rot="0,0,0" (rotation)
sca="1,1,1" (scale)
trav="0,0,0" (translation increment)
rotv="0,0,0" (rotation increment)
scav="0,0,0" (scale increment)
color="0xffffffff">
example:
<add type="fontcool" name="font"></add>
<font basefont="impact" extrude="0.1" italics="0" quality="0.0" pos="41,42,34" texture="rust_collage.tga" numTexts="2">
<text num="0" active="1" tra="-0.5,-0.5,-1" trav="-0.001,0,0" scav="0.01,0.01,0" string="H3110">
</text>
<text num="1" active="0" tra="0,1,-2" string="1234567890">
</text>
</font>
------------------------------------------------------------------------------
particlebox
parameters:
texture="blah.tga"
number="500" (number of particleS)
speed="1"
dim="50,50,50" (dimensions of wrap box)
spawndim="10,10,10" (dimension particles can spawn in)
dirmin="-1,0,0" (particle XYZ movement direction minrange)
dirmax="1,0,1" (particle XYZ movement direction maxrange)
lifespan="100" (average particle lifespan, if you don't want a life span, don't write one)
tra="0,0,0" (translation)
rot="0,0,0" (rotation)
sca="1,1,1" (scale)
trainc="0,0,0" (ammount to increase translation by each frame)
rotinc="0,0,0" (ammount to increase rotation by each frame)
scainc="0,0,0" (cmmount to increase scale by each frame)
pdir="0,0,0" (direction particles move in)
prot="0,0,0" (rotation of particles)
color="0xff00ff00"
src="1" (blend)
dst="1" (blend)
command:
random (randomise particles)
origin (bring all the origin)
example:
<add type="particlebox" name="bobs"></add>
<bobs texture="particleblue.tga"
number="500"
dim="150,150,150"
scainc="0.01,0,0.00"
pdir="0.01,0.02,0.1"
prot="0.001,0.002,0.003">
</bobs>
------------------------------------------------------------------------------
dogtail
parameters:
num="4"
filename="texture.tga"
example:
<add type="dogtail" name="dog"></add>
<dog filename="rust_collage.tga"></dog>
------------------------------------------------------------------------------
videoplay
parameters:
filename="vid.avi"
example:
<add type="videoplay" name="vid1"></add>
<vid1 filename="video1.avi"></vid1>
------------------------------------------------------------------------------
skybox
parameters:
camera="1"
file_front="1.tga"
file_back="2.tga"
file_top="3.tga"
file_bot="4.tga"
file_left="5.tga"
file_right="6.tga"
example:
------------------------------------------------------------------------------
<demo name="example1" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_ut.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<loadplugin file="../fx/fx_example.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="splash" name="water"></add>
<water speed="0.1" num="1"></water>
<add type="dogtail" name="dog"></add>
<dog speed="0.29" num="3" filename="asm1.tga">
<gl restore="0">
<render active="1"
flat="0"
wire="0"
envmap="1"
linewidth="1"
color="10.3,10.3,10.3,10.3"></render>
<depth active="0"
test="1"
write="1">
</depth>
<cull active="1"
cull="1"
mode="0">
</cull>
<alpha active="0"
blend="1"
blendsrc="1"
blenddst="2"
mask="0"
maskvalue="0.5">
</alpha>
<proj active="1"
fov="35"
near="0.2"
far="600">
</proj>
<fog active="0"
on="1"
mode="0"
density="0.0"
zstart="10.0"
zend="110.0"
color="0xff000000">
</fog>
</gl>
</dog>
<add type="cubeeffect" name="cube"></add>
<add type="wtf" name="wtf"></add>
<add type="rigid" name="rigid"></add>
<add type="particlebox" name="part"></add>
<part number="100"
speed="1"
dim="50,50,50"
spawndim="30,30,30"
dirmin="0,0,0"
dirmax="0,0,0"
tra="0,0,0"
rot="45,45,45"
sca="1,1,3"
trainc="0,0,0"
rotinc="0.3,0.1,0.2"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<add type="tunnelfx" name="tunnel"></add>
<add type="videoplay" name="vid"></add>
<vid filename="stupido.avi"></vid>
<add type="horizrasters" name="hr1"></add>
<hr1 num="64" grad="0" rangestart="0" rangeend="64" speed="1"
color1="0xffffffff" color2="0x0000000">
<gl restore="0">
<render active="1"
flat="0"
wire="0"
envmap="1"
linewidth="1"
color="10.3,10.3,10.3,10.3"></render>
<depth active="0"
test="0"
write="0">
</depth>
<cull active="0"
cull="0"
mode="0">
</cull>
<alpha active="0"
blend="1"
blendsrc="0"
blenddst="3"
mask="0"
maskvalue="0.5">
</alpha>
<proj active="0"
fov="35"
near="0.2"
far="600">
</proj>
<fog active="0"
on="1"
mode="0"
density="0.0"
zstart="10.0"
zend="110.0"
color="0xff000000">
</fog>
</gl>
</hr1>
<draworder effect="clear" effect="vid" effect="hr1"></draworder>
<event key="q">
<water><splash></splash></water>
</event>
<load></load>
<run></run>
</demo>
<demo name="flash1" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_mayaplay.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xffa64c0c"></clear>
<clear color="0xff000000"></clear>
<add type="mayaplay" name="bong"></add>
<bong filename="tree.zen" speed="1">
<gl restore="1">
<render active="1"
flat="0"
wire="0"
envmap="0"
linewidth="1"
color="1,1,1,1"></render>
<depth active="1"
test="1"
write="1">
</depth>
<cull active="1"
cull="0"
mode="0">
</cull>
<alpha active="0"
blend="0"
blendsrc="1"
blenddst="2"
mask="0"
maskvalue="0.5">
</alpha>
<proj active="1"
fov="95"
near="0.02"
far="800">
</proj>
<fog active="0"
on="1"
mode="0"
density="0.0"
zstart="-100.0"
zend="120.0"
color="0xffa64c0c">
</fog>
</gl>
</bong>
<draworder effect="clear" effect="bong"></draworder>
<load></load>
<bong camera="cameraShape1" frame="0" play="1" loopmin="0" loopmax="400"></bong>
<run></run>
</demo>
<demo name="fogflash1" width="640" height="480" bpp="32" fullscreen="0" showfps="0" showconfig="1">
<create></create>
<loadplugin file="..\fx\fxmain.dll"></loadplugin>
<loadplugin file="..\fx\fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<texture mode="load" filename="part2.tga"></texture>
<texture mode="load" filename="partblue.tga"></texture>
<add type="Wavebox" name="wave"></add>
<wave texture="partblue.tga" preset="11"></wave>
<add type="fogflash" name="ff"></add>
<ff speed="0.01" attack="3.0" sustain="0.0" decay="4.0" srccolor="0,0,0" dstcolor="0.9,0.4,0.2" srczstart="100" srczend="200" dstzstart="-100" dstzend="0">
<gl restore="0">
</gl>
</ff>
<add type="lockflash" name="lf"></add>
<draworder effect="clear" effect="ff" effect="wave" effect="lf"></draworder>
<event key="Q">
<wave texture="partblue.tga"></wave>
<lf num></lf>
<ff><go></go></ff>
</event>
<event key="W">
<wave texture="part2.tga"></wave>
<ff><go></go></ff>
<lf scroll></lf>
</event>
<event key="E">
<wave texture="part2.tga"></wave>
<ff><go></go></ff>
<lf caps></lf>
</event>
<event time="0" trigger="Q"></event>
<event time="1" trigger="W"></event>
<event time="2" trigger="E"></event>
<event time="3" trigger="Q"></event>
<event time="4" trigger="W"></event>
<event time="5" trigger="E"></event>
<event time="6" trigger="Q"></event>
<event time="7" trigger="W"></event>
<load></load>
<run></run>
</demo>
<demo name="video2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="musicplay" name="snd1"></add>
<snd1 filename="cfx17.wav" sample="1"></snd1>
<add type="musicplay" name="snd2"></add>
<snd2 filename="metb18.wav" sample="1"></snd2>
<draworder effect="clear" effect="snd1" effect="snd2"></draworder>
<load></load>
<event key="1">
<snd1><play></play></snd1>
</event>
<event key="2">
<snd2><play></play></snd2>
</event>
<run></run>
</demo>
<demo name="flash2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="flash" name="flash1"></add>
<flash1 color="0xffff0000"
attack="0.05"
sustain="0.1"
decay="0.1"
mode="0">
</flash1>
<add type="flash" name="flash2"></add>
<flash2 color="0xffff00ff"
attack="0.1"
sustain="0.1"
decay="0.1"
mode="2">
</flash2>
<draworder effect="clear" effect="flash1" effect="flash2"></draworder>
<event time="0"><flash1><go></go></flash1></event>
<event time="1"><flash1><go></go></flash1></event>
<event time="2"><flash1><go></go></flash1></event>
<event time="3"><flash1><go></go></flash1></event>
<event time="4"><flash1><go></go></flash1></event>
<event time="5"><flash1><go></go></flash1></event>
<event time="6"><flash1><go></go></flash1></event>
<event time="7"><flash1><go></go></flash1></event>
<event time="8"><flash1><go></go></flash1></event>
<event time="9"><flash1><go></go></flash1></event>
<event time="10"><flash1><go></go></flash1></event>
<event time="0.5"><flash2><go></go></flash2></event>
<event time="1.5"><flash2><go></go></flash2></event>
<event time="2.5"><flash2><go></go></flash2></event>
<event time="3.5"><flash2><go></go></flash2></event>
<event time="4.5"><flash2><go></go></flash2></event>
<event time="5.5"><flash2><go></go></flash2></event>
<event time="6.5"><flash2><go></go></flash2></event>
<event time="7.5"><flash2><go></go></flash2></event>
<event time="8.5"><flash2><go></go></flash2></event>
<event time="9.5"><flash2><go></go></flash2></event>
<event time="10.5"><flash2><go></go></flash2></event>
<load></load>
<run></run>
</demo>
<demo name="flash1" width="640" height="480" bpp="32" fullscreen="0" showfps="0" showconfig="1">
<create></create>
<loadplugin file="..\fx\fxmain.dll"></loadplugin>
<loadplugin file="..\fx\fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<camera mode="create" name="man" pos="1.0,0,0.5" rot="60,0,90"></camera>
<add type="picture" name="pic"></add>
<pic filename="drfreak.tga"></pic>
<add type="md2play" name="md2"></add>
<md2 filename="scenes\tris.md2" speed="0.1"></md2>
<md2 camera="man"></md2>
<draworder effect="clear" effect="md2"></draworder>
<load></load>
<run></run>
</demo>
<demo name="picture2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="picture" name="pic1"></add>
<pic1 filename="bg1.tga"
rot="0,0,40"
sca="1,1,1">
<gl restore="1">
<render active="1" wire="0"></render>
</gl>
</pic1>
<draworder effect="clear" effect="pic1"></draworder>
<load></load>
<run></run>
</demo>
<demo name="wavebox1" width="640" height="480" bpp="32" fullscreen="0" showfps="0" showconfig="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0x11111111" trailval="1.0"></clear>
<add type="wavebox" name="wave"></add>
<wave texture="partblue.tga" preset="10" speed="5">
<gl restore="1">
<render active="1"
flat="0"
wire="0"
envmap="0"
linewidth="1"
color="1,1,1,1"></render>
<depth active="1"
test="1"
write="1">
</depth>
<cull active="1"
cull="0"
mode="0">
</cull>
<alpha active="1"
blend="1"
blendsrc="1"
blenddst="1"
mask="0"
maskvalue="0.5">
</alpha>
<proj active="0"
fov="46"
near="0.02"
far="800">
</proj>
<fog active="0"
on="1"
mode="0"
density="0.0"
zstart="-50.0"
zend="120.0"
color="0xff0c4ca6">
</fog>
</gl>
</wave>
<draworder effect="clear" effect="wave"></draworder>
<event time="7.1" trigger="0">
</event>
<event time="11.5" trigger="9">
</event>
<event time="17.8" trigger="B">
</event>
<event time="17.8" trigger="">
</event>
<event time="18.0" trigger="N">
</event>
<event time="18.0" trigger="">
</event>
<event time="18.2" trigger="M">
</event>
<event time="18.4" trigger="B">
</event>
<event time="18.4" trigger="">
</event>
<event time="18.6" trigger="N">
</event>
<event time="18.6" trigger="">
</event>
<event time="18.8" trigger="M">
</event>
<event time="19.0" trigger="N">
</event>
<event time="19.0" trigger="">
</event>
<event time="19.1" trigger="B">
</event>
<event time="19.1" trigger="">
</event>
<event time="19.3" trigger="N">
</event>
<event time="19.3" trigger="">
</event>
<event time="19.5" trigger="M">
</event>
<event time="19.7" trigger="M">
</event>
<event time="19.9" trigger="M">
</event>
<event time="20.0" trigger="B">
</event>
<event time="20.0" trigger="">
</event>
<event time="20.1" trigger="N">
</event>
<event time="20.1" trigger="">
</event>
<event time="20.3" trigger="B">
</event>
<event time="20.3" trigger="">
</event>
<event time="20.4" trigger="N">
</event>
<event time="20.4" trigger="">
</event>
<event time="20.6" trigger="B">
</event>
<event time="20.6" trigger="">
</event>
<event time="20.7" trigger="M">
</event>
<event time="20.9" trigger="B">
</event>
<event time="20.9" trigger="">
</event>
<event time="21.1" trigger="M">
</event>
<event time="21.3" trigger="M">
</event>
<event time="21.5" trigger="M">
</event>
<event time="21.6" trigger="B">
</event>
<event time="21.6" trigger="">
</event>
<event time="21.8" trigger="N">
</event>
<event time="21.8" trigger="">
</event>
<event time="21.9" trigger="B">
</event>
<event time="21.9" trigger="">
</event>
<event time="22.1" trigger="N">
</event>
<event time="22.1" trigger="">
</event>
<event time="22.3" trigger="B">
</event>
<event time="22.3" trigger="">
</event>
<event time="22.4" trigger="N">
</event>
<event time="22.4" trigger="">
</event>
<event time="22.6" trigger="B">
</event>
<event time="22.6" trigger="">
</event>
<event time="22.8" trigger="M">
</event>
<event time="23.0" trigger="B">
</event>
<event time="23.0" trigger="">
</event>
<event time="23.1" trigger="N">
</event>
<event time="23.1" trigger="">
</event>
<event time="23.3" trigger="B">
</event>
<event time="23.3" trigger="">
</event>
<event time="23.5" trigger="M">
</event>
<event time="23.6" trigger="N">
</event>
<event time="23.7" trigger="">
</event>
<event time="23.8" trigger="M">
</event>
<event time="24.0" trigger="N">
</event>
<event time="24.0" trigger="">
</event>
<event time="24.2" trigger="N">
</event>
<event time="24.2" trigger="">
</event>
<event time="24.4" trigger="B">
</event>
<event time="24.4" trigger="V">
</event>
<event time="24.4" trigger="">
</event>
<event time="24.5" trigger="">
</event>
<event time="24.6" trigger="N">
</event>
<event time="24.6" trigger="">
</event>
<event time="24.8" trigger="V">
</event>
<event time="24.8" trigger="">
</event>
<event time="24.9" trigger="N">
</event>
<event time="25.0" trigger="">
</event>
<event time="25.2" trigger="B">
</event>
<event time="25.2" trigger="">
</event>
<event time="25.3" trigger="N">
</event>
<event time="25.3" trigger="">
</event>
<event time="25.5" trigger="B">
</event>
<event time="25.5" trigger="">
</event>
<event time="25.7" trigger="M">
</event>
<event time="25.9" trigger="N">
</event>
<event time="26.0" trigger="">
</event>
<event time="26.2" trigger="O">
</event>
<event time="26.6" trigger="I">
</event>
<event time="27.0" trigger="O">
</event>
<event time="27.0" trigger="P">
</event>
<event time="27.2" trigger="O">
</event>
<event time="27.3" trigger="P">
</event>
<event time="27.4" trigger="P">
</event>
<event time="27.7" trigger="O">
</event>
<event time="27.8" trigger="O">
</event>
<event time="28.0" trigger="I">
</event>
<event time="28.0" trigger="O">
</event>
<event time="28.1" trigger="P">
</event>
<event time="28.3" trigger="O">
</event>
<event time="28.5" trigger="O">
</event>
<event time="28.7" trigger="O">
</event>
<event time="28.8" trigger="D">
</event>
<event time="29.2" trigger="P">
</event>
<event time="29.5" trigger="O">
</event>
<event time="29.9" trigger="I">
</event>
<event time="30.3" trigger="D">
</event>
<event time="30.6" trigger="O">
</event>
<event time="30.8" trigger="F">
</event>
<event time="31.0" trigger="I">
</event>
<event time="31.2" trigger="G">
</event>
<event time="31.4" trigger="P">
</event>
<event time="31.7" trigger="H">
</event>
<event time="32.0" trigger="O">
</event>
<event time="32.4" trigger="F">
</event>
<event time="32.8" trigger="D">
</event>
<event time="33.0" trigger="F">
</event>
<event time="33.2" trigger="F">
</event>
<event time="33.9" trigger="F">
</event>
<event time="34.0" trigger="D">
</event>
<event time="34.3" trigger="D">
</event>
<event time="34.6" trigger="F">
</event>
<event time="35.0" trigger="D">
</event>
<event time="35.8" trigger="3">
</event>
<event time="35.9" trigger="P">
</event>
<event time="36.0" trigger="3">
</event>
<event time="36.2" trigger="4">
</event>
<event time="36.2" trigger="O">
</event>
<event time="36.3" trigger="P">
</event>
<event time="36.4" trigger="3">
</event>
<event time="36.5" trigger="O">
</event>
<event time="36.5" trigger="4">
</event>
<event time="36.7" trigger="P">
</event>
<event time="36.7" trigger="3">
</event>
<event time="36.9" trigger="5">
</event>
<event time="36.9" trigger="O">
</event>
<event time="37.0" trigger="P">
</event>
<event time="37.1" trigger="3">
</event>
<event time="37.2" trigger="4">
</event>
<event time="37.2" trigger="O">
</event>
<event time="37.3" trigger="P">
</event>
<event time="37.3" trigger="5">
</event>
<event time="37.3" trigger="O">
</event>
<event time="37.4" trigger="2">
</event>
<event time="37.5" trigger="P">
</event>
<event time="37.5" trigger="3">
</event>
<event time="37.5" trigger="O">
</event>
<event time="37.6" trigger="4">
</event>
<event time="37.6" trigger="P">
</event>
<event time="37.7" trigger="2">
</event>
<event time="37.7" trigger="O">
</event>
<event time="37.9" trigger="5">
</event>
<event time="37.9" trigger="P">
</event>
<event time="37.9" trigger="O">
</event>
<event time="38.0" trigger="3">
</event>
<event time="38.0" trigger="4">
</event>
<event time="38.0" trigger="P">
</event>
<event time="38.1" trigger="O">
</event>
<event time="38.2" trigger="5">
</event>
<event time="38.2" trigger="P">
</event>
<event time="38.2" trigger="3">
</event>
<event time="38.3" trigger="O">
</event>
<event time="38.3" trigger="P">
</event>
<event time="38.4" trigger="S">
</event>
<event time="38.4" trigger="O">
</event>
<event time="38.5" trigger="P">
</event>
<event time="38.5" trigger="D">
</event>
<event time="38.6" trigger="F">
</event>
<event time="38.6" trigger="O">
</event>
<event time="38.7" trigger="P">
</event>
<event time="38.8" trigger="7">
</event>
<event time="38.8" trigger="4">
</event>
<event time="39.0" trigger="9">
</event>
<event time="39.0" trigger="P">
</event>
<event time="39.1" trigger="4">
</event>
<event time="39.1" trigger="5">
</event>
<event time="39.2" trigger="O">
</event>
<event time="39.3" trigger="5">
</event>
<event time="39.4" trigger="P">
</event>
<event time="39.5" trigger="3">
</event>
<event time="39.5" trigger="2">
</event>
<event time="39.6" trigger="O">
</event>
<event time="39.7" trigger="4">
</event>
<event time="39.7" trigger="7">
</event>
<event time="39.9" trigger="8">
</event>
<event time="40.0" trigger="5">
</event>
<event time="40.1" trigger="P">
</event>
<event time="40.2" trigger="O">
</event>
<event time="40.4" trigger="6">
</event>
<event time="40.4" trigger="P">
</event>
<event time="40.6" trigger="O">
</event>
<event time="40.7" trigger="P">
</event>
<event time="40.9" trigger="O">
</event>
<event time="41.0" trigger="P">
</event>
<event time="41.0" trigger="4">
</event>
<event time="41.1" trigger="O">
</event>
<event time="41.2" trigger="P">
</event>
<event time="41.2" trigger="3">
</event>
<event time="41.5" trigger="S">
</event>
<event time="41.6" trigger="P">
</event>
<event time="41.7" trigger="D">
</event>
<event time="41.9" trigger="F">
</event>
<event time="42.0" trigger="O">
</event>
<event time="42.3" trigger="D">
</event>
<event time="42.4" trigger="P">
</event>
<event time="42.6" trigger="S">
</event>
<event time="42.7" trigger="O">
</event>
<event time="42.8" trigger="D">
</event>
<event time="43.0" trigger="P">
</event>
<event time="43.1" trigger="F">
</event>
<event time="44.1" trigger="O">
</event>
<event time="44.5" trigger="P">
</event>
<event time="44.7" trigger="O">
</event>
<event time="44.8" trigger="P">
</event>
<event time="45.0" trigger="O">
</event>
<event time="45.2" trigger="P">
</event>
<event time="45.6" trigger="R">
</event>
<event time="46.0" trigger="P">
</event>
<event time="46.3" trigger="T">
</event>
<event time="46.7" trigger="O">
</event>
<event time="47.0" trigger="Y">
</event>
<event time="47.4" trigger="P">
</event>
<event time="47.8" trigger="Y">
</event>
<event time="48.9" trigger="R">
</event>
<event time="49.3" trigger="T">
</event>
<event time="49.6" trigger="U">
</event>
<event time="50.0" trigger="R">
</event>
<event time="50.8" trigger="T">
</event>
<event time="51.1" trigger="U">
</event>
<event time="51.5" trigger="E">
</event>
<event time="51.9" trigger="T">
</event>
<event time="52.2" trigger="W">
</event>
<event time="52.8" trigger="O">
</event>
<event time="53.7" trigger="P">
</event>
<event time="54.0" trigger="S">
</event>
<event time="54.1" trigger="O">
</event>
<event time="54.4" trigger="5">
</event>
<event time="56.2" trigger="O">
</event>
<event time="56.6" trigger="D">
</event>
<event time="56.9" trigger="F">
</event>
<event time="57.3" trigger="D">
</event>
<event time="57.7" trigger="F">
</event>
<event time="58.1" trigger="D">
</event>
<event time="58.4" trigger="F">
</event>
<event time="58.8" trigger="D">
</event>
<event time="59.1" trigger="F">
</event>
<event time="60.0" trigger="P">
</event>
<event time="60.6" trigger="O">
</event>
<event time="60.7" trigger="D">
</event>
<event time="60.9" trigger="P">
</event>
<event time="61.1" trigger="F">
</event>
<event time="61.2" trigger="O">
</event>
<event time="61.4" trigger="D">
</event>
<event time="61.6" trigger="P">
</event>
<event time="61.7" trigger="D">
</event>
<event time="62.1" trigger="S">
</event>
<event time="62.5" trigger="O">
</event>
<event time="62.8" trigger="P">
</event>
<event time="63.2" trigger="O">
</event>
<event time="63.5" trigger="A">
</event>
<event time="64.0" trigger="O">
</event>
<event time="64.4" trigger="O">
</event>
<event time="64.7" trigger="P">
</event>
<event time="65.0" trigger="A">
</event>
<event time="65.4" trigger="D">
</event>
<event time="65.5" trigger="F">
</event>
<event time="65.7" trigger="9">
</event>
<event time="66.0" trigger="8">
</event>
<event time="66.1" trigger="9">
</event>
<event time="66.6" trigger="9">
</event>
<event time="67.5" trigger="K">
</event>
<event time="67.9" trigger="P">
</event>
<event time="68.3" trigger="O">
</event>
<event time="68.7" trigger="P">
</event>
<event time="69.1" trigger="O">
</event>
<event time="69.4" trigger="P">
</event>
<event time="69.8" trigger="O">
</event>
<event time="70.1" trigger="P">
</event>
<event time="70.5" trigger="Y">
</event>
<event time="70.5" trigger="T">
</event>
<event time="70.9" trigger="O">
</event>
<event time="71.2" trigger="Y">
</event>
<event time="71.6" trigger="P">
</event>
<event time="72.0" trigger="R">
</event>
<event time="72.3" trigger="O">
</event>
<event time="72.6" trigger="T">
</event>
<event time="73.0" trigger="P">
</event>
<event time="73.2" trigger="Y">
</event>
<event time="73.5" trigger="O">
</event>
<event time="73.8" trigger="T">
</event>
<event time="74.2" trigger="P">
</event>
<event time="74.5" trigger="R">
</event>
<event time="74.9" trigger="O">
</event>
<event time="75.2" trigger="Y">
</event>
<event time="75.6" trigger="G">
</event>
<event time="76.0" trigger="P">
</event>
<event time="76.3" trigger="H">
</event>
<event time="76.7" trigger="O">
</event>
<event time="77.0" trigger="F">
</event>
<event time="77.5" trigger="D">
</event>
<event time="77.8" trigger="S">
</event>
<event time="78.2" trigger="P">
</event>
<event time="78.5" trigger="O">
</event>
<event time="78.9" trigger="I">
</event>
<event time="79.3" trigger="O">
</event>
<event time="79.4" trigger="P">
</event>
<event time="79.5" trigger="O">
</event>
<event time="79.7" trigger="P">
</event>
<event time="79.7" trigger="O">
</event>
<event time="80.0" trigger="O">
</event>
<event time="80.0" trigger="I">
</event>
<event time="80.3" trigger="O">
</event>
<event time="80.3" trigger="R">
</event>
<event time="80.3" trigger="E">
</event>
<event time="80.4" trigger="P">
</event>
<event time="80.5" trigger="I">
</event>
<event time="80.6" trigger="O">
</event>
<event time="81.0" trigger="I">
</event>
<event time="81.4" trigger="O">
</event>
<event time="81.8" trigger="I">
</event>
<event time="82.1" trigger="T">
</event>
<event time="82.5" trigger="P">
</event>
<event time="82.9" trigger="Y">
</event>
<event time="83.3" trigger="P">
</event>
<event time="83.7" trigger="O">
</event>
<event time="84.0" trigger="4">
</event>
<event time="84.7" trigger="5">
</event>
<event time="85.1" trigger="4">
</event>
<event time="85.7" trigger="4">
</event>
<event time="86.1" trigger="4">
</event>
<event time="86.5" trigger="4">
</event>
<event time="86.8" trigger="P">
</event>
<event time="87.2" trigger="O">
</event>
<event time="87.3" trigger="4">
</event>
<event time="87.6" trigger="P">
</event>
<event time="87.6" trigger="4">
</event>
<event time="88.0" trigger="O">
</event>
<event time="88.0" trigger="3">
</event>
<event time="88.4" trigger="P">
</event>
<event time="88.4" trigger="4">
</event>
<event time="88.8" trigger="5">
</event>
<event time="88.8" trigger="O">
</event>
<event time="89.2" trigger="3">
</event>
<event time="89.2" trigger="P">
</event>
<event time="89.5" trigger="2">
</event>
<event time="89.5" trigger="P">
</event>
<event time="89.9" trigger="O">
</event>
<event time="89.9" trigger="6">
</event>
<event time="89.9" trigger="5">
</event>
<event time="90.3" trigger="6">
</event>
<event time="90.3" trigger="O">
</event>
<event time="90.6" trigger="7">
</event>
<event time="90.6" trigger="P">
</event>
<event time="90.9" trigger="8">
</event>
<event time="91.0" trigger="O">
</event>
<event time="91.3" trigger="P">
</event>
<event time="91.4" trigger="2">
</event>
<event time="92.1" trigger="7">
</event>
<event time="93.6" trigger="1">
</event>
<event time="94.1" trigger="2">
</event>
<event time="94.6" trigger="P">
</event>
<event time="94.9" trigger="O">
</event>
<event time="97.3" trigger="S">
</event>
<event time="98.4" trigger="D">
</event>
<event time="99.2" trigger="F">
</event>
<event time="99.9" trigger="G">
</event>
<event time="100.5" trigger="4">
</event>
<event time="100.8" trigger="T">
</event>
<event time="103.0" trigger="R">
</event>
<event time="103.7" trigger="U">
</event>
<event time="104.5" trigger="Y">
</event>
<event time="105.9" trigger="T">
</event>
<event time="106.3" trigger="Y">
</event>
<event time="106.7" trigger="T">
</event>
<event time="107.1" trigger="Y">
</event>
<event time="107.4" trigger="T">
</event>
<event time="107.8" trigger="Y">
</event>
<event time="108.2" trigger="T">
</event>
<event time="108.3" trigger="8">
</event>
<event time="108.6" trigger="T">
</event>
<event time="108.9" trigger="Y">
</event>
<event time="109.3" trigger="T">
</event>
<event time="109.7" trigger="Y">
</event>
<event time="110.0" trigger="T">
</event>
<event time="110.4" trigger="8">
</event>
<event time="110.4" trigger="7">
</event>
<event time="110.7" trigger="T">
</event>
<event time="111.1" trigger="7">
</event>
<event time="111.4" trigger="8">
</event>
<event time="111.8" trigger="R">
</event>
<event time="112.1" trigger="9">
</event>
<event time="114.7" trigger="6">
</event>
<event time="115.2" trigger="O">
</event>
<event time="116.5" trigger="J">
</event>
<event time="118.7" trigger="J">
</event>
<event time="119.2" trigger="I">
</event>
<event time="120.3" trigger="K">
</event>
<event time="121.0" trigger="I">
</event>
<event time="121.4" trigger="O">
</event>
<event time="121.4" trigger="P">
</event>
<event time="122.4" trigger="P">
</event>
<event time="123.7" trigger="P">
</event>
<event time="125.1" trigger="N">
</event>
<event time="125.1" trigger="">
</event>
<event time="125.2" trigger="B">
</event>
<event time="125.2" trigger="">
</event>
<event time="125.4" trigger="N">
</event>
<event time="125.4" trigger="">
</event>
<event time="125.5" trigger="B">
</event>
<event time="125.5" trigger="">
</event>
<event time="125.6" trigger="M">
</event>
<event time="125.7" trigger="N">
</event>
<event time="125.7" trigger="">
</event>
<event time="125.8" trigger="V">
</event>
<event time="125.8" trigger="">
</event>
<event time="125.9" trigger="N">
</event>
<event time="125.9" trigger="">
</event>
<event time="125.9" trigger="B">
</event>
<event time="125.9" trigger="">
</event>
<event time="126.1" trigger="N">
</event>
<event time="126.1" trigger="">
</event>
<event time="126.1" trigger="V">
</event>
<event time="126.2" trigger="">
</event>
<event time="126.2" trigger="B">
</event>
<event time="126.2" trigger="">
</event>
<event time="126.2" trigger="N">
</event>
<event time="126.3" trigger="">
</event>
<event time="126.4" trigger="V">
</event>
<event time="126.4" trigger="">
</event>
<event time="126.5" trigger="B">
</event>
<event time="126.5" trigger="">
</event>
<event time="126.5" trigger="N">
</event>
<event time="126.5" trigger="">
</event>
<event time="126.6" trigger="N">
</event>
<event time="126.6" trigger="">
</event>
<event time="126.7" trigger="V">
</event>
<event time="126.7" trigger="">
</event>
<event time="126.7" trigger="B">
</event>
<event time="126.7" trigger="">
</event>
<event time="126.8" trigger="N">
</event>
<event time="126.8" trigger="">
</event>
<event time="126.8" trigger="V">
</event>
<event time="126.9" trigger="">
</event>
<event time="126.9" trigger="B">
</event>
<event time="126.9" trigger="N">
</event>
<event time="126.9" trigger="">
</event>
<event time="126.9" trigger="">
</event>
<event time="127.1" trigger="V">
</event>
<event time="127.1" trigger="N">
</event>
<event time="127.1" trigger="">
</event>
<event time="127.1" trigger="">
</event>
<event time="127.1" trigger="B">
</event>
<event time="127.1" trigger="">
</event>
<event time="127.2" trigger="N">
</event>
<event time="127.2" trigger="">
</event>
<event time="127.3" trigger="V">
</event>
<event time="127.3" trigger="">
</event>
<event time="127.3" trigger="B">
</event>
<event time="127.4" trigger="">
</event>
<event time="127.4" trigger="N">
</event>
<event time="127.4" trigger="">
</event>
<event time="127.5" trigger="V">
</event>
<event time="127.5" trigger="N">
</event>
<event time="127.5" trigger="">
</event>
<event time="127.5" trigger="">
</event>
<event time="127.6" trigger="B">
</event>
<event time="127.6" trigger="">
</event>
<event time="127.6" trigger="N">
</event>
<event time="127.7" trigger="">
</event>
<event time="127.7" trigger="V">
</event>
<event time="127.7" trigger="">
</event>
<event time="127.8" trigger="B">
</event>
<event time="127.8" trigger="N">
</event>
<event time="127.8" trigger="">
</event>
<event time="127.8" trigger="">
</event>
<event time="127.9" trigger="N">
</event>
<event time="127.9" trigger="V">
</event>
<event time="127.9" trigger="">
</event>
<event time="127.9" trigger="">
</event>
<event time="128.0" trigger="B">
</event>
<event time="128.0" trigger="">
</event>
<event time="128.1" trigger="N">
</event>
<event time="128.1" trigger="">
</event>
<event time="128.2" trigger="V">
</event>
<event time="128.2" trigger="">
</event>
<event time="128.3" trigger="B">
</event>
<event time="128.3" trigger="">
</event>
<event time="128.4" trigger="N">
</event>
<event time="128.4" trigger="">
</event>
<event time="128.5" trigger="V">
</event>
<event time="128.5" trigger="">
</event>
<event time="128.5" trigger="N">
</event>
<event time="128.5" trigger="">
</event>
<event time="128.6" trigger="B">
</event>
<event time="128.6" trigger="">
</event>
<event time="128.7" trigger="N">
</event>
<event time="128.7" trigger="">
</event>
<event time="128.7" trigger="V">
</event>
<event time="128.7" trigger="">
</event>
<event time="128.8" trigger="B">
</event>
<event time="128.8" trigger="">
</event>
<event time="128.8" trigger="N">
</event>
<event time="128.9" trigger="">
</event>
<event time="128.9" trigger="V">
</event>
<event time="129.0" trigger="">
</event>
<event time="129.0" trigger="N">
</event>
<event time="129.0" trigger="">
</event>
<event time="129.0" trigger="B">
</event>
<event time="129.1" trigger="">
</event>
<event time="129.1" trigger="N">
</event>
<event time="129.1" trigger="">
</event>
<event time="129.2" trigger="V">
</event>
<event time="129.2" trigger="">
</event>
<event time="129.2" trigger="B">
</event>
<event time="129.3" trigger="">
</event>
<event time="129.3" trigger="N">
</event>
<event time="129.3" trigger="">
</event>
<event time="129.4" trigger="V">
</event>
<event time="129.4" trigger="N">
</event>
<event time="129.4" trigger="">
</event>
<event time="129.4" trigger="">
</event>
<event time="129.5" trigger="B">
</event>
<event time="129.5" trigger="">
</event>
<event time="129.6" trigger="N">
</event>
<event time="129.6" trigger="">
</event>
<event time="129.7" trigger="V">
</event>
<event time="129.7" trigger="N">
</event>
<event time="129.7" trigger="">
</event>
<event time="129.7" trigger="">
</event>
<event time="129.9" trigger="N">
</event>
<event time="129.9" trigger="B">
</event>
<event time="129.9" trigger="">
</event>
<event time="129.9" trigger="">
</event>
<event time="130.1" trigger="N">
</event>
<event time="130.1" trigger="">
</event>
<event time="130.2" trigger="V">
</event>
<event time="130.2" trigger="">
</event>
<event time="130.2" trigger="B">
</event>
<event time="130.2" trigger="">
</event>
<event time="130.4" trigger="N">
</event>
<event time="130.4" trigger="">
</event>
<event time="130.5" trigger="V">
</event>
<event time="130.5" trigger="">
</event>
<event time="130.6" trigger="B">
</event>
<event time="130.6" trigger="">
</event>
<event time="130.9" trigger="">
</event>
<load></load>
<event key="1"><wave preset="0"></wave></event>
<event key="2"><wave preset="1"></wave></event>
<event key="3"><wave preset="2"></wave></event>
<event key="4"><wave preset="3"></wave></event>
<event key="5"><wave preset="4"></wave></event>
<event key="6"><wave preset="5"></wave></event>
<event key="7"><wave preset="6"></wave></event>
<event key="8"><wave preset="7"></wave></event>
<event key="9"><wave preset="8"></wave></event>
<event key="0"><wave preset="9"></wave></event>
<event key="k"><wave preset="10"></wave></event>
<event key="v">
<draworder effect="clear" effect="wave"></draworder>
</event>
<run></run>
</demo>
<demo name="clear2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff0000ff" trailval="0.03"></clear>
<add type="particlebox" name="part"></add>
<part texture="particleorange.tga"
number="700"
speed="1"
dim="100,100,1250"
spawndim="100,100,1250"
dirmin="-1,-1,-1"
dirmax="1,1,1"
tra="0,0,0"
rot="0,0,0"
sca="0.5,0.5,1"
trainc="0,0,0"
rotinc="0.0,0,1.0"
scainc="0,0.0,0"
pdir="0,0,0.5"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<draworder effect="clear" effect="part"></draworder>
<load></load>
<run></run>
</demo>
<demo name="flash1" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="flash" name="flash1"></add>
<flash1 color="0xfffffffff"
attack="2.3"
sustain="1.0"
decay="0.3"
mode="0">
</flash1>
<draworder effect="clear" effect="flash1"></draworder>
<event time="0.0"><flash1><go></go></flash1></event>
<event time="1.0"><flash1><go></go></flash1></event>
<event time="2.0"><flash1><go></go></flash1></event>
<event time="3.0"><flash1><go></go></flash1></event>
<event time="4.0"><flash1><go></go></flash1></event>
<event time="5.0"><flash1><go></go></flash1></event>
<event time="6.0"><flash1><go></go></flash1></event>
<event time="7.0"><flash1><go></go></flash1></event>
<event time="8.0"><flash1><go></go></flash1></event>
<load></load>
<run></run>
</demo>
<demo name="wavebox1" width="640" height="480" bpp="32" fullscreen="0" showfps="0" showconfig="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0x11111111" trailval="1.0"></clear>
<add type="wavebox" name="wave"></add>
<wave texture="partblue.tga" preset="10" speed="5">
<gl restore="1">
<render active="1"
flat="0"
wire="0"
envmap="0"
linewidth="1"
color="1,1,1,1"></render>
<depth active="1"
test="1"
write="1">
</depth>
<cull active="1"
cull="0"
mode="0">
</cull>
<alpha active="1"
blend="1"
blendsrc="1"
blenddst="1"
mask="0"
maskvalue="0.5">
</alpha>
<proj active="0"
fov="46"
near="0.02"
far="800">
</proj>
<fog active="0"
on="1"
mode="0"
density="0.0"
zstart="-50.0"
zend="120.0"
color="0xff0c4ca6">
</fog>
</gl>
</wave>
<draworder effect="clear" effect="wave"></draworder>
<load></load>
<run></run>
</demo>
<demo name="flash1" width="640" height="480" bpp="32" fullscreen="0" showfps="0" showconfig="1">
<create></create>
<loadplugin file="..\fx\fxmain.dll"></loadplugin>
<loadplugin file="..\fx\fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<camera mode="create" name="bob" viewport="0.25,0.25,0.50,0.50" pos="0,0,-150"></camera>
<camera name="bob" mode="keyframe">
<key t="0.0" pos="0,0,2" rot="0,0,0" viewport="0.25,0.25,0.5,0.5"></key>
<key t="100.0" pos="0.1,0,0.5" rot="10,0,20" viewport="0.5,0.25,0.5,0.5"></key>
<key t="1000.0" pos="1.0,0,0.2" rot="90,0,90" viewport="0.5,0.25,0.5,0.5"></key>
</camera>
<camera mode="create" name="man" pos="0,0,-3" rot="0,0,45"></camera>
<camera name="man" mode="keyframe" speed="0.001">
<key t="0.0" pos="0,0,1.3" rot="0,0,0"></key>
<key t="100.0" pos="0,0,1.5" rot="0,0,180"></key>
<key t="200.0" pos="0.5,0,-1.2" rot="180,0,0"></key>
</camera>
<camera mode="create" name="raver" viewport="0.0,0.0,1.0,1.0" pos="0,0,-150"></camera>
<camera name="raver" mode="keyframe">
<key t="0.0" pos="0,0,2" rot="0,0,0"></key>
<key t="100.0" pos="0,0,4" rot="0,0,180"></key>
<key t="200.0" pos="0.0,0,2" rot="0,0,0"></key>
<key t="300.0" pos="0,0,4" rot="0,0,180"></key>
<key t="400.0" pos="0.0,0,2" rot="0,0,0"></key>
</camera>
<add type="picture" name="pic"></add>
<pic filename="drfreak.tga" camera="bob"></pic>
<add type="picture" name="pic2"></add>
<pic2 filename="drfreak.tga" camera="raver"></pic2>
<add type="picture" name="pic3"></add>
<pic3 filename="drfreak.tga"></pic3>
<add type="md2play" name="md2"></add>
<md2 filename="scenes\tris.md2" speed="0.1"></md2>
<md2 camera="man"></md2>
<draworder effect="clear" effect="pic3" effect="pic2" effect="pic" effect="md2" effect="md3"></draworder>
<load></load>
<run></run>
</demo>
<demo name="clear2" width="640" height="480" bpp="32" fullscreen="0" showfps="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000" zbuf="1" cbuf="1"></clear>
<add type="tunnel" name="tunnel"></add>
<add type="particlebox" name="part"></add>
<part texture="particleorange.tga"
number="1700"
speed="0.1"
dim="100,100,125"
spawndim="100,100,125"
dirmin="-1,-1,-1"
dirmax="1,1,1"
tra="0,0,0"
rot="0,0,0"
sca="1,1,1"
trainc="0,0,0"
rotinc="0.0,0,1.0"
scainc="0,0.0,0"
pdir="0,0,0.5"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<add type="particlebox" name="part2"></add>
<part2 texture="particleblue.tga"
number="1700"
speed="0.1"
dim="100,100,125"
spawndim="100,100,125"
dirmin="-1,-1,-1"
dirmax="1,1,1"
tra="0,0,0"
rot="0,0,0"
sca="1,1,1"
trainc="0,0,0"
rotinc="0.0,0,1.0"
scainc="0,0.0,0"
pdir="0,0,0.5"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part2>
<add type="gridmap" name="bright"></add>
<bright preset="8"></bright>
<add type="gridmap" name="grid"></add>
<grid preset="13"></grid>
<add type="picture" name="pic1"></add>
<pic1 filename="bg1.tga">
<gl restore="1">
<alpha active="1"
blend="0"
blendsrc="1"
blenddst="1"
mask="1"
maskvalue="0.5">
</alpha>
</gl>
</pic1>
<add type="particlebox" name="bobs"></add>
<bobs number="100"
dim="150,150,150"
spawndim="10,10,10"
sca="1,1,1"
lifespan="100"
prot="0.001,0.002,0.003"
color="0xffffffff"
src="1"
dst="1">
</bobs>
<add type="particlebox" name="part3"></add>
<part3
number="100"
speed="1"
dim="50,50,50"
spawndim="30,30,30"
dirmin="0,0,0"
dirmax="0,0,0"
tra="0,0,0"
rot="45,45,45"
sca="1,1,13"
trainc="0,0,0"
rotinc="0.3,0.1,0.2"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0,0.0"
color="0xff333344"
camera="0"
src="9"
dst="3">
</part3>
<draworder effect="clear" effect="part" effect="part3" effect="grid"></draworder>
<draworder effect="clear" effect="pic1" effect="grid"></draworder>
<draworder effect="clear" effect="part2" effect="part" effect="grid" effect="bright"></draworder>
<load></load>
<run></run>
</demo>
<demo name="picture1" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="picture" name="pic1"></add>
<pic1 filename="bg1.tga"></pic1>
<draworder effect="clear" effect="pic1"></draworder>
<load></load>
<run></run>
</demo>
<demo name="video2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="musicplay" name="track1"></add>
<track1 filename="intro.xm" preset="-1"></track1>
<draworder effect="clear" effect="track1"></draworder>
<load></load>
<track1><play></play></track1>
<track1 echo="1" flange="1" rotate="1"></track1>
<run></run>
</demo>
<demo name="sync1" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="musicplay" name="snd1"></add>
<snd1 filename="arsa.mod"></snd1>
<add type="flash" name="flash1"></add>
<flash1 color="0xffffffff" mode="0" attack="1" decay="1" sustain="1.0"></flash1>
<event key="z">
<flash1><go></go></flash1>
</event>
<draworder effect="clear" effect="flash1"></draworder>
<load></load>
<snd1><play></play></snd1>
<run></run>
</demo>
<demo name="video1" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="videoplay" name="vid"></add>
<vid filename="data/videos/video1.avi"></vid>
<draworder effect="clear" effect="vid"></draworder>
<load></load>
<run></run>
</demo>
<demo name="video2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000" trailval="1.034"></clear>
<add type="videoplay" name="vid"></add>
<vid filename="data/videos/mehe.avi" speed="0.5" wrapmode="1" draw="0"></vid>
<add type="dogtail" name="dog"></add>
<dog speed="0.29" num="3">
<gl restore="0">
<render active="1"
flat="0"
wire="0"
envmap="1"
linewidth="1"
color="10.3,10.3,10.3,10.3"></render>
<depth active="0"
test="1"
write="1">
</depth>
<cull active="1"
cull="1"
mode="0">
</cull>
<alpha active="1"
blend="1"
blendsrc="1"
blenddst="1"
mask="0"
maskvalue="0.5">
</alpha>
<proj active="1"
fov="135"
near="0.2"
far="600">
</proj>
<fog active="0"
on="1"
mode="0"
density="0.0"
zstart="10.0"
zend="110.0"
color="0xff000000">
</fog>
</gl>
</dog>
<add type="particlebox" name="part"></add>
<part number="100"
speed="0.01"
dim="30,30,150.130"
spawndim="30,30,150.130"
dirmin="-0.1,-0.1,0"
dirmax="0.1,0.1,0"
tra="0,0,0"
rot="0,0,0"
sca="2,2,1"
trainc="0,0,0"
rotinc="0.0,0.0,12.42"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<add type="skybox" name="box"></add>
<box>
<gl>
<proj active="1"
fov="135"
near="0.2"
far="600">
</proj>
<alpha active="1"
blend="1"
blendsrc="1"
blenddst="1"
mask="0"
maskvalue="0.5">
</alpha>
</gl>
</box>
<draworder effect="clear" effect="vid"></draworder>
<draworder effect="clear" effect="vid"></draworder>
<event time="0.1">
<draworder effect="clear" effect="vid" effect="box"></draworder>
</event>
<event key="Q">
<vid toggledirection></vid>
</event>
<event key="Z">
<draworder effect="clear" effect="vid" effect="dog"></draworder>
</event>
<event key="X">
<draworder effect="clear" effect="vid" effect="box"></draworder>
</event>
<event key="C">
<draworder effect="clear" effect="vid" effect="part"></draworder>
</event>
<load></load>
<run></run>
</demo>
<demo name="picture3" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="picture" name="pic1"></add>
<pic1 filename="bg1.tga">
<gl restore="1">
<alpha active="1"
blend="0"
blendsrc="1"
blenddst="1"
mask="1"
maskvalue="0.5">
</alpha>
</gl>
</pic1>
<add type="particlebox" name="bobs"></add>
<bobs number="100"
dim="150,150,150"
spawndim="10,10,10"
sca="1,1,1"
lifespan="100"
prot="0.001,0.002,0.003"
color="0xffffffff"
src="1"
dst="1">
</bobs>
<draworder effect="clear" effect="bobs" effect="pic1"></draworder>
<load></load>
<run></run>
</demo>
<demo name="picture4" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="picture" name="pic1"></add>
<pic1 filename="bg1.tga">
<gl restore="1">
<alpha active="1"
blend="0"
blendsrc="1"
blenddst="1"
mask="1"
maskvalue="0.5">
</alpha>
</gl>
</pic1>
<add type="particlebox" name="bobs"></add>
<bobs number="100"
dim="150,150,150"
spawndim="10,10,10"
sca="1,1,1"
lifespan="100"
prot="0.001,0.002,0.003"
color="0xffffffff"
src="1"
dst="1">
</bobs>
<add type="particlebox" name="part"></add>
<part
number="100"
speed="1"
dim="50,50,50"
spawndim="30,30,30"
dirmin="0,0,0"
dirmax="0,0,0"
tra="0,0,0"
rot="45,45,45"
sca="1,1,13"
trainc="0,0,0"
rotinc="0.3,0.1,0.2"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0,0.0"
color="0xff333344"
camera="0"
src="9"
dst="3">
</part>
<draworder effect="clear" effect="bobs" effect="pic1" effect="part"></draworder>
<load></load>
<run></run>
</demo>
<demo name="clear1" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xffff0000"></clear>
<draworder effect="clear"></draworder>
<load></load>
<run></run>
</demo>
<demo name="video2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="musicplay" name="track1"></add>
<track1 filename="intro.xm"></track1>
<draworder effect="clear" effect="track1"></draworder>
<load></load>
<track1><play></play></track1>
<run></run>
</demo>
<demo name="clear2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="particlebox" name="part"></add>
<part texture="snow.tga"
number="700"
speed="0.5"
dim="100,100,200"
spawndim="100,100,200"
dirmin="-0.03,-0.16,-0.04"
dirmax="0.04,-0.13,0.03"
tra="0,0,0"
rot="0,0,0"
sca="0.5,0.5,1"
trainc="0,0,0"
rotinc="0.0,0,0.0"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0008,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<add type="particlebox" name="part2"></add>
<part2 texture="snow2.tga"
number="700"
speed="0.5"
dim="100,100,200"
spawndim="100,100,200"
dirmin="-0.04,-0.05,-0.05"
dirmax="0.05,-0.3,0.04"
tra="0,0,0"
rot="0,0,0"
sca="0.4,0.4,1"
trainc="0,0,0"
rotinc="0.0,0,0.0"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,-0.0008,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part2>
<draworder effect="clear" effect="part" effect="part2"></draworder>
<load></load>
<run></run>
</demo>
<demo name="clear2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000" trailval="0.1"></clear>
<add type="particlebox" name="part"></add>
<part texture="particleorange.tga"
number="700"
speed="0.5"
dim="100,100,1250"
spawndim="100,100,1250"
dirmin="-1,-1,-1"
dirmax="1,1,1"
tra="0,0,0"
rot="0,0,0"
sca="1,1,1"
trainc="0,0,0"
rotinc="0.0,0,1.0"
scainc="0,0.0,0"
pdir="0,0,0.5"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<draworder effect="clear" effect="part"></draworder>
<load></load>
<run></run>
</demo>
<demo name="webcam" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<loadplugin file="../fx/fx_webcam.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="webcam" name="cam"></add>
<add type="particlebox" name="bobs"></add>
<bobs
number="100"
speed="0.1"
dim="50,50,50"
spawndim="50,50,50"
sca="2,2,1"
lifespan="300"
prot="0.001,0.002,0.003"
rotinc="0.3,0.1,0.2"
color="0xffffffff"
src="1"
dst="0">
</bobs>
<add type="skybox" name="skybox"></add>
<draworder effect="cam" effect="clear" effect="skybox" effect="bobs"></draworder>
<load></load>
<run></run>
</demo>
<demo name="avi writer" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_mayaplay.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="aviwriter" name="avi"></add>
<avi filename="out.avi"></avi>
<add type="mayaplay" name="bong"></add>
<bong filename="tree.zen" speed="1">
<gl restore="1">
<render active="1"
flat="0"
wire="0"
envmap="0"
linewidth="1"
color="1,1,1,1"></render>
<depth active="1"
test="1"
write="1">
</depth>
<cull active="1"
cull="0"
mode="0">
</cull>
<alpha active="0"
blend="0"
blendsrc="1"
blenddst="2"
mask="0"
maskvalue="0.5">
</alpha>
<proj active="1"
fov="95"
near="0.02"
far="800">
</proj>
<fog active="0"
on="1"
mode="0"
density="0.0"
zstart="-100.0"
zend="120.0"
color="0xffa64c0c">
</fog>
</gl>
</bong>
<draworder effect="clear" effect="bong" effect="avi"></draworder>
<load></load>
<bong camera="cameraShape1" frame="0" play="1" loopmin="0" loopmax="400"></bong>
<run></run>
</demo>
<demo name="particlebox3" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="particlebox" name="part"></add>
<part texture="particleblue.tga"
number="100"
speed="0.02"
dim="10,10,30"
spawndim="10,10,30"
dirmin="-1,-1,0"
dirmax="1,1,0"
tra="0,0,0"
rot="0,0,0"
sca="0.1,10,1"
trainc="0,0,0"
rotinc="0.0,0,-10.0"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<add type="particlebox" name="part2"></add>
<part2 texture="particleorange.tga"
number="100"
speed="0.02"
dim="10,10,30"
spawndim="10,10,30"
dirmin="-1,-1,0"
dirmax="1,1,0"
tra="0,0,0"
rot="0,0,0"
sca="10,0.1,1"
trainc="0,0,0"
rotinc="0.0,0,10.0"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part2>
<draworder effect="clear" effect="part" effect="part2"></draworder>
<load></load>
<run></run>
</demo>
<demo name="particlebox1" width="640" height="480" bpp="32" fullscreen="0" showfps="1">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="particlebox" name="part"></add>
<part texture="particleblue.tga"
number="700"
speed="1"
dim="100,50,250"
spawndim="100,50,250"
dirmin="0,0,0"
dirmax="0,0,0"
tra="0,0,0"
rot="0,0,0"
sca="1,1,1"
trainc="0,0,0"
rotinc="0.0,0,0.0"
scainc="0,0.0,0"
pdir="0.1,0,0.0"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<draworder effect="clear" effect="part"></draworder>
<load></load>
<run></run>
</demo>
<demo name="animated gif" width="640" height="480" bpp="32" fullscreen="0" showfps="0" >
<create/>
<loadplugin file="fx/fxmain.dll"/>
<loadplugin file="fx/fx_rawhed.dll"/>
<add type="clear" name="clear"/>
<clear color="0xff000000"/>
<camera mode="create" name="bob" speed="1.0" viewport="0.25,0.25,0.50,0.50" pos="0,0,-150"></camera>
<camera name="bob" mode="keyframe">
<key t="0.0" pos="0,0,2" rot="0,0,0" viewport="0.25,0.25,0.5,0.5"></key>
<key t="100.0" pos="0.1,0,0.5" rot="10,0,20" viewport="0.5,0.25,0.5,0.5"></key>
<key t="1000.0" pos="1.0,0,0.2" rot="90,0,90" viewport="0.5,0.25,0.5,0.5"></key>
</camera>
<camera mode="create" name="bob2" speed="1.0" viewport="0.25,0.25,0.50,0.50" pos="0,0,2" loopMode="1" loopstart="0" loopend="700"></camera>
<camera name="bob2" mode="keyframe">
<key t="0.0" pos="0.0,0.0,0.0"></key>
<key t="50.0" pos="0.0,0.0,2.0"></key>
<key t="75.0" pos="0.5,0.5,2.0"></key>
<key t="100.0" pos="0.1,0.0,2.0"></key>
<key t="200.0" pos="0.7,0.0,2.0"></key>
<key t="300.0" pos="-0.7,0.0,2.0"></key>
<key t="400.0" pos="0.0,-0.5,2.0"></key>
<key t="500.0" pos="-0.5,-0.5,2.0"></key>
<key t="600.0" pos="-0.5,0.5,2.0"></key>
<key t="700.0" pos="0.0,0.0,2.0"></key>
</camera>
<camera mode="create" name="raver" speed="0.5" fov="45" viewport="0.0,0.0,1.0,1.0" pos="0,0,-150"></camera>
<camera name="raver" mode="keyframe">
<key t="0.0" pos="0,0,1" rot="0,0,0"></key>
<key t="100.0" pos="0,0,1" rot="0,0,180"></key>
<key t="200.0" pos="0,0,1" rot="0,0,0"></key>
<key t="300.0" pos="0,0,1" rot="0,0,-180"></key>
<key t="400.0" pos="0,0,1" rot="0,0,0"></key>
</camera>
<add type="gifplay" name="plasma" />
<plasma filename="plasma.gif" speed="0.4">
<gl>
<depth active="1"
test="0"
write="0">
</depth>
<alpha active="1"
blend="1"
blendsrc="4"
blenddst="5"
mask="1"
maskvalue="0.5">
</alpha>
</gl>
</plasma>
<add type="gifplay" name="go" />
<go filename="explode.gif" speed="0.4">
<gl>
<depth active="1"
test="0"
write="0">
</depth>
<alpha active="1"
blend="1"
blendsrc="1"
blenddst="1"
mask="1"
maskvalue="0.5">
</alpha>
</gl>
</go>
<add type="gifplay" name="moo" />
<moo filename="scissors.gif" camera="bob" speed="0.1">
<gl>
<depth active="1"
test="0"
write="0">
</depth>
<alpha active="1"
blend="1"
blendsrc="4"
blenddst="5"
mask="1"
maskvalue="0.5">
</alpha>
</gl>
</moo>
<add type="gifplay" name="boo" />
<boo filename="animcow.gif" camera="bob2" speed="0.035">
<gl>
<depth active="1"
test="0"
write="0">
</depth>
<alpha active="1"
blend="1"
blendsrc="4"
blenddst="5"
mask="1"
maskvalue="0.5">
</alpha>
</gl>
</boo>
<draworder effect="clear" effect="plasma" effect="moo" effect="boo" effect="go"/>
<load/>
<run/>
</demo>
<demo name="particlebox2" width="640" height="480" bpp="32" fullscreen="0">
<create></create>
<loadplugin file="../fx/fxmain.dll"></loadplugin>
<loadplugin file="../fx/fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="particlebox" name="part"></add>
<part texture="particleblue.tga"
number="100"
speed="0.02"
dim="10,10,30"
spawndim="10,10,30"
dirmin="-1,-1,0"
dirmax="1,1,0"
tra="0,0,0"
rot="0,0,0"
sca="3,1,1"
trainc="0,0,0"
rotinc="0.0,0,0.0"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part>
<add type="particlebox" name="part2"></add>
<part2 texture="particleorange.tga"
number="100"
speed="0.02"
dim="10,10,30"
spawndim="10,10,30"
dirmin="-1,-1,0"
dirmax="1,1,0"
tra="0,0,0"
rot="0,0,0"
sca="3,1,1"
trainc="0,0,0"
rotinc="0.0,0,0.0"
scainc="0,0.0,0"
pdir="0,0,0.0"
prot="0,0.0,0.0"
color="0xffffffff"
camera="0"
src="1"
dst="1">
</part2>
<draworder effect="clear" effect="part" effect="part2"></draworder>
<load></load>
<run></run>
</demo>
<demo name="animated gif" width="640" height="480" bpp="32" fullscreen="0" showfps="0" >
<create/>
<loadplugin file="../fx/fxmain.dll"/>
<loadplugin file="../fx/fx_rawhed.dll"/>
<add type="clear" name="clear"/>
<clear color="0xff000000"/>
<add type="gifplay" name="boo" />
<boo filename="animcow.gif" speed="0.035">
<gl>
<depth active="1"
test="0"
write="0">
</depth>
<alpha active="1"
blend="1"
blendsrc="4"
blenddst="5"
mask="1"
maskvalue="0.5">
</alpha>
</gl>
</boo>
<draworder effect="clear" effect="boo"/>
<load/>
<run/>
</demo><demo name="picture1" width="640" height="480" bpp="32" fullscreen="0" showfps="0">
<create></create>
<loadplugin file="..\..\fx\fxmain.dll"></loadplugin>
<loadplugin file="..\..\fx\fx_mayaplay.dll"></loadplugin>
<loadplugin file="..\..\fx\fx_rawhed.dll"></loadplugin>
<add type="clear" name="clear"></add>
<clear color="0xff000000"></clear>
<add type="mayaplay" name="factory"></add>
<factory filename="cube.zen" speed="0.4" frame="0">
</factory>
<add type="mayaplay" name="form1"></add>
<form1 filename="form1.zen" loopmax="80">
</form1>
<add type="mayaplay" name="form2"></add>
<form2 filename="form2.zen" loopmax="80">
</form2>
<add type="mayaplay" name="form3"></add>
<form3 filename="form3.zen" loopmax="80">
</form3>
<add type="mayaplay" name="logo"></add>
<logo filename="logo.zen" loopmax="50">
</logo>
<add type="mayaplay" name="bongs"></add>
<bongs filename="bongs.zen" loopmax="50">
</bongs>
<add type="mayaplay" name="tree"></add>
<tree filename="tree.zen" loopmin="0" loopmax="50"><play></play>
</tree>
<add type="mayaplay" name="dog"></add>
<dog filename="dog.zen" loopmin="1000" loopmax="1020">
</dog>
<add type="mayaplay" name="microbe"></add>
<microbe filename="microbe.zen" loopmin="0" loopmax="200">
</microbe>
<add type="mayaplay" name="land"></add>
<land filename="land.zen" loopmin="0" loopmax="400">
</land>
<add type="gridmap" name="grid"></add>
<grid preset="11"></grid>
<add type="gridmap" name="grid2"></add>
<grid2 preset="12"></grid2>
<add type="gridmap" name="grid3"></add>
<grid3 preset="13"></grid3>
<add type="gridmap" name="grid4"></add>
<grid4 preset="14"></grid4>
<draworder effect="clear" effect="factory" effect="grid"></draworder>
<event key="1">
<draworder effect="clear" effect="land" effect="Grid2"></draworder>
</event>
<event key="2">
<draworder effect="clear" effect="microbe" effect="grid4"></draworder>
</event>
<event key="3">
<draworder effect="clear" effect="land" effect="Grid3"></draworder>
</event>
<event key="4">
<draworder effect="clear" effect="tree" effect="Grid3"></draworder>
</event>
<event key="5">
<draworder effect="clear" effect="logo" effect="Grid"></draworder>
</event>
<event key="6">
<draworder effect="clear" effect="form2" effect="grid"></draworder>
</event>
<event key="7">
<draworder effect="clear" effect="factory" effect="grid"></draworder>
<factory camera="cameraShape1" speed="-1" loopMin="0" loopMax="400"></factory>
</event>
<event key="8">
<draworder effect="clear" effect="factory"></draworder>
<factory camera="cameraShape2" speed="-1" loopMin="0" loopMax="400"></factory>
</event>
<load></load>
<factory camera="cameraShape1" speed="-1" loopMin="0" loopMax="400"></factory>
<land camera="cameraShape1"></land>
<microbe camera="cameraShape1"></microbe>
<dog camera="cameraShape1"></dog>
<tree camera="cameraShape1" loopMin="0" loopMax="200"></tree>
<bongs camera="cameraShape1" loopMin="0" loopMax="50"></bongs>
<logo camera="camera01Shape" loopMin="0" loopMax="50"></logo>
<form1 camera="camera01Shape" loopMin="0" loopMax="80"></form1>
<form2 camera="cameraShape1" loopMin="0" loopMax="80"></form2>
<form3 camera="cameraShape1" loopMin="0" loopMax="80"></form3>
<run></run>
</demo>