Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/orxonox/controllers/MasterController.h @ 11071

Last change on this file since 11071 was 11071, checked in by landauf, 8 years ago

merged branch cpp11_v3 back to trunk

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Gani Aliguzhinov
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29#ifndef _MasterController_H__
30#define _MasterController_H__
31
32#include "controllers/Controller.h"
33#include "controllers/ActionpointController.h"
34#include "tools/interfaces/Tickable.h"
35
36
37
38namespace orxonox
39{
40    /**
41    @brief
42      calles action(), maneuver() and canFire() methods of all the ActionpointControllers in level.
43      Only one instance of MasterController is to be placed in level.
44      If no MasterController is initialized, none of ActionpointControllers will work.
45      Example:
46      <Pawn position = "100000, 100000, 100000">
47        <controller>
48          <MasterController>
49          </MasterController>
50        </controller>
51      </Pawn>
52    */
53    class _OrxonoxExport MasterController : public Controller, public Tickable
54    {
55        public:
56            //----[language demanded functions]----           
57                MasterController(Context* context);
58
59                virtual ~MasterController();
60            //----[/language demanded functions]----           
61
62            //----[orxonox demanded functions]----
63                virtual void tick(float dt) override;
64
65            //----[orxonox demanded functions]----
66
67        protected:
68         
69        private:
70            std::vector<WeakPtr<ActionpointController>> controllers_;//<! vector of controllers, which action(), canFire() and maneuver() methods are to be called
71            size_t indexOfCurrentController_;                        //<! index of current controller
72            unsigned int numberOfTicksPassedSinceLastActionCall_;
73            unsigned int ticks_;                                     //<! local tick counter           
74
75    };
76}
77
78#endif /* _MasterController_H__ */
Note: See TracBrowser for help on using the repository browser.