Diffstat (limited to 'noncore/games/sfcave/sfcave.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/games/sfcave/sfcave.cpp | 46 |
1 files changed, 11 insertions, 35 deletions
diff --git a/noncore/games/sfcave/sfcave.cpp b/noncore/games/sfcave/sfcave.cpp index 9b30fe6..5dca427 100644 --- a/noncore/games/sfcave/sfcave.cpp +++ b/noncore/games/sfcave/sfcave.cpp | |||
@@ -1,35 +1,33 @@ | |||
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | #include <math.h> | 3 | #include <math.h> |
4 | #include <time.h> | 4 | #include <time.h> |
5 | 5 | ||
6 | #ifdef QWS | 6 | #include <opie2/oapplicationfactory.h> |
7 | #include <qpe/qpeapplication.h> | ||
8 | #include <qpe/config.h> | 7 | #include <qpe/config.h> |
9 | #else | 8 | |
10 | #include <qapplication.h> | 9 | #include <qapplication.h> |
11 | #endif | ||
12 | #include <qdir.h> | 10 | #include <qdir.h> |
13 | 11 | ||
14 | #include "helpwindow.h" | 12 | #include "helpwindow.h" |
15 | #include "sfcave.h" | 13 | #include "sfcave.h" |
16 | 14 | ||
17 | #define CAPTION "SFCave 1.13 by AndyQ" | 15 | #define CAPTION "SFCave 1.13 by AndyQ" |
18 | 16 | ||
19 | #define UP_THRUST 0.6 | 17 | #define UP_THRUST 0.6 |
20 | #define NO_THRUST 0.8 | 18 | #define NO_THRUST 0.8 |
21 | #define MAX_DOWN_THRUST 4.0 | 19 | #define MAX_DOWN_THRUST 4.0 |
22 | #define MAX_UP_THRUST -3.5 | 20 | #define MAX_UP_THRUST -3.5 |
23 | 21 | ||
24 | // States | 22 | // States |
25 | #define STATE_BOSS 0 | 23 | #define STATE_BOSS 0 |
26 | #define STATE_RUNNING 1 | 24 | #define STATE_RUNNING 1 |
27 | #define STATE_CRASHING 2 | 25 | #define STATE_CRASHING 2 |
28 | #define STATE_CRASHED 3 | 26 | #define STATE_CRASHED 3 |
29 | #define STATE_NEWGAME 4 | 27 | #define STATE_NEWGAME 4 |
30 | #define STATE_MENU 5 | 28 | #define STATE_MENU 5 |
31 | #define STATE_REPLAY 6 | 29 | #define STATE_REPLAY 6 |
32 | 30 | ||
33 | // Menus | 31 | // Menus |
34 | #define MENU_MAIN_MENU 0 | 32 | #define MENU_MAIN_MENU 0 |
35 | #define MENU_OPTIONS_MENU 1 | 33 | #define MENU_OPTIONS_MENU 1 |
@@ -111,129 +109,107 @@ int SFCave::flyEasyScores[7][3] = { { 0, 10, 5 }, | |||
111 | { 50, 70, -2 }, | 109 | { 50, 70, -2 }, |
112 | { 70, 300, -5 }, | 110 | { 70, 300, -5 }, |
113 | { -1, -1, -1 } }; | 111 | { -1, -1, -1 } }; |
114 | int SFCave::flyNormalScores[7][3] = { { 0, 10, 5 }, | 112 | int SFCave::flyNormalScores[7][3] = { { 0, 10, 5 }, |
115 | { 10, 20, 3 }, | 113 | { 10, 20, 3 }, |
116 | { 20, 30, 2 }, | 114 | { 20, 30, 2 }, |
117 | { 30, 40, 1 }, | 115 | { 30, 40, 1 }, |
118 | { 50, 70, -2 }, | 116 | { 50, 70, -2 }, |
119 | { 70, 300, -5 }, | 117 | { 70, 300, -5 }, |
120 | { -1, -1, -1 } }; | 118 | { -1, -1, -1 } }; |
121 | int SFCave::flyHardScores[7][3] = { { 0, 20, 5 }, | 119 | int SFCave::flyHardScores[7][3] = { { 0, 20, 5 }, |
122 | { 20, 40, 3 }, | 120 | { 20, 40, 3 }, |
123 | { 40, 100, 1 }, | 121 | { 40, 100, 1 }, |
124 | { 100, 150, -2 }, | 122 | { 100, 150, -2 }, |
125 | { 150, 300, -5 }, | 123 | { 150, 300, -5 }, |
126 | { -1, -1, -1 } }; | 124 | { -1, -1, -1 } }; |
127 | 125 | ||
128 | int SFCave::initialGateGaps[] = { 75, 50, 25 }; | 126 | int SFCave::initialGateGaps[] = { 75, 50, 25 }; |
129 | 127 | ||
130 | 128 | ||
131 | #define FLYSCORES( x, y ) (*(flyScores + ((x)*3) + y)) | 129 | #define FLYSCORES( x, y ) (*(flyScores + ((x)*3) + y)) |
132 | bool movel; | 130 | bool movel; |
133 | 131 | ||
134 | 132 | ||
135 | int main( int argc, char *argv[] ) | 133 | OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<SFCave> ) |
136 | { | ||
137 | movel = true; | ||
138 | #ifdef QWS | ||
139 | QPEApplication a( argc, argv ); | ||
140 | #else | ||
141 | QApplication a( argc, argv ); | ||
142 | #endif | ||
143 | 134 | ||
144 | int speed = 3; | 135 | SFCave :: SFCave( QWidget *w, const char *name, WFlags fl ) |
145 | for ( int i = 0 ; i < argc ; ++i ) | 136 | : QMainWindow( w, name, fl ) |
146 | { | ||
147 | if ( strcmp( argv[i], "-s" ) == 0 ) | ||
148 | { | ||
149 | if ( i+1 < argc ) | ||
150 | speed = atoi( argv[i+1] ); | ||
151 | } | ||
152 | } | ||
153 | 137 | ||
154 | SFCave app( speed ); | 138 | { |
155 | a.setMainWidget( &app ); | 139 | showMaximized(); |
156 | app.show(); | 140 | movel = true; |
157 | app.start(); | 141 | int spd = 3; |
158 | a.exec(); | ||
159 | } | ||
160 | 142 | ||
161 | SFCave :: SFCave( int spd, QWidget *w, char *name ) | ||
162 | : QMainWindow( w, name ) | ||
163 | 143 | ||
164 | { | ||
165 | replayIt = 0; | 144 | replayIt = 0; |
166 | #ifdef QWS | ||
167 | showMaximized(); | ||
168 | #else | ||
169 | resize( 240, 284 ); | ||
170 | #endif | ||
171 | 145 | ||
172 | replayFile = QDir::home().path(); | 146 | replayFile = QDir::home().path(); |
173 | replayFile += "/sfcave.replay"; | 147 | replayFile += "/sfcave.replay"; |
174 | printf( "%s\n", (const char *)replayFile ); | 148 | printf( "%s\n", (const char *)replayFile ); |
175 | 149 | ||
176 | sWidth = width(); | 150 | sWidth = width(); |
177 | sHeight = height(); | 151 | sHeight = height(); |
178 | segSize = sWidth/(MAPSIZE-1)+1; | 152 | segSize = sWidth/(MAPSIZE-1)+1; |
179 | 153 | ||
180 | currentMenuNr = 0; | 154 | currentMenuNr = 0; |
181 | currentGameType = 0; | 155 | currentGameType = 0; |
182 | currentGameDifficulty = 0; | 156 | currentGameDifficulty = 0; |
183 | 157 | ||
184 | setCaption( CAPTION ); | 158 | setCaption( CAPTION ); |
185 | showScoreZones = false; | 159 | showScoreZones = false; |
186 | 160 | ||
187 | #ifdef QWS | 161 | #ifdef QWS |
188 | Config cfg( "sfcave" ); | 162 | Config cfg( "sfcave" ); |
189 | cfg.setGroup( "settings" ); | 163 | cfg.setGroup( "settings" ); |
190 | QString key = "highScore_"; | 164 | QString key = "highScore_"; |
191 | 165 | ||
192 | for ( int i = 0 ; i < 3 ; ++i ) | 166 | for ( int i = 0 ; i < 3 ; ++i ) |
193 | { | 167 | { |
194 | for ( int j = 0 ; j < 3 ; ++j ) | 168 | for ( int j = 0 ; j < 3 ; ++j ) |
195 | highestScore[i][j] = cfg.readNumEntry( key + gameTypes[i] + "_" + dificultyOption[j], 0 ); | 169 | highestScore[i][j] = cfg.readNumEntry( key + gameTypes[i] + "_" + dificultyOption[j], 0 ); |
196 | } | 170 | } |
197 | 171 | ||
198 | currentGameType = cfg.readNumEntry( "gameType", 0 ); | 172 | currentGameType = cfg.readNumEntry( "gameType", 0 ); |
199 | currentGameDifficulty = cfg.readNumEntry( "difficulty", 0 ); | 173 | currentGameDifficulty = cfg.readNumEntry( "difficulty", 0 ); |
200 | #endif | 174 | #endif |
201 | speed = spd; // Change to 2 for PC | 175 | speed = spd; // Change to 2 for PC |
202 | press = false; | 176 | press = false; |
203 | showEyeCandy = false; | 177 | showEyeCandy = false; |
204 | 178 | ||
205 | offscreen = new QPixmap( sWidth, sHeight ); | 179 | offscreen = new QPixmap( sWidth, sHeight ); |
206 | offscreen->fill( Qt::black ); | 180 | offscreen->fill( Qt::black ); |
207 | 181 | ||
208 | // setUp(); | 182 | // setUp(); |
209 | crashLineLength = -1; | 183 | crashLineLength = -1; |
210 | state = STATE_MENU; | 184 | state = STATE_MENU; |
211 | prevState = STATE_MENU; | 185 | prevState = STATE_MENU; |
212 | 186 | ||
213 | gameTimer = new QTimer( this, "game timer" ); | 187 | gameTimer = new QTimer( this, "game timer" ); |
214 | connect( gameTimer, SIGNAL( timeout() ), | 188 | connect( gameTimer, SIGNAL( timeout() ), |
215 | this, SLOT( run() ) ); | 189 | this, SLOT( run() ) ); |
190 | |||
191 | QTimer::singleShot(0, this, SLOT(start())); | ||
216 | } | 192 | } |
217 | 193 | ||
218 | SFCave :: ~SFCave() | 194 | SFCave :: ~SFCave() |
219 | { | 195 | { |
220 | } | 196 | } |
221 | 197 | ||
222 | void SFCave :: start() | 198 | void SFCave :: start() |
223 | { | 199 | { |
224 | gameTimer->start( 10 ); | 200 | gameTimer->start( 10 ); |
225 | 201 | ||
226 | } | 202 | } |
227 | 203 | ||
228 | void SFCave :: setSeed( int seed ) | 204 | void SFCave :: setSeed( int seed ) |
229 | { | 205 | { |
230 | if ( seed == -1 ) | 206 | if ( seed == -1 ) |
231 | currentSeed = ((unsigned long) time((time_t *) NULL)); | 207 | currentSeed = ((unsigned long) time((time_t *) NULL)); |
232 | else | 208 | else |
233 | currentSeed = seed; | 209 | currentSeed = seed; |
234 | PutSeed( currentSeed ); | 210 | PutSeed( currentSeed ); |
235 | } | 211 | } |
236 | 212 | ||
237 | int SFCave :: nextInt( int range ) | 213 | int SFCave :: nextInt( int range ) |
238 | { | 214 | { |
239 | int val = (int)(Random( ) * range); | 215 | int val = (int)(Random( ) * range); |