diff --git a/examples/21.Quake3Explorer/main.cpp b/examples/21.Quake3Explorer/main.cpp index 77351f7..6322991 100644 --- a/examples/21.Quake3Explorer/main.cpp +++ b/examples/21.Quake3Explorer/main.cpp @@ -3,13 +3,13 @@ This tutorial shows how to load different Quake 3 maps. Features: - - Load BSP Archives at Runtime from the menu - - Load a Map from the menu. Showing with Screenshot + - Load BSP archives at runtime from the menu + - Load a map from the menu. Showing with screenshot - Set the VideoDriver at runtime from menu - Adjust GammaLevel at runtime - - Create SceneNodes for the Shaders - - Load EntityList and create Entity SceneNodes - - Create Players with Weapons and with Collision Response + - Create SceneNodes for the shaders + - Load EntityList and create entity SceneNodes + - Create players with weapons and with collision response - Play music You can download the Quake III Arena demo ( copyright id software ) @@ -26,7 +26,7 @@ Copyright 2006-2011 Burningwater, Thomas Alten #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 { @@ -100,7 +100,7 @@ void GameData::setDefault () loadParam.mergeShaderBuffer = 1; // merge meshbuffers with same material loadParam.cleanUnResolvedMeshes = 1; // should unresolved meshes be cleaned. otherwise blue texture 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; 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 ) { - return 0; + return 0; // TODO: Anyone knows why it just returns? if (!Device) return 0; c8 buf[128]; u32 i; - // Store current Archive for restart + // Store current archive for restart CurrentArchiveList.clear(); IFileSystem *fs = Device->getFileSystem(); 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() ); } - // Store Player Position and Rotation + // Store player position and rotation ICameraSceneNode * camera = Device->getSceneManager()->getActiveCamera (); if ( camera ) { @@ -279,7 +279,7 @@ void Q3Player::create ( IrrlichtDevice *device, IQ3LevelMesh* mesh, ISceneNode * if (!device) return; - // load FPS weapon to Camera + // load FPS weapon to camera Device = device; Mesh = mesh; MapParent = mapNode; @@ -377,8 +377,8 @@ void Q3Player::create ( IrrlichtDevice *device, IQ3LevelMesh* mesh, ISceneNode * /* - 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" + 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" */ 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 ) { @@ -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 ) { @@ -446,7 +446,7 @@ void Q3Player::OnAnimationEnd(IAnimatedMeshSceneNode* node) -/* GUI Elements +/* GUI elements */ struct GUI { @@ -560,13 +560,13 @@ CQuake3EventHandler::CQuake3EventHandler( GameData *game ) BulletParent(0), FogParent(0), SkyNode(0), Meta(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 ) { 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); // create internal textures @@ -599,21 +599,10 @@ void CQuake3EventHandler::createTextures() video::IImage* image; u32 i; - u32 x; - u32 y; - u32 * data; for ( i = 0; i != 8; ++i ) { image = driver->createImage ( video::ECF_A8R8G8B8, dim); - data = (u32*) image->getData (); - for ( y = 0; y != dim.Height; ++y ) - { - for ( x = 0; x != dim.Width; ++x ) - { - data [x] = 0xFFFFFFFF; - } - data = (u32*) ( (u8*) data + image->getPitch() ); - } + image->fill(SColor(0xFFFFFFFF)); snprintf_irr ( buf, 64, "smoke_%02d", i ); driver->addTexture( buf, image ); image->drop (); @@ -623,15 +612,7 @@ void CQuake3EventHandler::createTextures() for ( i = 0; i != 1; ++i ) { image = driver->createImage ( video::ECF_A8R8G8B8, dim); - data = (u32*) image->getData (); - for ( y = 0; y != dim.Height; ++y ) - { - for ( x = 0; x != dim.Width; ++x ) - { - data [x] = 0xFFFFFFFF; - } - data = (u32*) ( (u8*) data + image->getPitch() ); - } + image->fill(SColor(0xFFFFFFFF)); snprintf_irr ( buf, 64, "fog_%02d", i ); driver->addTexture( buf, image ); image->drop (); @@ -644,7 +625,6 @@ void CQuake3EventHandler::createTextures() */ void CQuake3EventHandler::CreateGUI() { - IGUIEnvironment *env = Game->Device->getGUIEnvironment(); IVideoDriver * driver = Game->Device->getVideoDriver(); @@ -663,15 +643,6 @@ void CQuake3EventHandler::CreateGUI() // minimal gui size 800x600 dimension2d dim ( 800, 600 ); - dimension2d vdim ( Game->Device->getVideoDriver()->getScreenSize() ); - - if ( vdim.Height >= dim.Height && vdim.Width >= dim.Width ) - { - //dim = vdim; - } - else - { - } gui.Window = env->addWindow ( rect ( 0, 0, dim.Width, dim.Height ), false, L"Quake3 Explorer" ); 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 - // show the attached Archive in proper order + // show the attached archive in proper order if ( gui.ArchiveList ) { 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 () { @@ -1113,9 +1084,9 @@ void CQuake3EventHandler::LoadMap ( const stringw &mapName, s32 collision ) BulletParent->setName ( "Bullet Container" ); /* - now construct SceneNodes for each Shader - The Objects are stored in the quake mesh E_Q3_MESH_ITEMS - and the Shader ID is stored in the MaterialParameters + now construct SceneNodes for each shader + The objects are stored in the quake mesh E_Q3_MESH_ITEMS + and the shader ID is stored in the MaterialParameters mostly dark looking skulls and moving lava.. or green flashing tubes? */ 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 ); /* - Now construct Models from Entity List + Now construct models from entity list */ 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) { @@ -1169,7 +1140,7 @@ void CQuake3EventHandler::addSceneTreeItem( ISceneNode * parent, IGUITreeViewNod node = nodeParent->addChildBack( msg, 0, imageIndex ); - // Add all Animators + // Add all animators list::ConstIterator ait = (*it)->getAnimators().begin(); for (; ait != (*it)->getAnimators().end(); ++ait) { @@ -1753,7 +1724,7 @@ void CQuake3EventHandler::useItem( Q3Player * player) } else { - // doesnt collide with wall + // doesn't collide with wall vector3df start = camera->getPosition(); if ( player->WeaponNode ) { @@ -2104,7 +2075,7 @@ void runGame ( GameData *game ) 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 () ) { eventHandler->LoadMap ( game->CurrentMapName, 1 ); diff --git a/examples/21.Quake3Explorer/q3factory.cpp b/examples/21.Quake3Explorer/q3factory.cpp index 3a2dcff..ece42ca 100644 --- a/examples/21.Quake3Explorer/q3factory.cpp +++ b/examples/21.Quake3Explorer/q3factory.cpp @@ -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 */ void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam, @@ -399,7 +399,7 @@ void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam, sceneNodeID += 1; } - // show Debug Shader Name + // show debug shader name if ( showShaderName && node ) { swprintf_irr ( (wchar_t*) buf, 64, L"%hs:%d", node->getName(),node->getID() ); @@ -413,7 +413,7 @@ void Q3ShaderFactory ( Q3LevelLoadParameter &loadParam, sceneNodeID += 1; } - // create Portal Rendertargets + // create portal rendertargets if ( shader ) { 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, IrrlichtDevice *device, @@ -513,7 +513,7 @@ void Q3ModelFactory ( Q3LevelLoadParameter &loadParam, char buf[128]; - const SVarGroup *group; + const SVarGroup *group = 0; IEntity search; s32 index; s32 lastIndex; @@ -531,12 +531,12 @@ void Q3ModelFactory ( Q3LevelLoadParameter &loadParam, } fclose ( f ); */ - IAnimatedMeshMD3* model; - SMD3Mesh * mesh; - const SMD3MeshBuffer *meshBuffer; - IMeshSceneNode* node; - ISceneNodeAnimator* anim; - const IShader *shader; + IAnimatedMeshMD3* model = 0; + SMD3Mesh * mesh = 0; + const SMD3MeshBuffer *meshBuffer = 0; + IMeshSceneNode* node = 0; + ISceneNodeAnimator* anim = 0; + const IShader *shader = 0; u32 pos; vector3df p; u32 nodeCount = 0; @@ -546,7 +546,7 @@ void Q3ModelFactory ( Q3LevelLoadParameter &loadParam, if ( showShaderName ) font = device->getGUIEnvironment()->getFont("fontlucida.png"); - const SItemElement *itemElement; + const SItemElement *itemElement = 0; // walk list for ( index = 0; (u32) index < entity.size(); ++index ) @@ -706,7 +706,7 @@ s32 Q3StartPosition ( IQ3LevelMesh* mesh, u32 parsepos; - const SVarGroup *group; + const SVarGroup *group = 0; group = entityList[ index ].getGroup(1); parsepos = 0; @@ -801,7 +801,7 @@ ISceneNodeAnimatorCollisionResponse* camCollisionResponse( IrrlichtDevice * devi } -//! internal Animation +//! internal animation void setTimeFire ( TimeFire *t, u32 delta, u32 flags ) { t->flags = flags; diff --git a/examples/21.Quake3Explorer/q3factory.h b/examples/21.Quake3Explorer/q3factory.h index d9606ed..51b727e 100644 --- a/examples/21.Quake3Explorer/q3factory.h +++ b/examples/21.Quake3Explorer/q3factory.h @@ -46,7 +46,7 @@ enum eItemSubGroup CHAINGUN, }; -//! aplly a special effect to the shader +//! apply a special effect to the shader enum eItemSpecialEffect { SPECIAL_SFX_NONE = 0, @@ -55,7 +55,7 @@ enum eItemSpecialEffect SPECIAL_SFX_ROTATE_1 = 4, }; -// a List for defining a model +// a list for defining a model struct SItemElement { 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 ); -//! internal Animation +//! internal animation enum eTimeFireFlag { FIRED = 1,