Mostly spelling stuff. Only real code change is that Irrlicht has by now a function to fill images, so no more extra code for that needed. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6310 dfc29bdd-3216-0410-991c-e03cc46cb475
		
			
				
	
	
		
			150 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*!
 | |
| 	Model Factory.
 | |
| 	create the additional scenenodes for ( bullets, health... ) 
 | |
| 
 | |
| 	Defines the Entities for Quake3
 | |
| */
 | |
| #ifndef __QUAKE3_FACTORY__H_INCLUDED__
 | |
| #define __QUAKE3_FACTORY__H_INCLUDED__
 | |
| 
 | |
| using namespace irr;
 | |
| using namespace scene;
 | |
| using namespace gui;
 | |
| using namespace video;
 | |
| using namespace core;
 | |
| using namespace quake3;
 | |
| using namespace io;
 | |
| 
 | |
| 
 | |
| 
 | |
| //! Defines to which group the entities belong
 | |
| enum eItemGroup
 | |
| {
 | |
| 	WEAPON,
 | |
| 	AMMO,
 | |
| 	ARMOR,
 | |
| 	HEALTH,
 | |
| 	POWERUP
 | |
| };
 | |
| 
 | |
| //! define a supgroup for the item. for e.q the Weapons
 | |
| enum eItemSubGroup
 | |
| {
 | |
| 	SUB_NONE = 0,
 | |
| 	GAUNTLET,
 | |
| 	MACHINEGUN,
 | |
| 	SHOTGUN,
 | |
| 	GRENADE_LAUNCHER,
 | |
| 	ROCKET_LAUNCHER,
 | |
| 	LIGHTNING,
 | |
| 	RAILGUN,
 | |
| 	PLASMAGUN,
 | |
| 	BFG,
 | |
| 	GRAPPLING_HOOK,
 | |
| 	NAILGUN,
 | |
| 	PROX_LAUNCHER,
 | |
| 	CHAINGUN,
 | |
| };
 | |
| 
 | |
| //! apply a special effect to the shader
 | |
| enum eItemSpecialEffect
 | |
| {
 | |
| 	SPECIAL_SFX_NONE		= 0,
 | |
| 	SPECIAL_SFX_ROTATE		= 1,
 | |
| 	SPECIAL_SFX_BOUNCE		= 2,
 | |
| 	SPECIAL_SFX_ROTATE_1	= 4,
 | |
| };
 | |
| 
 | |
| // a list for defining a model
 | |
| struct SItemElement
 | |
| {
 | |
| 	const c8 *key;
 | |
| 	const c8 *model[2];
 | |
| 	const c8 *sound;
 | |
| 	const c8 *icon;
 | |
| 	const c8 *pickup;
 | |
| 	s32 value;
 | |
| 	eItemGroup group;
 | |
| 	eItemSubGroup sub;
 | |
| 	u32 special;
 | |
| };
 | |
| 
 | |
| 
 | |
| //! Get's an entity based on it's key
 | |
| const SItemElement * getItemElement ( const stringc& key );
 | |
| 
 | |
| /*!
 | |
| 	Quake3 Model Factory.
 | |
| 	Takes the mesh buffers and creates scenenodes for their associated shaders
 | |
| */
 | |
| void Q3ShaderFactory (	Q3LevelLoadParameter &loadParam,
 | |
| 						IrrlichtDevice *device, 
 | |
| 						IQ3LevelMesh* mesh, 
 | |
| 						eQ3MeshIndex meshIndex,
 | |
| 						ISceneNode *parent,
 | |
| 						IMetaTriangleSelector *meta,
 | |
| 						bool showShaderName 
 | |
| 					);
 | |
| 
 | |
| 
 | |
| /*!
 | |
| 	Creates Model based on the entity list
 | |
| */
 | |
| void Q3ModelFactory (	Q3LevelLoadParameter &loadParam,
 | |
| 						IrrlichtDevice *device, 
 | |
| 						IQ3LevelMesh* masterMesh, 
 | |
| 						ISceneNode *parent,
 | |
| 						bool showShaderName
 | |
| 					);
 | |
| 
 | |
| /*!
 | |
| 	so we need a good starting Position in the level.
 | |
| 	we can ask the Quake3 Loader for all entities with class_name "info_player_deathmatch"
 | |
| */
 | |
| s32 Q3StartPosition (	IQ3LevelMesh* mesh,
 | |
| 						ICameraSceneNode* camera,
 | |
| 						s32 startposIndex,
 | |
| 						const vector3df &translation
 | |
| 					);
 | |
| /*!
 | |
| 	gets a accumulated force on a given surface
 | |
| */
 | |
| vector3df getGravity ( const c8 * surface );
 | |
| 
 | |
| 
 | |
| /*
 | |
| 	Dynamically load the Irrlicht Library
 | |
| */
 | |
| funcptr_createDevice load_createDevice ( const c8 * filename);
 | |
| funcptr_createDeviceEx load_createDeviceEx ( const c8 * filename);
 | |
| 
 | |
| 
 | |
| //! Macro for save Dropping an Element
 | |
| #define dropElement(x)	if (x) { x->remove(); x = 0; }
 | |
| 
 | |
| 
 | |
| /*
 | |
| 	get the current collision response camera animator
 | |
| */
 | |
| ISceneNodeAnimatorCollisionResponse* camCollisionResponse( IrrlichtDevice * device );
 | |
| 
 | |
| //! internal animation
 | |
| enum eTimeFireFlag
 | |
| {
 | |
| 	FIRED = 1,
 | |
| };
 | |
| 
 | |
| struct TimeFire
 | |
| {
 | |
| 	u32 flags;
 | |
| 	u32 next;
 | |
| 	u32 delta;
 | |
| };
 | |
| 
 | |
| void setTimeFire ( TimeFire *t, u32 delta, u32 flags = 0 );
 | |
| void checkTimeFire ( TimeFire *t, u32 listSize, u32 now );
 | |
| 
 | |
| #endif // __QUAKE3_FACTORY__H_INCLUDED__
 | |
| 
 | |
| 
 |