From f58918031c001a0159eaf8f18d4e451e70089d30 Mon Sep 17 00:00:00 2001 From: Programerus Date: Mon, 25 Jun 2012 16:37:03 +0200 Subject: Declarations for graphics/common --- src/graphics/common/lightning.h | 60 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) (limited to 'src/graphics/common/lightning.h') 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 -- cgit v1.2.3-1-g7c22