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& GetImage (int x, int y);
00049 uint8& GetFireLine (int x);
00050
00053 int possburn, addburn;
00055 int contburn;
00057 int smoothing;
00059 int extinguish;
00060
00062 bool single_flame_mode;
00064 int halfbase;
00065
00066 public:
00068 csProcFire ();
00070 virtual ~csProcFire ();
00071
00072 virtual bool PrepareAnim ();
00073
00075 virtual void Animate (csTicks current_time);
00076
00078 void SetSingleFlame(bool enable, int halfflame)
00079 { single_flame_mode = enable; halfbase = halfflame; }
00081 bool GetSingleFlame() const {return single_flame_mode;}
00082 };
00083
00084 #endif // __PROCFIRETEX_H__
00085