1 /*
2 Copyright (C) 2004 Parallel Realities
3 
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 
13 See the GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18 
19 */
20 
21 class GameData {
22 
23 	private:
24 
25 		unsigned int maxDirectories, maxFiles;
26 
27 	public:
28 
29 		bool shownTitles;
30 
31 		int gamma, soundVolume, musicVolume, fullscreen;
32 
33 		char directorySearchPath[PATH_MAX];
34 
35 		List virusList;
36 		List directoryList;
37 		List particleList;
38 		List itemList;
39 
40 		char map[5][5];
41 
42 		Base base[4];
43 
44 		HighScore highScore[5][10];
45 
46 		int nightmareCount;
47 
48 		unsigned char skill;
49 
50 		int score;
51 		unsigned int activeViruses;
52 		unsigned int activeDirs;
53 		unsigned int level;
54 
55 		unsigned int virusesKilled;
56 		unsigned int roundVirusesKilled;
57 
58 		unsigned int filesLost;
59 		unsigned int roundFilesLost;
60 
61 		unsigned int dirsLost;
62 		unsigned int roundDirsLost;
63 
64 		unsigned int biggestChain;
65 		unsigned int roundBiggestChain;
66 
67 		float lastVirusKilled;
68 
69 		unsigned int currentChain;
70 
71 		float kernelPower;
72 		float threadStopTimer;
73 		unsigned char threadStops;
74 
75 		unsigned int roundItemsCollected;
76 
77 
78 	GameData();
79 	~GameData();
80 	void clear();
81 	void resetForNextRound();
82 	void destroy();
83 
84 	Directory *addDirectory(const char *name);
85 	void addVirus(Virus *virus);
86 	void addParticle(Particle *particle);
87 	void addItem(Item *item);
88 
89 	void removeEmptyDirectories();
90 
91 	Directory *getRandomDirectory(bool active);
92 	void buildActiveDirList(int amount);
93 
94 };
95