1
/************************************************************************************
3
AstroMenace (Hardcore 3D space shooter with spaceship upgrade possibilities)
4
Copyright © 2006-2012 Michael Kurinnoy, Viewizard
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.
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.
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/>.
21
Web Site: http://www.viewizard.com/
22
Project: http://sourceforge.net/projects/openastromenace/
23
E-mail: viewizard@viewizard.com
25
*************************************************************************************/
32
#include "../Object3D.h"
33
#include "../Explosion/SpaceExplosion/SpaceExplosion.h"
36
//-----------------------------------------------------------------------------
38
//-----------------------------------------------------------------------------
39
class CSpaceObject : public CObject3D
43
// базовые конструктор и деструктор объекта
45
virtual ~CSpaceObject();
47
// Обновление данных объектa
48
virtual bool Update(float Time);
49
// Установка положения объекта
50
virtual void SetLocation(VECTOR3D NewLocation);
51
// Установка углов поворота объекта
52
virtual void SetRotation(VECTOR3D NewRotation);
56
VECTOR3D RotationSpeed;
59
// последнее положение камеры нужно для планет
60
VECTOR3D LastCameraPoint;
65
VECTOR3D *GFXLocation;
66
eParticleSystem **GFX;
69
// чтобы возрвать часть корабля босса пришельцев через время
70
float BossPartCountDown;
74
// для собственного списка
81
// установка эффекта, если нужно
82
void SetSpaceObjectGFX(eParticleSystem *ParticleSystem, int GFXType);
86
//-----------------------------------------------------------------------------
87
// Менеджер SpaceObject, дополнительный
88
//-----------------------------------------------------------------------------
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();
106
#endif // SPACEOBJECT_H