Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/cegui0.8/src/orxonox/controllers/MasterController.h @ 11928

Last change on this file since 11928 was 11099, checked in by muemart, 9 years ago

Fix loads of doxygen warnings and other documentation issues

  • 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
47      @code
48      <Pawn position = "100000, 100000, 100000">
49        <controller>
50          <MasterController>
51          </MasterController>
52        </controller>
53      </Pawn>
54      @endcode
55    */
56    class _OrxonoxExport MasterController : public Controller, public Tickable
57    {
58        public:
59            //----[language demanded functions]----           
60                MasterController(Context* context);
61
62                virtual ~MasterController();
63            //----[/language demanded functions]----           
64
65            //----[orxonox demanded functions]----
66                virtual void tick(float dt) override;
67
68            //----[orxonox demanded functions]----
69
70        protected:
71         
72        private:
73            std::vector<WeakPtr<ActionpointController>> controllers_;//<! vector of controllers, which action(), canFire() and maneuver() methods are to be called
74            size_t indexOfCurrentController_;                        //<! index of current controller
75            unsigned int numberOfTicksPassedSinceLastActionCall_;
76            unsigned int ticks_;                                     //<! local tick counter           
77
78    };
79}
80
81#endif /* _MasterController_H__ */
Note: See TracBrowser for help on using the repository browser.