00001
00009 #ifndef __THE_STAGE__
00010 #define __THE_STAGE__
00011
00012 #include "puppet.h"
00013
00014 #ifdef __ENGINE_LITHTECH__
00015
00016 #include <ltengineobjectsclient.h>
00017
00018 #include "shared_types.h"
00019 #endif
00020
00021
00022
00023
00024
00033 #define INITIAL_PUPPETS 16
00034
00035
00036
00037
00038
00045 class TheStage
00046 {
00047 private:
00054 uint16 maximumPuppets;
00058 uint16 numPuppets;
00066 PuppetPtr *puppets;
00067 public:
00074 TheStage( void );
00083 TheStage( string &filename );
00084
00085 \brief Creates new puppet.
00086 \param puppetFilename, the path to the apprpriate .vpm file.
00087 \return an error code reporting whether the operation met with success or not.
00088
00089 This function checks to see if there's room for a new puppet, then uses the
00090 passed in XML file to do it. It used default position, scale, and orientation
00091 vectors: 0,0,0-1,1,1-0,0,0.
00092 */
00093
00105 RESULT_TYPE DestroyPuppet( uint16 whichOne );
00115 void DisperseAction( uint16 object, uint16 joint, float value );
00124 void DisperseKeyframeAnimation( uint16 object, uint16 animation );
00133 PuppetPtr GetPuppet( uint16 object );
00140 void UpdateTick( void );
00141 };
00142
00143
00144
00145
00146
00147 extern TheStage *gStage;
00148
00149 #endif