1 /* 2 * This file is part of the Colobot: Gold Edition source code 3 * Copyright (C) 2001-2020, Daniel Roux, EPSITEC SA & TerranovaTeam 4 * http://epsitec.ch; http://colobot.info; http://github.com/colobot 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 * See the GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see http://gnu.org/licenses 18 */ 19 20 /** 21 * \file app/controller.h 22 * \brief CController class 23 */ 24 25 #pragma once 26 27 #include "level/level_category.h" 28 29 #include <memory> 30 #include <string> 31 32 class CRobotMain; 33 struct Event; 34 35 /** 36 * \class CController 37 * \brief Entry point into CRobotMain 38 */ 39 class CController 40 { 41 public: 42 CController(); 43 ~CController(); 44 45 //! Return CRobotMain instance 46 CRobotMain* GetRobotMain(); 47 48 //! Event processing 49 void ProcessEvent(Event &event); 50 51 //! Start the application 52 void StartApp(); 53 //! Starts the simulation, loading the given scene 54 void StartGame(LevelCategory cat, int chap, int lvl); 55 56 private: 57 std::unique_ptr<CRobotMain> m_main; 58 }; 59