1 /*
2 Copyright (C) 2004-2011 Parallel Realities
3 Copyright (C) 2011-2015 Perpendicular Dimensions
4 
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 
14 See the GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19 
20 */
21 
22 class Game {
23 
24 	private:
25 
26 		int objectiveCheckPointX, objectiveCheckPointY;
27 
28 	public:
29 
30 		char mapName[50];
31 		char stageName[50];
32 
33 		int gore, skill, soundVol, musicVol, output, brightness, autoSaveSlot, autoSave;
34 
35 		int score, stagesCleared;
36 		int totalHours, totalMinutes, totalSeconds;
37 		int currentMissionHours, currentMissionMinutes, currentMissionSeconds;
38 		int totalEnemiesDefeated, totalItemsCollected, totalBonusesCollected;
39 		int currentMissionEnemiesDefeated, currentMissionItemsCollected;
40 		int totalObjectivesCompleted, totalMIAsRescued;
41 
42 		unsigned char currentWeapon;
43 		unsigned int bulletsFired[5], bulletsHit[5];
44 
45 		int checkPointX, checkPointY;
46 		int teleportPointX, teleportPointY;
47 
48 		bool hasAquaLung, hasJetPack, continueFromCheckPoint;
49 
50 		int lastComboTime;
51 		unsigned char currentComboHits, maxComboHits;
52 
53 		unsigned int missionOverReason;
54 		unsigned long missionOver;
55 
56 		unsigned int continuesUsed;
57 		unsigned int levelsStarted;
58 		unsigned int escapes;
59 
60 		int canContinue;
61 
62 		Game();
63 		void clear();
64 		void destroy();
65 		void incrementMissionTime();
66 		void setCheckPoint(float x, float y);
67 		void getCheckPoint(float *x, float *y) const;
68 		void setObjectiveCheckPoint();
69 		void useObjectiveCheckPoint();
70 		void doCombo();
71 		void incBulletsFired();
72 		void incBulletsHit();
73 		int getWeaponAccuracy(int weapon);
74 		int getTotalBulletsFired() const;
75 		int getTotalAccuracy();
76 		int getMostUsedWeapon();
77 		void totalUpStats();
78 		void setStageName(const char *name);
79 		void setMapName(const char *name);
80 		void setMissionOver(int reason);
81 		void resetMissionOver();
82 
83 };
84