00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __PROCFIRETEX_H__
00021 #define __PROCFIRETEX_H__
00022
00023 #include "csutil/cscolor.h"
00024 #include "cstool/proctex.h"
00025
00029 class csProcFire : public csProcTexture
00030 {
00031 private:
00033 int *palette;
00035 int palsize;
00036
00038 uint8 *fireline;
00040 uint8 *image;
00041
00043 void MakePalette (int max);
00045 void SetHSI (csColor& col, float H, float S, float I);
00047 uint8& GetFireLine (int x);
00048
00051 int possburn, addburn;
00053 int contburn;
00055 int smoothing;
00057 int extinguish;
00058
00060 bool single_flame_mode;
00062 int halfbase;
00063
00064 public:
00066 csProcFire ();
00068 virtual ~csProcFire ();
00069
00070 virtual bool PrepareAnim ();
00071
00073 virtual void Animate (csTicks current_time);
00074
00076 void SetSingleFlame(bool enable, int halfflame)
00077 { single_flame_mode = enable; halfbase = halfflame; }
00079 bool GetSingleFlame() const {return single_flame_mode;}
00080 };
00081
00082 #endif // __PROCFIRETEX_H__
00083