#pragma once #include // Standard-Vektor einschließen #include "GameScene.h" #include "MenueScene.h" #include #include "PhysXOutputStream.h" #include "UserAllocator.h" #include "ResourceManager.h" using namespace std; class Scene; class Node; #define SPTR boost::shared_ptr class GameManager { public: GameManager(void); ~GameManager(void); int init(void); void printToConsole (std::string output); void addScene(Scene &newScene); void removeScene (Scene &oldScene); void setActiveScene(Scene &aScene); void switchToMenueScene(); void switchToGameScene(); void keyPressed(UINT nChar, bool bKeyDown, bool bAltDown, void* pUserContext); void setMouseStatus(bool bLeftButtonDown, bool bRightButtonDown,bool bMiddleButtonDown, bool bSideButton1Down, bool bSideButton2Down, int nMouseWheelDelta, int xPos, int yPos); void updateGame(float fElapsedTime); void initGame(); std::wstring HelpScreenString_Get(); ID3DXEffect* getEffect(UINT id); ID3DXEffect* loadEffect(UINT id, LPCWSTR filename); void releaseEffect(ID3DXEffect* effect); void OnLostDevice( void* pUserContext ); void OnDestroyDevice( void* pUserContext ); HRESULT OnCreateDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ); HRESULT OnResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ); void OnGUIEvent( UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserContext ); //PhysicSDK NxPhysicsSDK* pPhysicsSDK; UserAllocator* pAllocator; void setScreenDimension(int width, int height); ResourceManager resManager; int screenWidth; int screenHeight; MenueScene ms; // Menue Scene GameScene gs; // GameScene //EffectConstants static const UINT EFFECT_FADE = 0; static const UINT EFFECT_RAYTRACE = 1; static const UINT EFFECT_DEPTHIMP = 2; static const UINT EFFECT_SIMPLEMESH = 3; static const UINT EFFECT_TERRAIN = 4; static const UINT EFFECT_OCEAN = 5; friend class Scene; protected: Scene* activeScene; std::vector sceneVector; bool consoleStarted; HANDLE outputHandle; PhysXOutputStream pOutputStream; //Effect vector static const int NB_EFFECTS = 100; ID3DXEffect* effectList[NB_EFFECTS]; int effectReleaseCount[NB_EFFECTS]; bool firstFrame; IDirect3DSurface9* finalRenderTarget; IDirect3DDevice9* device; ID3DXEffect* fadeEffect; };