1
// This is a Demo of the Irrlicht Engine (c) 2006 by N.Gebhardt.
2
// This file is not documented.
4
#ifndef __C_DEMO_H_INCLUDED__
5
#define __C_DEMO_H_INCLUDED__
8
//#define USE_SDL_MIXER
21
#include <irrKlang.h> // problem here? go to http://www.ambiera.com/irrklang and download
22
// the irrKlang library or undefine USE_IRRKLANG at the beginning
25
#pragma comment (lib, "irrKlang.lib")
30
# include <SDL/SDL_mixer.h>
33
const int CAMERA_COUNT = 7;
35
class CDemo : public IEventReceiver
39
CDemo(bool fullscreen, bool music, bool shadows, bool additive, bool vsync, bool aa, video::E_DRIVER_TYPE driver);
45
virtual bool OnEvent(const SEvent& event);
49
void createLoadingScreen();
51
void switchToNextScene();
53
void createParticleImpacts();
61
video::E_DRIVER_TYPE driverType;
62
IrrlichtDevice *device;
66
irrklang::ISoundEngine* irrKlang;
67
irrklang::ISoundSource* ballSound;
68
irrklang::ISoundSource* impactSound;
73
void playSound(Mix_Chunk *);
77
Mix_Chunk *impactSound;
80
struct SParticleImpact
84
core::vector3df outVector;
88
video::SColor backColor;
90
gui::IGUIStaticText* statusText;
91
gui::IGUIInOutFader* inOutFader;
93
scene::IQ3LevelMesh* quakeLevelMesh;
94
scene::ISceneNode* quakeLevelNode;
95
scene::ISceneNode* skyboxNode;
96
scene::IAnimatedMeshSceneNode* model1;
97
scene::IAnimatedMeshSceneNode* model2;
98
scene::IParticleSystemSceneNode* campFire;
100
scene::IMetaTriangleSelector* metaSelector;
101
scene::ITriangleSelector* mapSelector;
104
s32 timeForThisScene;
106
core::array<SParticleImpact> Impacts;