00001 //This file is part of PhysTank. 00002 // 00003 //PhysTank is free software: you can redistribute it and/or modify 00004 //it under the terms of the GNU General Public License as published by 00005 //the Free Software Foundation, either version 3 of the License, or 00006 //(at your option) any later version. 00007 // 00008 //PhysTank is distributed in the hope that it will be useful, 00009 //but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 //GNU General Public License for more details. 00012 // 00013 //You should have received a copy of the GNU General Public License 00014 //along with PhysTank. If not, see <http://www.gnu.org/licenses/>. 00015 // 00016 // © Marc Johnson, 2009 00017 00018 #ifndef _GAMESCREEN_ 00019 #define _GAMESCREEN_ 00020 00021 #include "ui/BaseScreen.h" 00022 00023 class AbstractRenderer; 00024 class Game; 00025 class GameScreenKeyListener; 00026 class PlayerController; 00027 00028 class GameScreen : public BaseScreen 00029 { 00030 friend class GameScreenKeyListener; 00031 private: 00032 Game* m_pGame; 00033 PlayerController* m_pPlayerController; 00034 GameScreenKeyListener* m_pKeyListener; 00035 public: 00036 GameScreen(Engine* pEngine); 00037 virtual ~GameScreen(); 00038 00039 void CreatePlayerController(); 00040 PlayerController * GetPlayerController() const { return m_pPlayerController; } 00041 00042 virtual void Update(const int nDelta); 00043 virtual void Render(AbstractRenderer* pRenderer, const int nDelta); 00044 virtual void Activate(); 00045 virtual void Deactivate(); 00046 }; 00047 00048 #endif