~ubuntu-branches/debian/sid/astromenace/sid

« back to all changes in this revision

Viewing changes to AstroMenaceSource/Object3D/SpaceObject/SpaceObject.h

  • Committer: Package Import Robot
  • Author(s): Boris Pek
  • Date: 2013-04-09 02:04:25 UTC
  • Revision ID: package-import@ubuntu.com-20130409020425-a7fl9xk4diamw6di
Tags: upstream-1.3.1+repack
Import upstream version 1.3.1+repack

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/************************************************************************************
 
2
 
 
3
        AstroMenace (Hardcore 3D space shooter with spaceship upgrade possibilities)
 
4
        Copyright © 2006-2012 Michael Kurinnoy, Viewizard
 
5
 
 
6
 
 
7
        AstroMenace is free software: you can redistribute it and/or modify
 
8
        it under the terms of the GNU General Public License as published by
 
9
        the Free Software Foundation, either version 3 of the License, or
 
10
        (at your option) any later version.
 
11
 
 
12
        AstroMenace is distributed in the hope that it will be useful,
 
13
        but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
15
        GNU General Public License for more details.
 
16
 
 
17
        You should have received a copy of the GNU General Public License
 
18
        along with AstroMenace. If not, see <http://www.gnu.org/licenses/>.
 
19
 
 
20
 
 
21
        Web Site: http://www.viewizard.com/
 
22
        Project: http://sourceforge.net/projects/openastromenace/
 
23
        E-mail: viewizard@viewizard.com
 
24
 
 
25
*************************************************************************************/
 
26
 
 
27
 
 
28
#ifndef SPACEOBJECT_H
 
29
#define SPACEOBJECT_H
 
30
 
 
31
 
 
32
#include "../Object3D.h"
 
33
#include "../Explosion/SpaceExplosion/SpaceExplosion.h"
 
34
 
 
35
 
 
36
//-----------------------------------------------------------------------------
 
37
// Класс CSpaceObject
 
38
//-----------------------------------------------------------------------------
 
39
class CSpaceObject : public CObject3D
 
40
{
 
41
public:
 
42
 
 
43
        // базовые конструктор и деструктор объекта
 
44
        CSpaceObject();
 
45
        virtual ~CSpaceObject();
 
46
 
 
47
        // Обновление данных объектa
 
48
        virtual bool    Update(float Time);
 
49
        // Установка положения объекта
 
50
        virtual void    SetLocation(VECTOR3D NewLocation);
 
51
        // Установка углов поворота объекта
 
52
        virtual void    SetRotation(VECTOR3D NewRotation);
 
53
 
 
54
        // скорость
 
55
        float   Speed;
 
56
        VECTOR3D        RotationSpeed;
 
57
        VECTOR3D        Velocity;
 
58
 
 
59
        // последнее положение камеры нужно для планет
 
60
        VECTOR3D        LastCameraPoint;
 
61
 
 
62
        // кол-во эффектов
 
63
        int                             GFXQuantity;
 
64
        // эффекты
 
65
        VECTOR3D                *GFXLocation;
 
66
        eParticleSystem **GFX;
 
67
 
 
68
 
 
69
        // чтобы возрвать часть корабля босса пришельцев через время
 
70
        float BossPartCountDown;
 
71
 
 
72
 
 
73
 
 
74
        // для собственного списка
 
75
        CSpaceObject* Next;
 
76
        CSpaceObject* Prev;
 
77
 
 
78
};
 
79
 
 
80
 
 
81
// установка эффекта, если нужно
 
82
void SetSpaceObjectGFX(eParticleSystem *ParticleSystem, int GFXType);
 
83
 
 
84
 
 
85
 
 
86
//-----------------------------------------------------------------------------
 
87
// Менеджер SpaceObject, дополнительный
 
88
//-----------------------------------------------------------------------------
 
89
 
 
90
// Включаем в список
 
91
void    AttachSpaceObject(CSpaceObject* SpaceObject);
 
92
// Исключаем из списка
 
93
void    DetachSpaceObject(CSpaceObject* SpaceObject);
 
94
// Проверяем все объекты, обновляем данные
 
95
void    UpdateAllSpaceObject(float Time);
 
96
// Прорисовываем все объекты
 
97
void    DrawAllSpaceObject(bool VertexOnlyPass, unsigned int ShadowMap);
 
98
int     DrawAllSpaceObjectCount(int DrawOnlyType);
 
99
// Удаляем все объекты в списке
 
100
void    ReleaseAllSpaceObject();
 
101
 
 
102
 
 
103
 
 
104
 
 
105
 
 
106
#endif // SPACEOBJECT_H