Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/formation/src/orxonox/controllers/NewHumanController.h @ 8991

Last change on this file since 8991 was 7859, checked in by landauf, 14 years ago

implemented feature to reset the mouse cursor to the center
used in NewHumanController to set cursor to the center of the screen every time the ControllableEntity is changed
avoids turning of the spaceship right after spawn, if the player looked around in spectator mode

needs testing with derived mouse input (joysticks should be unchanged).
input system experts may have a look at this. ;)

  • Property svn:eol-style set to native
File size: 3.8 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 *      Michael Wirth
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29#ifndef _NewNewHumanController_H__
30#define _NewNewHumanController_H__
31
32#include "OrxonoxPrereqs.h"
33
34#include "util/Math.h"
35
36#include "core/ClassTreeMask.h"
37#include "HumanController.h"
38
39namespace orxonox
40{
41    class _OrxonoxExport NewHumanController : public HumanController
42    {
43        public:
44            NewHumanController(BaseObject* creator);
45            virtual ~NewHumanController();
46
47            virtual void tick(float dt);
48
49            virtual void frontback(const Vector2& value);
50            virtual void yaw(const Vector2& value);
51            virtual void pitch(const Vector2& value);
52
53            static void accelerate();
54            static void decelerate();
55
56            virtual void doFire(unsigned int firemode);
57
58            virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage);
59
60            static void unfire();
61            virtual void doUnfire();
62
63            void centerCursor();
64
65            static void changeMode();
66
67            virtual void changedControllableEntity();
68            virtual void doPauseControl();
69            virtual void doResumeControl();
70
71
72        protected:
73            void updateTarget();
74            void alignArrows();
75            void showOverlays();
76            void hideOverlays();
77            void hideArrows();
78
79            unsigned int                controlMode_;
80            static NewHumanController*  localController_s;
81
82        private:
83            float                       currentYaw_;
84            float                       currentPitch_;
85            OrxonoxOverlay*             crossHairOverlay_;
86            OrxonoxOverlay*             centerOverlay_;
87
88            OrxonoxOverlay*             damageOverlayTop_;
89            OrxonoxOverlay*             damageOverlayRight_;
90            OrxonoxOverlay*             damageOverlayBottom_;
91            OrxonoxOverlay*             damageOverlayLeft_;
92            float                       damageOverlayTime_;
93            float                       damageOverlayTT_;
94            float                       damageOverlayTR_;
95            float                       damageOverlayTB_;
96            float                       damageOverlayTL_;
97
98            OrxonoxOverlay*             arrowsOverlay1_;
99            OrxonoxOverlay*             arrowsOverlay2_;
100            OrxonoxOverlay*             arrowsOverlay3_;
101            OrxonoxOverlay*             arrowsOverlay4_;
102
103            float                       overlaySize_;
104            float                       arrowsSize_;
105            bool                        accelerating_;
106            float                       acceleration_;
107            int                         firemode_;
108            bool                        showArrows_;
109            bool                        showDamageOverlay_;
110            bool                        showOverlays_;
111            ClassTreeMask               targetMask_;
112    };
113}
114
115#endif /* _NewHumanController_H__ */
Note: See TracBrowser for help on using the repository browser.