nonhumans separation
[k8-i-v-a-n.git] / src / game / smoke.h
blobec5d30cc8c90fee3ded1c5b12c580d42856e3d12
1 /*
3 * Iter Vehemens ad Necem (IVAN)
4 * Copyright (C) Timo Kiviluoto
5 * Released under the GNU General
6 * Public License
8 * See LICENSING which should be included
9 * along with this file for more details
13 #ifndef __SMOKE_H__
14 #define __SMOKE_H__
16 #include <vector>
18 #include "entity.h"
19 #include "v2.h"
21 class gas;
22 class lsquare;
23 class bitmap;
24 class inputfile;
25 class outputfile;
27 class smoke : public entity
29 public:
30 /* Come To The Dark Side */
31 smoke* Next;
32 public:
33 smoke();
34 smoke(gas*, lsquare*);
35 virtual ~smoke();
36 virtual void Be();
37 virtual void Draw(blitdata&) const;
38 virtual square* GetSquareUnderEntity(int = 0) const;
39 void SetLSquareUnder(lsquare* What) { LSquareUnder = What; }
40 lsquare* GetLSquareUnder() const { return LSquareUnder; }
41 void Save(outputfile&) const;
42 void Load(inputfile&);
43 virtual truth IsOnGround() const { return true; }
44 void AddBreatheMessage() const;
45 void Merge(gas*);
46 cmaterial* GetGas() const { return Gas; }
47 truth IsDangerousToBreathe(ccharacter*) const;
48 truth IsScaryToBreathe(ccharacter*) const;
49 protected:
50 material* Gas;
51 std::vector<bitmap*> Picture;
52 lsquare* LSquareUnder;
53 alpha Alpha;
56 outputfile& operator<<(outputfile&, const smoke*);
57 inputfile& operator>>(inputfile&, smoke*&);
59 #endif