cosmetix
[k8-i-v-a-n.git] / src / game / dungeon.h
blob6d8a09953fdcdba30dfc98fb1aa6ae78bd8db874
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
12 #ifndef __DUNGEON_H__
13 #define __DUNGEON_H__
15 #include "ivancommon.h"
17 #include "v2.h"
20 class level;
21 class outputfile;
22 class inputfile;
23 class dungeonscript;
24 class levelscript;
25 class festring;
28 class dungeon {
29 public:
30 dungeon ();
31 dungeon (int Index);
32 virtual ~dungeon ();
34 truth PrepareLevel (int Index, truth Visual=true); // returns whether the level has been visited before
35 void SaveLevel (cfestring &SaveName, int Number, truth DeleteAfterwards=true);
36 level *LoadLevel (cfestring &SaveName, int Number);
37 inline level *GetLevel (int I) const { return Level[I]; }
38 int GetLevels () const;
39 void Save (outputfile &SaveFile) const;
40 void Load (inputfile &SaveFile);
41 inline void SetIndex (int What) { Index = What; }
42 inline int GetIndex () const { return Index; }
43 const levelscript *GetLevelScript (int I);
44 v2 GetWorldMapPos () { return WorldMapPos; }
45 inline void SetWorldMapPos (v2 What) { WorldMapPos = What; }
46 festring GetLevelDescription (int I);
47 festring GetShortLevelDescription (int I);
48 level *LoadLevel (inputfile &SaveFile, int Number);
49 inline truth IsGenerated (int I) const { return Generated[I]; }
50 inline void SetIsGenerated (int I, truth What) { Generated[I] = What; }
51 int GetLevelTeleportDestination (int From) const;
53 private:
54 void Initialize ();
56 private:
57 const dungeonscript *DungeonScript;
58 level **Level;
59 int Index;
60 truth *Generated;
61 v2 WorldMapPos;
65 outputfile &operator << (outputfile &SaveFile, const dungeon *Dungeon);
66 inputfile &operator >> (inputfile &SaveFile, dungeon *&Dungeon);
69 #endif