00001
00002 #ifndef SMOKE_H
00003 #define SMOKE_H
00004
00005 #include "draw.h"
00006
00007
00008
00009 #define MAX_SMOKES 256
00010 #define RAND_SMOKE_SPINSTART (REAL)rand() / RAND_MAX
00011 #define RAND_SMOKE_SPINRATE (REAL)(rand() - (RAND_MAX >> 1)) / (RAND_MAX * 96)
00012
00013 typedef struct _SMOKE {
00014 REAL AgeStart, Age;
00015 REAL Spin, SpinRate;
00016 REAL GrowRate;
00017 VEC Pos, Dir;
00018 MAT Matrix;
00019 FACING_POLY Poly;
00020 long rgb;
00021
00022 struct _SMOKE *Prev;
00023 struct _SMOKE *Next;
00024 } SMOKE;
00025
00026
00027
00028 extern long InitSmoke(void);
00029 extern void KillSmoke(void);
00030 extern SMOKE *AllocSmoke(void);
00031 extern void FreeSmoke(SMOKE *smoke);
00032 extern long CreateSmoke(VEC *pos, VEC *dir, REAL size, REAL growrate, REAL age, REAL spinstart, REAL spinrate, long rgb);
00033 extern void ProcessSmoke(void);
00034 extern void DrawSmoke(void);
00035
00036
00037
00038 #endif