00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CS_PROCFIRETEX_H__
00021 #define __CS_PROCFIRETEX_H__
00022
00023 #include "csutil/cscolor.h"
00024 #include "cstool/proctex.h"
00025
00029 class csProcFire : public csProcTexture
00030 {
00031 private:
00033 unsigned char* palette;
00034 int* palette_idx;
00036 int palsize;
00037
00039 uint8 *fireline;
00041 uint8 *image;
00042
00044 void MakePalette (int max);
00046 void SetHSI (csColor& col, float H, float S, float I);
00048 uint8& GetFireLine (int x);
00049
00052 int possburn, addburn;
00054 int contburn;
00056 int smoothing;
00058 int extinguish;
00059
00061 bool single_flame_mode;
00063 int halfbase;
00064
00065 public:
00067 csProcFire ();
00069 virtual ~csProcFire ();
00070
00071 virtual bool PrepareAnim ();
00072
00074 virtual void Animate (csTicks current_time);
00075
00077 void SetSingleFlame(bool enable, int halfflame)
00078 { single_flame_mode = enable; halfbase = halfflame; }
00080 bool GetSingleFlame() const {return single_flame_mode;}
00081 };
00082
00083 #endif // __CS_PROCFIRETEX_H__
00084