diff options
author | Programerus <alcadeias95@gmail.com> | 2012-06-25 16:37:03 +0200 |
---|---|---|
committer | Programerus <alcadeias95@gmail.com> | 2012-06-25 16:37:03 +0200 |
commit | f58918031c001a0159eaf8f18d4e451e70089d30 (patch) | |
tree | 9b85fe09213b364d837fbd9aeefe3f63b9418f83 /src/graphics/common/lightning.h | |
parent | 3478978c21ddc905ceb01f5ffc9c22bbf19bc288 (diff) | |
download | colobot-f58918031c001a0159eaf8f18d4e451e70089d30.tar.gz colobot-f58918031c001a0159eaf8f18d4e451e70089d30.tar.bz2 colobot-f58918031c001a0159eaf8f18d4e451e70089d30.zip |
Declarations for graphics/common
Diffstat (limited to 'src/graphics/common/lightning.h')
-rw-r--r-- | src/graphics/common/lightning.h | 60 |
1 files changed, 59 insertions, 1 deletions
diff --git a/src/graphics/common/lightning.h b/src/graphics/common/lightning.h index a7fab45..2077954 100644 --- a/src/graphics/common/lightning.h +++ b/src/graphics/common/lightning.h @@ -19,9 +19,67 @@ #pragma once +#include "common/misc.h" +#include "common/struct.h" +#include "object/object.h" + + +class CInstanceManager; +class CSound; + namespace Gfx { -// TODO CLightning (aka CBlitz) +class CEngine; +class CTerrain; +class CCamera; + + +const float BLITZPARA = 200.0f; // radius of lightning protection +const short BLITZMAX = 50; + +enum BlitzPhase +{ + BPH_WAIT, + BPH_BLITZ, +}; + + +class CLightning +{ +public: + CLightning(CInstanceManager* iMan, CEngine* engine); + ~CLightning(); + + void Flush(); + bool EventProcess(const Event &event); + bool Create(float sleep, float delay, float magnetic); + bool GetStatus(float &sleep, float &delay, float &magnetic, float &progress); + bool SetStatus(float sleep, float delay, float magnetic, float progress); + void Draw(); + +protected: + bool EventFrame(const Event &event); + CObject* SearchObject(Math::Vector pos); + +protected: + CInstanceManager* m_iMan; + CEngine* m_engine; + CTerrain* m_terrain; + CCamera* m_camera; + CSound* m_sound; + + bool m_bBlitzExist; + float m_sleep; + float m_delay; + float m_magnetic; + BlitzPhase m_phase; + float m_time; + float m_speed; + float m_progress; + Math::Vector m_pos; + Math::Point m_shift[BLITZMAX]; + float m_width[BLITZMAX]; +}; }; // namespace Gfx |