2016-03-12 01:20:51 +01:00
|
|
|
/* Copyright (c) 2002-2012 Croteam Ltd.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of version 2 of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation
|
|
|
|
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License along
|
|
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
|
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
|
2016-03-11 14:57:17 +01:00
|
|
|
|
|
|
|
// type of emiters
|
|
|
|
enum CEmiterType {
|
|
|
|
ET_AIR_ELEMENTAL = 1,
|
|
|
|
ET_SUMMONER_STAFF,
|
|
|
|
ET_FIREWORKS01,
|
|
|
|
};
|
|
|
|
|
|
|
|
class DECL_DLL CEmittedParticle {
|
|
|
|
public:
|
|
|
|
FLOAT3D ep_vLastPos;
|
|
|
|
FLOAT3D ep_vPos;
|
|
|
|
FLOAT ep_fLastRot;
|
|
|
|
FLOAT ep_fRot;
|
|
|
|
FLOAT ep_fRotSpeed;
|
|
|
|
FLOAT3D ep_vSpeed; // speed added in each tick
|
|
|
|
COLOR ep_colLastColor;
|
|
|
|
COLOR ep_colColor;
|
|
|
|
FLOAT ep_tmEmitted;
|
|
|
|
FLOAT ep_tmLife;
|
|
|
|
FLOAT ep_fStretch;
|
|
|
|
|
|
|
|
/* Default constructor. */
|
|
|
|
CEmittedParticle(void);
|
|
|
|
void Read_t( CTStream &strm);
|
|
|
|
void Write_t( CTStream &strm);
|
|
|
|
};
|
|
|
|
|
|
|
|
class DECL_DLL CEmiter {
|
|
|
|
public:
|
|
|
|
enum CEmiterType em_etType;
|
|
|
|
BOOL em_bInitialized;
|
|
|
|
FLOAT em_tmStart;
|
|
|
|
FLOAT em_tmLife;
|
|
|
|
FLOAT3D em_vG;
|
|
|
|
COLOR em_colGlobal;
|
|
|
|
INDEX em_iGlobal;
|
|
|
|
CStaticStackArray<CEmittedParticle> em_aepParticles;
|
|
|
|
|
|
|
|
/* Default constructor. */
|
|
|
|
CEmiter(void);
|
|
|
|
void Initialize(CEntity *pen);
|
|
|
|
FLOAT3D GetGravity(CEntity *pen);
|
|
|
|
void RenderParticles(void);
|
|
|
|
void AnimateParticles(void);
|
|
|
|
void AddParticle(FLOAT3D vPos, FLOAT3D vSpeed, FLOAT fRot, FLOAT fRotSpeed,
|
|
|
|
FLOAT tmBirth, FLOAT tmLife, FLOAT fStretch, COLOR colColor);
|
|
|
|
void Read_t( CTStream &strm);
|
|
|
|
void Write_t( CTStream &strm);
|
|
|
|
};
|
|
|
|
|