Colobot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
motionvehicle.h
1 /*
2  * This file is part of the Colobot: Gold Edition source code
3  * Copyright (C) 2001-2014, Daniel Roux, EPSITEC SA & TerranovaTeam
4  * http://epsiteс.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 // motionvehicle.h
21 
22 #pragma once
23 
24 
25 #include "object/motion/motion.h"
26 
27 
28 
29 class CMotionVehicle : public CMotion
30 {
31 public:
32  CMotionVehicle(CObject* object);
33  ~CMotionVehicle();
34 
35  void DeleteObject(bool bAll=false);
36  bool Create(Math::Vector pos, float angle, ObjectType type, float power);
37  bool EventProcess(const Event &event);
38 
39  bool GetTraceDown();
40  void SetTraceDown(bool bDown);
41  int GetTraceColor();
42  void SetTraceColor(int color);
43  float GetTraceWidth();
44  void SetTraceWidth(float width);
45 
46 protected:
47  void CreatePhysics(ObjectType type);
48  bool EventFrame(const Event &event);
49  bool EventFrameFly(const Event &event);
50  bool EventFrameInsect(const Event &event);
51  bool EventFrameCanoni(const Event &event);
52  void UpdateTrackMapping(float left, float right, ObjectType type);
53 
54 protected:
55  float m_wheelTurn[4];
56  float m_flyPaw[3];
57  float m_posTrackLeft;
58  float m_posTrackRight;
59  int m_partiReactor;
60  float m_armTimeAbs;
61  float m_armMember;
62  float m_canonTime;
63  float m_lastTimeCanon;
64  Math::Vector m_wheelLastPos;
65  Math::Vector m_wheelLastAngle;
66  Math::Vector m_posKey;
67  bool m_bFlyFix;
68  bool m_bTraceDown;
69  int m_traceColor;
70  float m_traceWidth;
71 };
72 
Definition: motionvehicle.h:29
ObjectType
Type of game object.
Definition: object.h:51
Definition: motion.h:48
3D (3x1) vector
Definition: vector.h:52
Event sent by system, interface or game.
Definition: event.h:678
Definition: object.h:357