-rw-r--r-- | noncore/games/sfcave/sfcave.cpp | 19 | ||||
-rw-r--r-- | noncore/games/sfcave/sfcave.h | 2 |
2 files changed, 11 insertions, 10 deletions
diff --git a/noncore/games/sfcave/sfcave.cpp b/noncore/games/sfcave/sfcave.cpp index d6d28b2..9b30fe6 100644 --- a/noncore/games/sfcave/sfcave.cpp +++ b/noncore/games/sfcave/sfcave.cpp | |||
@@ -115,32 +115,33 @@ int SFCave::flyNormalScores[7][3] = { { 0, 10, 5 }, | |||
115 | { 10, 20, 3 }, | 115 | { 10, 20, 3 }, |
116 | { 20, 30, 2 }, | 116 | { 20, 30, 2 }, |
117 | { 30, 40, 1 }, | 117 | { 30, 40, 1 }, |
118 | { 50, 70, -2 }, | 118 | { 50, 70, -2 }, |
119 | { 70, 300, -5 }, | 119 | { 70, 300, -5 }, |
120 | { -1, -1, -1 } }; | 120 | { -1, -1, -1 } }; |
121 | int SFCave::flyHardScores[7][3] = { { 0, 20, 5 }, | 121 | int SFCave::flyHardScores[7][3] = { { 0, 20, 5 }, |
122 | { 20, 40, 3 }, | 122 | { 20, 40, 3 }, |
123 | { 40, 100, 1 }, | 123 | { 40, 100, 1 }, |
124 | { 100, 150, -2 }, | 124 | { 100, 150, -2 }, |
125 | { 150, 300, -5 }, | 125 | { 150, 300, -5 }, |
126 | { -1, -1, -1 } }; | 126 | { -1, -1, -1 } }; |
127 | 127 | ||
128 | int SFCave::initialGateGaps[] = { 75, 50, 25 }; | 128 | int SFCave::initialGateGaps[] = { 75, 50, 25 }; |
129 | 129 | ||
130 | 130 | ||
131 | #define FLYSCORES( x, y ) (*(flyScores + ((x)*3) + y)) | ||
131 | bool movel; | 132 | bool movel; |
132 | 133 | ||
133 | 134 | ||
134 | int main( int argc, char *argv[] ) | 135 | int main( int argc, char *argv[] ) |
135 | { | 136 | { |
136 | movel = true; | 137 | movel = true; |
137 | #ifdef QWS | 138 | #ifdef QWS |
138 | QPEApplication a( argc, argv ); | 139 | QPEApplication a( argc, argv ); |
139 | #else | 140 | #else |
140 | QApplication a( argc, argv ); | 141 | QApplication a( argc, argv ); |
141 | #endif | 142 | #endif |
142 | 143 | ||
143 | int speed = 3; | 144 | int speed = 3; |
144 | for ( int i = 0 ; i < argc ; ++i ) | 145 | for ( int i = 0 ; i < argc ; ++i ) |
145 | { | 146 | { |
146 | if ( strcmp( argv[i], "-s" ) == 0 ) | 147 | if ( strcmp( argv[i], "-s" ) == 0 ) |
@@ -269,37 +270,37 @@ void SFCave :: setUp() | |||
269 | { | 270 | { |
270 | thrustUp = UpThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; | 271 | thrustUp = UpThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; |
271 | noThrust = DownThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; | 272 | noThrust = DownThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; |
272 | maxUpThrust = MaxUpThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; | 273 | maxUpThrust = MaxUpThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; |
273 | maxDownThrust = MaxDownThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; | 274 | maxDownThrust = MaxDownThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; |
274 | gateDistance = 75; | 275 | gateDistance = 75; |
275 | nextGate = nextInt( 50 ) + gateDistance; | 276 | nextGate = nextInt( 50 ) + gateDistance; |
276 | } | 277 | } |
277 | else | 278 | else |
278 | { | 279 | { |
279 | thrustUp = UpThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; | 280 | thrustUp = UpThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; |
280 | noThrust = DownThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; | 281 | noThrust = DownThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; |
281 | maxUpThrust = MaxUpThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; | 282 | maxUpThrust = MaxUpThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; |
282 | maxDownThrust = MaxDownThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; | 283 | maxDownThrust = MaxDownThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; |
283 | 284 | ||
284 | if ( currentGameDifficulty == DIFICULTY_EASY ) | 285 | if ( currentGameDifficulty == DIFICULTY_EASY ) |
285 | flyScores = flyEasyScores; | 286 | flyScores = (int*)flyEasyScores; |
286 | else if ( currentGameDifficulty == DIFICULTY_NORMAL ) | 287 | else if ( currentGameDifficulty == DIFICULTY_NORMAL ) |
287 | flyScores = flyNormalScores; | 288 | flyScores = (int*)flyNormalScores; |
288 | else | 289 | else |
289 | flyScores = flyHardScores; | 290 | flyScores = (int*)flyHardScores; |
290 | } | 291 | } |
291 | 292 | ||
292 | crashLineLength = 0; | 293 | crashLineLength = 0; |
293 | lastGateBottomY = 0; | 294 | lastGateBottomY = 0; |
294 | 295 | ||
295 | user.setRect( 50, sWidth/2, 4, 4 ); | 296 | user.setRect( 50, sWidth/2, 4, 4 ); |
296 | 297 | ||
297 | blockWidth = 20; | 298 | blockWidth = 20; |
298 | blockHeight = 70; | 299 | blockHeight = 70; |
299 | gapHeight = initialGateGaps[currentGameDifficulty]; | 300 | gapHeight = initialGateGaps[currentGameDifficulty]; |
300 | 301 | ||
301 | for ( int i = 0 ; i < TRAILSIZE ; ++i ) | 302 | for ( int i = 0 ; i < TRAILSIZE ; ++i ) |
302 | { | 303 | { |
303 | trail[i].setX( -1 ); | 304 | trail[i].setX( -1 ); |
304 | trail[i].setY( 0 ); | 305 | trail[i].setY( 0 ); |
305 | } | 306 | } |
@@ -468,37 +469,37 @@ void SFCave :: handleGameFly() | |||
468 | int diff = mapBottom[10] - user.y(); | 469 | int diff = mapBottom[10] - user.y(); |
469 | 470 | ||
470 | if ( nrFrames % 4 == 0 ) | 471 | if ( nrFrames % 4 == 0 ) |
471 | { | 472 | { |
472 | if ( !startScoring ) | 473 | if ( !startScoring ) |
473 | { | 474 | { |
474 | if ( diff < 40 ) | 475 | if ( diff < 40 ) |
475 | startScoring = true; | 476 | startScoring = true; |
476 | } | 477 | } |
477 | 478 | ||
478 | if ( startScoring ) | 479 | if ( startScoring ) |
479 | { | 480 | { |
480 | // Update score | 481 | // Update score |
481 | // get distance between landscape and ship | 482 | // get distance between landscape and ship |
482 | 483 | ||
483 | // the closer the difference is to 0 means more points | 484 | // the closer the difference is to 0 means more points |
484 | for ( int i = 0 ; i < 10 && flyScores[i][0] != -1 ; ++i ) | 485 | for ( int i = 0 ; i < 10 && FLYSCORES( i, 0 ) != -1 ; ++i ) |
485 | { | 486 | { |
486 | if ( flyScores[i][0] <= diff && flyScores[i][1] > diff ) | 487 | if ( FLYSCORES( i, 0 ) <= diff && FLYSCORES(i, 1 ) > diff ) |
487 | { | 488 | { |
488 | score += flyScores[i][2]; | 489 | score += FLYSCORES( i, 2 ); |
489 | break; | 490 | break; |
490 | } | 491 | } |
491 | } | 492 | } |
492 | } | 493 | } |
493 | } | 494 | } |
494 | 495 | ||
495 | if ( checkFlyGameCollision() ) | 496 | if ( checkFlyGameCollision() ) |
496 | { | 497 | { |
497 | if ( score > highestScore[currentGameType][currentGameDifficulty] ) | 498 | if ( score > highestScore[currentGameType][currentGameDifficulty] ) |
498 | { | 499 | { |
499 | highestScore[currentGameType][currentGameDifficulty] = score; | 500 | highestScore[currentGameType][currentGameDifficulty] = score; |
500 | saveScore(); | 501 | saveScore(); |
501 | } | 502 | } |
502 | state = STATE_CRASHING; | 503 | state = STATE_CRASHING; |
503 | } | 504 | } |
504 | else | 505 | else |
@@ -681,38 +682,38 @@ void SFCave :: draw() | |||
681 | 682 | ||
682 | QPainter p( offscreen ); | 683 | QPainter p( offscreen ); |
683 | QFontMetrics fm = p.fontMetrics(); | 684 | QFontMetrics fm = p.fontMetrics(); |
684 | p.setPen( Qt::white ); | 685 | p.setPen( Qt::white ); |
685 | 686 | ||
686 | for ( int i = 0 ; i < MAPSIZE -3; ++i ) | 687 | for ( int i = 0 ; i < MAPSIZE -3; ++i ) |
687 | { | 688 | { |
688 | // Only display top landscape if not running FLY_GAME | 689 | // Only display top landscape if not running FLY_GAME |
689 | if ( CURRENT_GAME_TYPE != FLY_GAME ) | 690 | if ( CURRENT_GAME_TYPE != FLY_GAME ) |
690 | p.drawLine( (i*segSize) - (offset*speed), mapTop[i], ((i+1)*segSize)-(offset*speed), mapTop[i+1] ); | 691 | p.drawLine( (i*segSize) - (offset*speed), mapTop[i], ((i+1)*segSize)-(offset*speed), mapTop[i+1] ); |
691 | 692 | ||
692 | p.drawLine( (i*segSize) - (offset*speed), mapBottom[i], ((i+1)*segSize)-(offset*speed), mapBottom[i+1] ); | 693 | p.drawLine( (i*segSize) - (offset*speed), mapBottom[i], ((i+1)*segSize)-(offset*speed), mapBottom[i+1] ); |
693 | 694 | ||
694 | if ( CURRENT_GAME_TYPE == FLY_GAME && showScoreZones ) | 695 | if ( CURRENT_GAME_TYPE == FLY_GAME && showScoreZones ) |
695 | { | 696 | { |
696 | p.setPen( Qt::blue ); | 697 | p.setPen( Qt::blue ); |
697 | for ( int j = 1 ; j < 10 && flyScores[j][0] != -1 ; ++j ) | 698 | for ( int j = 1 ; j < 10 && FLYSCORES( j, 0 ) != -1 ; ++j ) |
698 | { | 699 | { |
699 | if ( flyScores[j][2] < 0 ) | 700 | if ( FLYSCORES( j, 2 ) < 0 ) |
700 | p.setPen( Qt::red ); | 701 | p.setPen( Qt::red ); |
701 | 702 | ||
702 | p.drawLine( (i*segSize) - (offset*speed), mapBottom[i]-flyScores[j][0], ((i+1)*segSize)-(offset*speed), mapBottom[i+1]-flyScores[j][0] ); | 703 | p.drawLine( (i*segSize) - (offset*speed), mapBottom[i]-FLYSCORES( j, 0 ), ((i+1)*segSize)-(offset*speed), mapBottom[i+1]-FLYSCORES( j, 0 ) ); |
703 | } | 704 | } |
704 | 705 | ||
705 | p.setPen( Qt::white ); | 706 | p.setPen( Qt::white ); |
706 | } | 707 | } |
707 | } | 708 | } |
708 | 709 | ||
709 | // Uncomment this to show user segment (usful for checking collision boundary with landscape | 710 | // Uncomment this to show user segment (usful for checking collision boundary with landscape |
710 | // p.setPen( Qt::red ); | 711 | // p.setPen( Qt::red ); |
711 | // p.drawLine( (11*segSize) - (offset*speed), 0, ((11)*segSize)-(offset*speed), sHeight ); | 712 | // p.drawLine( (11*segSize) - (offset*speed), 0, ((11)*segSize)-(offset*speed), sHeight ); |
712 | // p.setPen( Qt::white ); | 713 | // p.setPen( Qt::white ); |
713 | 714 | ||
714 | // Draw user | 715 | // Draw user |
715 | p.drawRect( user ); | 716 | p.drawRect( user ); |
716 | 717 | ||
717 | // Draw trails | 718 | // Draw trails |
718 | for ( int i = 0 ; i < TRAILSIZE ; ++i ) | 719 | for ( int i = 0 ; i < TRAILSIZE ; ++i ) |
diff --git a/noncore/games/sfcave/sfcave.h b/noncore/games/sfcave/sfcave.h index f95558d..b1fe819 100644 --- a/noncore/games/sfcave/sfcave.h +++ b/noncore/games/sfcave/sfcave.h | |||
@@ -37,33 +37,33 @@ public: | |||
37 | int state; | 37 | int state; |
38 | int prevState; | 38 | int prevState; |
39 | int speed; | 39 | int speed; |
40 | int crashLineLength; | 40 | int crashLineLength; |
41 | bool startScoring; | 41 | bool startScoring; |
42 | bool showEyeCandy; | 42 | bool showEyeCandy; |
43 | 43 | ||
44 | static double UpThrustVals[3][3]; | 44 | static double UpThrustVals[3][3]; |
45 | static double DownThrustVals[3][3]; | 45 | static double DownThrustVals[3][3]; |
46 | static double MaxUpThrustVals[3][3]; | 46 | static double MaxUpThrustVals[3][3]; |
47 | static double MaxDownThrustVals[3][3]; | 47 | static double MaxDownThrustVals[3][3]; |
48 | static int initialGateGaps[]; | 48 | static int initialGateGaps[]; |
49 | 49 | ||
50 | static int flyEasyScores[7][3]; | 50 | static int flyEasyScores[7][3]; |
51 | static int flyNormalScores[7][3]; | 51 | static int flyNormalScores[7][3]; |
52 | static int flyHardScores[7][3]; | 52 | static int flyHardScores[7][3]; |
53 | int flyScores[7][3]; | 53 | int *flyScores; |
54 | 54 | ||
55 | 55 | ||
56 | double thrustUp; | 56 | double thrustUp; |
57 | double noThrust; | 57 | double noThrust; |
58 | double maxUpThrust; | 58 | double maxUpThrust; |
59 | double maxDownThrust; | 59 | double maxDownThrust; |
60 | 60 | ||
61 | int gateDistance; | 61 | int gateDistance; |
62 | int nextGate; | 62 | int nextGate; |
63 | int lastGateBottomY; | 63 | int lastGateBottomY; |
64 | 64 | ||
65 | static QString menuOptions[NR_MENUS][MAX_MENU_OPTIONS]; | 65 | static QString menuOptions[NR_MENUS][MAX_MENU_OPTIONS]; |
66 | int currentMenuNr; | 66 | int currentMenuNr; |
67 | static int nrMenuOptions[NR_MENUS]; | 67 | static int nrMenuOptions[NR_MENUS]; |
68 | static int currentMenuOption[NR_MENUS]; | 68 | static int currentMenuOption[NR_MENUS]; |
69 | 69 | ||