forked from Mirrorlandia_minetest/irrlicht
Minor cleanup and comment fixes in example 21
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
This commit is contained in:
parent
3035e27e67
commit
8254c0848c
@ -3,13 +3,13 @@
|
|||||||
This tutorial shows how to load different Quake 3 maps.
|
This tutorial shows how to load different Quake 3 maps.
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
- Load BSP Archives at Runtime from the menu
|
- Load BSP archives at runtime from the menu
|
||||||
- Load a Map from the menu. Showing with Screenshot
|
- Load a map from the menu. Showing with screenshot
|
||||||
- Set the VideoDriver at runtime from menu
|
- Set the VideoDriver at runtime from menu
|
||||||
- Adjust GammaLevel at runtime
|
- Adjust GammaLevel at runtime
|
||||||
- Create SceneNodes for the Shaders
|
- Create SceneNodes for the shaders
|
||||||
- Load EntityList and create Entity SceneNodes
|
- Load EntityList and create entity SceneNodes
|
||||||
- Create Players with Weapons and with Collision Response
|
- Create players with weapons and with collision response
|
||||||
- Play music
|
- Play music
|
||||||
|
|
||||||
You can download the Quake III Arena demo ( copyright id software )
|
You can download the Quake III Arena demo ( copyright id software )
|
||||||
@ -26,7 +26,7 @@ Copyright 2006-2011 Burningwater, Thomas Alten
|
|||||||
#include "sound.h"
|
#include "sound.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Game Data is used to hold Data which is needed to drive the game
|
GameData is used to hold data which is needed to drive the game
|
||||||
*/
|
*/
|
||||||
struct GameData
|
struct GameData
|
||||||
{
|
{
|
||||||
@ -100,7 +100,7 @@ void GameData::setDefault ()
|
|||||||
loadParam.mergeShaderBuffer = 1; // merge meshbuffers with same material
|
loadParam.mergeShaderBuffer = 1; // merge meshbuffers with same material
|
||||||
loadParam.cleanUnResolvedMeshes = 1; // should unresolved meshes be cleaned. otherwise blue texture
|
loadParam.cleanUnResolvedMeshes = 1; // should unresolved meshes be cleaned. otherwise blue texture
|
||||||
loadParam.loadAllShaders = 1; // load all scripts in the script directory
|
loadParam.loadAllShaders = 1; // load all scripts in the script directory
|
||||||
loadParam.loadSkyShader = 0; // load sky Shader
|
loadParam.loadSkyShader = 0; // load sky shader
|
||||||
loadParam.alpharef = 1;
|
loadParam.alpharef = 1;
|
||||||
|
|
||||||
sound = 0;
|
sound = 0;
|
||||||
@ -168,18 +168,18 @@ s32 GameData::load ( const path &filename )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Store the current game State in a quake3 configuration file
|
Store the current game state in a quake3 configuration file
|
||||||
*/
|
*/
|
||||||
s32 GameData::save ( const path &filename )
|
s32 GameData::save ( const path &filename )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0; // TODO: Anyone knows why it just returns?
|
||||||
if (!Device)
|
if (!Device)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
c8 buf[128];
|
c8 buf[128];
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
// Store current Archive for restart
|
// Store current archive for restart
|
||||||
CurrentArchiveList.clear();
|
CurrentArchiveList.clear();
|
||||||
IFileSystem *fs = Device->getFileSystem();
|
IFileSystem *fs = Device->getFileSystem();
|
||||||
for ( i = 0; i != fs->getFileArchiveCount(); ++i )
|
for ( i = 0; i != fs->getFileArchiveCount(); ++i )
|
||||||
@ -187,7 +187,7 @@ s32 GameData::save ( const path &filename )
|
|||||||
CurrentArchiveList.push_back ( fs->getFileArchive(i)->getFileList()->getPath() );
|
CurrentArchiveList.push_back ( fs->getFileArchive(i)->getFileList()->getPath() );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store Player Position and Rotation
|
// Store player position and rotation
|
||||||
ICameraSceneNode * camera = Device->getSceneManager()->getActiveCamera ();
|
ICameraSceneNode * camera = Device->getSceneManager()->getActiveCamera ();
|
||||||
if ( camera )
|
if ( camera )
|
||||||
{
|
{
|
||||||
@ -279,7 +279,7 @@ void Q3Player::create ( IrrlichtDevice *device, IQ3LevelMesh* mesh, ISceneNode *
|
|||||||
|
|
||||||
if (!device)
|
if (!device)
|
||||||
return;
|
return;
|
||||||
// load FPS weapon to Camera
|
// load FPS weapon to camera
|
||||||
Device = device;
|
Device = device;
|
||||||
Mesh = mesh;
|
Mesh = mesh;
|
||||||
MapParent = mapNode;
|
MapParent = mapNode;
|
||||||
@ -377,8 +377,8 @@ void Q3Player::create ( IrrlichtDevice *device, IQ3LevelMesh* mesh, ISceneNode *
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
so we need a good starting Position in the level.
|
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"
|
We can ask the Quake3 loader for all entities with class_name "info_player_deathmatch"
|
||||||
*/
|
*/
|
||||||
void Q3Player::respawn ()
|
void Q3Player::respawn ()
|
||||||
{
|
{
|
||||||
@ -396,7 +396,7 @@ void Q3Player::respawn ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
set Player position from saved coordinates
|
set player position from saved coordinates
|
||||||
*/
|
*/
|
||||||
void Q3Player::setpos ( const vector3df &pos, const vector3df &rotation )
|
void Q3Player::setpos ( const vector3df &pos, const vector3df &rotation )
|
||||||
{
|
{
|
||||||
@ -414,7 +414,7 @@ void Q3Player::setpos ( const vector3df &pos, const vector3df &rotation )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set the Animation of the player and weapon
|
/* set the animation of the player and weapon
|
||||||
*/
|
*/
|
||||||
void Q3Player::setAnim ( const c8 *name )
|
void Q3Player::setAnim ( const c8 *name )
|
||||||
{
|
{
|
||||||
@ -446,7 +446,7 @@ void Q3Player::OnAnimationEnd(IAnimatedMeshSceneNode* node)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* GUI Elements
|
/* GUI elements
|
||||||
*/
|
*/
|
||||||
struct GUI
|
struct GUI
|
||||||
{
|
{
|
||||||
@ -560,13 +560,13 @@ CQuake3EventHandler::CQuake3EventHandler( GameData *game )
|
|||||||
BulletParent(0), FogParent(0), SkyNode(0), Meta(0)
|
BulletParent(0), FogParent(0), SkyNode(0), Meta(0)
|
||||||
{
|
{
|
||||||
buf[0]=0;
|
buf[0]=0;
|
||||||
// Also use 16 Bit Textures for 16 Bit RenderDevice
|
// Also use 16 bit textures for 16 bit RenderDevice
|
||||||
if ( Game->deviceParam.Bits == 16 )
|
if ( Game->deviceParam.Bits == 16 )
|
||||||
{
|
{
|
||||||
game->Device->getVideoDriver()->setTextureCreationFlag(ETCF_ALWAYS_16_BIT, true);
|
game->Device->getVideoDriver()->setTextureCreationFlag(ETCF_ALWAYS_16_BIT, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Quake3 Shader controls Z-Writing
|
// Quake3 shader controls Z-writing
|
||||||
game->Device->getSceneManager()->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true);
|
game->Device->getSceneManager()->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true);
|
||||||
|
|
||||||
// create internal textures
|
// create internal textures
|
||||||
@ -599,21 +599,10 @@ void CQuake3EventHandler::createTextures()
|
|||||||
|
|
||||||
video::IImage* image;
|
video::IImage* image;
|
||||||
u32 i;
|
u32 i;
|
||||||
u32 x;
|
|
||||||
u32 y;
|
|
||||||
u32 * data;
|
|
||||||
for ( i = 0; i != 8; ++i )
|
for ( i = 0; i != 8; ++i )
|
||||||
{
|
{
|
||||||
image = driver->createImage ( video::ECF_A8R8G8B8, dim);
|
image = driver->createImage ( video::ECF_A8R8G8B8, dim);
|
||||||
data = (u32*) image->getData ();
|
image->fill(SColor(0xFFFFFFFF));
|
||||||
for ( y = 0; y != dim.Height; ++y )
|
|
||||||
{
|
|
||||||
for ( x = 0; x != dim.Width; ++x )
|
|
||||||
{
|
|
||||||
data [x] = 0xFFFFFFFF;
|
|
||||||
}
|
|
||||||
data = (u32*) ( (u8*) data + image->getPitch() );
|
|
||||||
}
|
|
||||||
snprintf_irr ( buf, 64, "smoke_%02d", i );
|
snprintf_irr ( buf, 64, "smoke_%02d", i );
|
||||||
driver->addTexture( buf, image );
|
driver->addTexture( buf, image );
|
||||||
image->drop ();
|
image->drop ();
|
||||||
@ -623,15 +612,7 @@ void CQuake3EventHandler::createTextures()
|
|||||||
for ( i = 0; i != 1; ++i )
|
for ( i = 0; i != 1; ++i )
|
||||||
{
|
{
|
||||||
image = driver->createImage ( video::ECF_A8R8G8B8, dim);
|
image = driver->createImage ( video::ECF_A8R8G8B8, dim);
|
||||||
data = (u32*) image->getData ();
|
image->fill(SColor(0xFFFFFFFF));
|
||||||
for ( y = 0; y != dim.Height; ++y )
|
|
||||||
{
|
|
||||||
for ( x = 0; x != dim.Width; ++x )
|
|
||||||
{
|
|
||||||
data [x] = 0xFFFFFFFF;
|
|
||||||
}
|
|
||||||
data = (u32*) ( (u8*) data + image->getPitch() );
|
|
||||||
}
|
|
||||||
snprintf_irr ( buf, 64, "fog_%02d", i );
|
snprintf_irr ( buf, 64, "fog_%02d", i );
|
||||||
driver->addTexture( buf, image );
|
driver->addTexture( buf, image );
|
||||||
image->drop ();
|
image->drop ();
|
||||||
@ -644,7 +625,6 @@ void CQuake3EventHandler::createTextures()
|
|||||||
*/
|
*/
|
||||||
void CQuake3EventHandler::CreateGUI()
|
void CQuake3EventHandler::CreateGUI()
|
||||||
{
|
{
|
||||||
|
|
||||||
IGUIEnvironment *env = Game->Device->getGUIEnvironment();
|
IGUIEnvironment *env = Game->Device->getGUIEnvironment();
|
||||||
IVideoDriver * driver = Game->Device->getVideoDriver();
|
IVideoDriver * driver = Game->Device->getVideoDriver();
|
||||||
|
|
||||||
@ -663,15 +643,6 @@ void CQuake3EventHandler::CreateGUI()
|
|||||||
|
|
||||||
// minimal gui size 800x600
|
// minimal gui size 800x600
|
||||||
dimension2d<u32> dim ( 800, 600 );
|
dimension2d<u32> dim ( 800, 600 );
|
||||||
dimension2d<u32> vdim ( Game->Device->getVideoDriver()->getScreenSize() );
|
|
||||||
|
|
||||||
if ( vdim.Height >= dim.Height && vdim.Width >= dim.Width )
|
|
||||||
{
|
|
||||||
//dim = vdim;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
gui.Window = env->addWindow ( rect<s32> ( 0, 0, dim.Width, dim.Height ), false, L"Quake3 Explorer" );
|
gui.Window = env->addWindow ( rect<s32> ( 0, 0, dim.Width, dim.Height ), false, L"Quake3 Explorer" );
|
||||||
gui.Window->setToolTipText ( L"Quake3Explorer. Loads and show various BSP File Format and Shaders." );
|
gui.Window->setToolTipText ( L"Quake3Explorer. Loads and show various BSP File Format and Shaders." );
|
||||||
@ -860,7 +831,7 @@ void CQuake3EventHandler::AddArchive ( const path& archiveName )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// store the current archives in game data
|
// store the current archives in game data
|
||||||
// show the attached Archive in proper order
|
// show the attached archive in proper order
|
||||||
if ( gui.ArchiveList )
|
if ( gui.ArchiveList )
|
||||||
{
|
{
|
||||||
gui.ArchiveList->clearRows();
|
gui.ArchiveList->clearRows();
|
||||||
@ -998,7 +969,7 @@ void CQuake3EventHandler::AddArchive ( const path& archiveName )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
clears the Map in Memory
|
clears the map in memory
|
||||||
*/
|
*/
|
||||||
void CQuake3EventHandler::dropMap ()
|
void CQuake3EventHandler::dropMap ()
|
||||||
{
|
{
|
||||||
@ -1113,9 +1084,9 @@ void CQuake3EventHandler::LoadMap ( const stringw &mapName, s32 collision )
|
|||||||
BulletParent->setName ( "Bullet Container" );
|
BulletParent->setName ( "Bullet Container" );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
now construct SceneNodes for each Shader
|
now construct SceneNodes for each shader
|
||||||
The Objects are stored in the quake mesh E_Q3_MESH_ITEMS
|
The objects are stored in the quake mesh E_Q3_MESH_ITEMS
|
||||||
and the Shader ID is stored in the MaterialParameters
|
and the shader ID is stored in the MaterialParameters
|
||||||
mostly dark looking skulls and moving lava.. or green flashing tubes?
|
mostly dark looking skulls and moving lava.. or green flashing tubes?
|
||||||
*/
|
*/
|
||||||
Q3ShaderFactory ( Game->loadParam, Game->Device, Mesh, E_Q3_MESH_ITEMS,ShaderParent, Meta, false );
|
Q3ShaderFactory ( Game->loadParam, Game->Device, Mesh, E_Q3_MESH_ITEMS,ShaderParent, Meta, false );
|
||||||
@ -1123,13 +1094,13 @@ void CQuake3EventHandler::LoadMap ( const stringw &mapName, s32 collision )
|
|||||||
Q3ShaderFactory ( Game->loadParam, Game->Device, Mesh, E_Q3_MESH_UNRESOLVED,UnresolvedParent, Meta, true );
|
Q3ShaderFactory ( Game->loadParam, Game->Device, Mesh, E_Q3_MESH_UNRESOLVED,UnresolvedParent, Meta, true );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Now construct Models from Entity List
|
Now construct models from entity list
|
||||||
*/
|
*/
|
||||||
Q3ModelFactory ( Game->loadParam, Game->Device, Mesh, ItemParent, false );
|
Q3ModelFactory ( Game->loadParam, Game->Device, Mesh, ItemParent, false );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Adds a SceneNode with an icon to the Scene Tree
|
Adds a SceneNode with an icon to the scene tree
|
||||||
*/
|
*/
|
||||||
void CQuake3EventHandler::addSceneTreeItem( ISceneNode * parent, IGUITreeViewNode* nodeParent)
|
void CQuake3EventHandler::addSceneTreeItem( ISceneNode * parent, IGUITreeViewNode* nodeParent)
|
||||||
{
|
{
|
||||||
@ -1169,7 +1140,7 @@ void CQuake3EventHandler::addSceneTreeItem( ISceneNode * parent, IGUITreeViewNod
|
|||||||
|
|
||||||
node = nodeParent->addChildBack( msg, 0, imageIndex );
|
node = nodeParent->addChildBack( msg, 0, imageIndex );
|
||||||
|
|
||||||
// Add all Animators
|
// Add all animators
|
||||||
list<ISceneNodeAnimator*>::ConstIterator ait = (*it)->getAnimators().begin();
|
list<ISceneNodeAnimator*>::ConstIterator ait = (*it)->getAnimators().begin();
|
||||||
for (; ait != (*it)->getAnimators().end(); ++ait)
|
for (; ait != (*it)->getAnimators().end(); ++ait)
|
||||||
{
|
{
|
||||||
@ -1753,7 +1724,7 @@ void CQuake3EventHandler::useItem( Q3Player * player)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// doesnt collide with wall
|
// doesn't collide with wall
|
||||||
vector3df start = camera->getPosition();
|
vector3df start = camera->getPosition();
|
||||||
if ( player->WeaponNode )
|
if ( player->WeaponNode )
|
||||||
{
|
{
|
||||||
@ -2104,7 +2075,7 @@ void runGame ( GameData *game )
|
|||||||
eventHandler->AddArchive ( game->CurrentArchiveList[i] );
|
eventHandler->AddArchive ( game->CurrentArchiveList[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load a Map or startup to the GUI
|
// Load a map or startup to the GUI
|
||||||
if ( game->CurrentMapName.size () )
|
if ( game->CurrentMapName.size () )
|
||||||
{
|
{
|
||||||
eventHandler->LoadMap ( game->CurrentMapName, 1 );
|
eventHandler->LoadMap ( game->CurrentMapName, 1 );
|
||||||
|
@ -301,7 +301,7 @@ const SItemElement * getItemElement ( const stringc& key )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Quake3 Model Factory.
|
Quake3 model factory.
|
||||||
Takes the mesh buffers and creates scenenodes for their associated shaders
|
Takes the mesh buffers and creates scenenodes for their associated shaders
|
||||||
*/
|
*/
|
||||||
void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam,
|
void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam,
|
||||||
@ -399,7 +399,7 @@ void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam,
|
|||||||
sceneNodeID += 1;
|
sceneNodeID += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// show Debug Shader Name
|
// show debug shader name
|
||||||
if ( showShaderName && node )
|
if ( showShaderName && node )
|
||||||
{
|
{
|
||||||
swprintf_irr ( (wchar_t*) buf, 64, L"%hs:%d", node->getName(),node->getID() );
|
swprintf_irr ( (wchar_t*) buf, 64, L"%hs:%d", node->getName(),node->getID() );
|
||||||
@ -413,7 +413,7 @@ void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam,
|
|||||||
sceneNodeID += 1;
|
sceneNodeID += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// create Portal Rendertargets
|
// create portal rendertargets
|
||||||
if ( shader )
|
if ( shader )
|
||||||
{
|
{
|
||||||
const SVarGroup *group = shader->getGroup(1);
|
const SVarGroup *group = shader->getGroup(1);
|
||||||
@ -496,7 +496,7 @@ void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam,
|
|||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
create Items from Entity
|
create items from entity
|
||||||
*/
|
*/
|
||||||
void Q3ModelFactory ( Q3LevelLoadParameter &loadParam,
|
void Q3ModelFactory ( Q3LevelLoadParameter &loadParam,
|
||||||
IrrlichtDevice *device,
|
IrrlichtDevice *device,
|
||||||
@ -513,7 +513,7 @@ void Q3ModelFactory ( Q3LevelLoadParameter &loadParam,
|
|||||||
|
|
||||||
|
|
||||||
char buf[128];
|
char buf[128];
|
||||||
const SVarGroup *group;
|
const SVarGroup *group = 0;
|
||||||
IEntity search;
|
IEntity search;
|
||||||
s32 index;
|
s32 index;
|
||||||
s32 lastIndex;
|
s32 lastIndex;
|
||||||
@ -531,12 +531,12 @@ void Q3ModelFactory ( Q3LevelLoadParameter &loadParam,
|
|||||||
}
|
}
|
||||||
fclose ( f );
|
fclose ( f );
|
||||||
*/
|
*/
|
||||||
IAnimatedMeshMD3* model;
|
IAnimatedMeshMD3* model = 0;
|
||||||
SMD3Mesh * mesh;
|
SMD3Mesh * mesh = 0;
|
||||||
const SMD3MeshBuffer *meshBuffer;
|
const SMD3MeshBuffer *meshBuffer = 0;
|
||||||
IMeshSceneNode* node;
|
IMeshSceneNode* node = 0;
|
||||||
ISceneNodeAnimator* anim;
|
ISceneNodeAnimator* anim = 0;
|
||||||
const IShader *shader;
|
const IShader *shader = 0;
|
||||||
u32 pos;
|
u32 pos;
|
||||||
vector3df p;
|
vector3df p;
|
||||||
u32 nodeCount = 0;
|
u32 nodeCount = 0;
|
||||||
@ -546,7 +546,7 @@ void Q3ModelFactory ( Q3LevelLoadParameter &loadParam,
|
|||||||
if ( showShaderName )
|
if ( showShaderName )
|
||||||
font = device->getGUIEnvironment()->getFont("fontlucida.png");
|
font = device->getGUIEnvironment()->getFont("fontlucida.png");
|
||||||
|
|
||||||
const SItemElement *itemElement;
|
const SItemElement *itemElement = 0;
|
||||||
|
|
||||||
// walk list
|
// walk list
|
||||||
for ( index = 0; (u32) index < entity.size(); ++index )
|
for ( index = 0; (u32) index < entity.size(); ++index )
|
||||||
@ -706,7 +706,7 @@ s32 Q3StartPosition ( IQ3LevelMesh* mesh,
|
|||||||
|
|
||||||
u32 parsepos;
|
u32 parsepos;
|
||||||
|
|
||||||
const SVarGroup *group;
|
const SVarGroup *group = 0;
|
||||||
group = entityList[ index ].getGroup(1);
|
group = entityList[ index ].getGroup(1);
|
||||||
|
|
||||||
parsepos = 0;
|
parsepos = 0;
|
||||||
@ -801,7 +801,7 @@ ISceneNodeAnimatorCollisionResponse* camCollisionResponse( IrrlichtDevice * devi
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//! internal Animation
|
//! internal animation
|
||||||
void setTimeFire ( TimeFire *t, u32 delta, u32 flags )
|
void setTimeFire ( TimeFire *t, u32 delta, u32 flags )
|
||||||
{
|
{
|
||||||
t->flags = flags;
|
t->flags = flags;
|
||||||
|
@ -46,7 +46,7 @@ enum eItemSubGroup
|
|||||||
CHAINGUN,
|
CHAINGUN,
|
||||||
};
|
};
|
||||||
|
|
||||||
//! aplly a special effect to the shader
|
//! apply a special effect to the shader
|
||||||
enum eItemSpecialEffect
|
enum eItemSpecialEffect
|
||||||
{
|
{
|
||||||
SPECIAL_SFX_NONE = 0,
|
SPECIAL_SFX_NONE = 0,
|
||||||
@ -55,7 +55,7 @@ enum eItemSpecialEffect
|
|||||||
SPECIAL_SFX_ROTATE_1 = 4,
|
SPECIAL_SFX_ROTATE_1 = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
// a List for defining a model
|
// a list for defining a model
|
||||||
struct SItemElement
|
struct SItemElement
|
||||||
{
|
{
|
||||||
const c8 *key;
|
const c8 *key;
|
||||||
@ -124,11 +124,11 @@ funcptr_createDeviceEx load_createDeviceEx ( const c8 * filename);
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
get the current collision respone camera animator
|
get the current collision response camera animator
|
||||||
*/
|
*/
|
||||||
ISceneNodeAnimatorCollisionResponse* camCollisionResponse( IrrlichtDevice * device );
|
ISceneNodeAnimatorCollisionResponse* camCollisionResponse( IrrlichtDevice * device );
|
||||||
|
|
||||||
//! internal Animation
|
//! internal animation
|
||||||
enum eTimeFireFlag
|
enum eTimeFireFlag
|
||||||
{
|
{
|
||||||
FIRED = 1,
|
FIRED = 1,
|
||||||
|
Loading…
Reference in New Issue
Block a user