moved almost all hardcoded constants to "define.dat"
[k8-i-v-a-n.git] / src / game / smoke.h
blobef59f0305a0b1bfe0f096084eccfe8ce37af9b7a
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 "ivancommon.h"
18 #include <vector>
20 #include "entity.h"
21 #include "v2.h"
23 class gas;
24 class lsquare;
25 class bitmap;
26 class inputfile;
27 class outputfile;
29 class smoke : public entity
31 public:
32 /* Come To The Dark Side */
33 smoke* Next;
34 public:
35 smoke();
36 smoke(gas*, lsquare*);
37 virtual ~smoke();
39 virtual void Be();
40 virtual void Draw(blitdata&) const;
41 virtual square* GetSquareUnderEntity(int = 0) const;
42 void SetLSquareUnder(lsquare* What) { LSquareUnder = What; }
43 lsquare* GetLSquareUnder() const { return LSquareUnder; }
44 void Save(outputfile&) const;
45 void Load(inputfile&);
46 virtual truth IsOnGround() const { return true; }
47 void AddBreatheMessage() const;
48 void Merge(gas*);
49 cmaterial* GetGas() const { return Gas; }
50 truth IsDangerousToBreathe(ccharacter*) const;
51 truth IsScaryToBreathe(ccharacter*) const;
52 protected:
53 material* Gas;
54 std::vector<bitmap*> Picture;
55 lsquare* LSquareUnder;
56 alpha Alpha;
59 outputfile& operator<<(outputfile&, const smoke*);
60 inputfile& operator>>(inputfile&, smoke*&);
62 #endif