| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
1 |
/* |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
2 |
Block Attack - Rise of the Blocks, SDL game, besed on Nintendo's Tetris Attack |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
3 |
Copyright (C) 2008 Poul Sander |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
4 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
5 |
This program is free software; you can redistribute it and/or modify |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
6 |
it under the terms of the GNU General Public License as published by |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
7 |
the Free Software Foundation; either version 2 of the License, or |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
8 |
(at your option) any later version. |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
9 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
10 |
This program is distributed in the hope that it will be useful, |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
11 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
12 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
13 |
GNU General Public License for more details. |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
14 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
15 |
You should have received a copy of the GNU General Public License |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
16 |
along with this program; if not, write to the Free Software |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
17 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
18 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
19 |
Poul Sander |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
20 |
R�vehjvej 36, V. 1111 |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
21 |
2800 Kgs. Lyngby |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
22 |
DENMARK |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
23 |
blockattack@poulsander.com |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
24 |
http://blockattack.sf.net |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
25 |
*/ |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
26 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
27 |
/* |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
28 |
*This is the common.h |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
29 |
*It contains some basic functions that nearly all multiplatform games are going |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
30 |
*to need. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
31 |
*/ |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
32 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
33 |
#ifndef _COMMON_H |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
34 |
#define _COMMON_H |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
35 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
36 |
/* |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
37 |
*Files will be saved in: |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
38 |
* HOME/.gamesaves/"+GAMENAME (unix) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
39 |
*or DOCUMENTS/My Games/GAMENAME (Windows) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
40 |
*/ |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
41 |
#define GAMENAME "blockattack" |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
42 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
43 |
#include <string> |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
44 |
#include <iostream> |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
45 |
#include <fstream> |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
46 |
#include <map> |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
47 |
#include <stdlib.h> |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
48 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
49 |
using namespace std; |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
50 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
51 |
struct commonTime{ |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
52 |
unsigned int days; |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
53 |
unsigned int hours; |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
54 |
unsigned int minutes; |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
55 |
unsigned int seconds; |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
56 |
}; |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
57 |
|
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
58 |
string itoa(int num); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
59 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
60 |
string getPathToSaveFiles(); |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
61 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
62 |
commonTime getTotalTime(); |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
63 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
64 |
commonTime addTotalTime(commonTime toAdd); |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
65 |
|
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
66 |
#define MAX_VAR_LENGTH 1024 |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
67 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
68 |
/*This is the Config class it is a map to hold config variables. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
69 |
*It is inspired by Quake 3's CVAR system although a lot simpler. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
70 |
*All variables have keys "varName" that is used to access a variable. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
71 |
* |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
72 |
*This class is a singleton |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
73 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
74 |
class Config |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
75 |
{ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
76 |
private: |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
77 |
map<string,string> configMap; |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
78 |
|
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
79 |
static Config *instance; |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
80 |
|
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
81 |
void load(); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
82 |
protected: |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
83 |
|
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
84 |
Config(); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
85 |
|
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
86 |
|
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
87 |
public: |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
88 |
/*Config is a singleton. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
89 |
*It is accessed like this: |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
90 |
*Config::getInstance()->method2call(paramters); |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
91 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
92 |
static Config* getInstance(); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
93 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
94 |
/*save() |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
95 |
*forces the config to be written to disk. This will also happened if the |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
96 |
*program terminates normally. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
97 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
98 |
void save(); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
99 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
100 |
/*getString(varName) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
101 |
*Looks in the config file and returns the string that matches the key "varName" |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
102 |
*Returns an empty string if varName does not exist. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
103 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
104 |
string getString(string varName); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
105 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
106 |
/*getInt(varName) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
107 |
*Looks in the config file and returns the int that matches the key "varName" |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
108 |
*Returns "0" if varName does not exist or cannot be parsed. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
109 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
110 |
int getInt(string varName); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
111 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
112 |
/*getValue(varName) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
113 |
*Looks in the config file and returns the double that matches the key "varName" |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
114 |
*Returns "0.0" if varName does not exist or cannot be parsed. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
115 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
116 |
double getValue(string varName); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
117 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
118 |
/*setString(varName,content) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
119 |
*Sets the config variable with key "varName" to the value of "content" |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
120 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
121 |
void setString(string varName,string content); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
122 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
123 |
/*setInt(varName,content) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
124 |
*Sets the config variable with key "varName" to the value of "content" |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
125 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
126 |
void setInt(string varName,int content); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
127 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
128 |
/*setValue(varName,content) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
129 |
*Sets the config variable with key "varName" to the value of "content" |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
130 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
131 |
void setValue(string varName,double content); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
132 |
|
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
133 |
/*exists(varName) |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
134 |
*returns true if the key varName exists. This is used the first time 1.4.0 |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
135 |
*starts so that it can see that it has to import configs from an earlier |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
136 |
*version. |
| fcd5a134 |
sago007 |
2008-12-19 01:11 |
137 |
*/ |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
138 |
bool exists(string varName); |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
139 |
}; |
| 769a41a0 |
sago007 |
2008-09-24 12:54 |
140 |
|
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
141 |
#endif /* _COMMON_H */ |
| 89c4a3a6 |
sago007 |
2008-08-29 14:32 |
142 |
|
|
|
1970-01-01 00:00 |
143 |
|