3
create the additional scenenodes for ( bullets, health... )
5
Defines the Entities for Quake3
7
#ifndef __QUAKE3_FACTORY__H_INCLUDED__
8
#define __QUAKE3_FACTORY__H_INCLUDED__
14
using namespace scene;
16
using namespace video;
18
using namespace quake3;
23
//! Defines to which group the entities belong
33
//! define a supgroup for the item. for e.q the Weapons
52
//! aplly a special effect to the shader
53
enum eItemSpecialEffect
56
SPECIAL_SFX_ROTATE = 1,
57
SPECIAL_SFX_BOUNCE = 2,
58
SPECIAL_SFX_ROTATE_1 = 4,
61
// a List for defining a model
76
//! Get's an entity based on it's key
77
const SItemElement * getItemElement ( const stringc& key );
81
Takes the mesh buffers and creates scenenodes for their associated shaders
83
void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam,
84
IrrlichtDevice *device,
86
eQ3MeshIndex meshIndex,
88
IMetaTriangleSelector *meta,
94
Creates Model based on the entity list
96
void Q3ModelFactory ( Q3LevelLoadParameter &loadParam,
97
IrrlichtDevice *device,
98
IQ3LevelMesh* masterMesh,
104
so we need a good starting Position in the level.
105
we can ask the Quake3 Loader for all entities with class_name "info_player_deathmatch"
107
s32 Q3StartPosition ( IQ3LevelMesh* mesh,
108
ICameraSceneNode* camera,
110
const vector3df &translation
113
gets a accumulated force on a given surface
115
vector3df getGravity ( const c8 * surface );
119
Dynamically load the Irrlicht Library
121
funcptr_createDevice load_createDevice ( const c8 * filename);
122
funcptr_createDeviceEx load_createDeviceEx ( const c8 * filename);
125
//! Macro for save Dropping an Element
126
#define dropElement(x) if (x) { x->remove(); x = 0; }
130
get the current collision respone camera animator
132
ISceneNodeAnimatorCollisionResponse* camCollisionResponse( IrrlichtDevice * device );
134
//! internal Animation
147
void setTimeFire ( TimeFire *t, u32 delta, u32 flags = 0 );
148
void checkTimeFire ( TimeFire *t, u32 listSize, u32 now );
150
#endif // __QUAKE3_FACTORY__H_INCLUDED__