-rw-r--r-- | noncore/games/sfcave/sfcave.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/games/sfcave/sfcave.cpp b/noncore/games/sfcave/sfcave.cpp index 0160d34..929dc41 100644 --- a/noncore/games/sfcave/sfcave.cpp +++ b/noncore/games/sfcave/sfcave.cpp @@ -1,273 +1,273 @@ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #ifdef QWS #include <qpe/qpeapplication.h> #include <qpe/config.h> #else #include <qapplication.h> #endif #include <qdir.h> #include "helpwindow.h" #include "sfcave.h" -#define CAPTION "SFCave 1.10 by AndyQ" +#define CAPTION "SFCave 1.11 by AndyQ" #define UP_THRUST 0.6 #define NO_THRUST 0.8 #define MAX_DOWN_THRUST 4.0 #define MAX_UP_THRUST -3.5 // States #define STATE_BOSS 0 #define STATE_RUNNING 1 #define STATE_CRASHING 2 #define STATE_CRASHED 3 #define STATE_NEWGAME 4 #define STATE_MENU 5 #define STATE_REPLAY 6 // Menus #define MENU_MAIN_MENU 0 #define MENU_OPTIONS_MENU 1 #define MENU_REPLAY_MENU 2 // Main Menu Options #define MENU_START_GAME 0 #define MENU_REPLAY 1 #define MENU_OPTIONS 2 #define MENU_HELP 3 #define MENU_QUIT 4 // Option Menu Options #define MENU_GAME_TYPE 0 #define MENU_GAME_DIFFICULTY 1 #define MENU_CLEAR_HIGHSCORES 2 #define MENU_BACK 3 // Replay Menu Options #define MENU_REPLAY_START 0 #define MENU_REPLAY_LOAD 1 #define MENU_REPLAY_SAVE 2 #define MENU_REPLAY_BACK 3 #define NR_GAME_DIFFICULTIES 3 #define NR_GAME_TYPES 3 #define DIFICULTY_EASY 0 #define DIFICULTY_NORMAL 1 #define DIFICULTY_HARD 2 #define EASY "Easy" #define NORMAL "Normal" #define HARD "Hard" #define SFCAVE_GAME_TYPE 0 #define GATES_GAME_TYPE 1 #define FLY_GAME_TYPE 2 #define SFCAVE_GAME "SFCave" #define GATES_GAME "Gates" #define FLY_GAME "Fly" #define CURRENT_GAME_TYPE gameTypes[currentGameType] #define CURRENT_GAME_DIFFICULTY difficultyOption[currentGameDifficulty]; QString SFCave::dificultyOption[] = { EASY, NORMAL, HARD }; QString SFCave::gameTypes[] = { SFCAVE_GAME, GATES_GAME, FLY_GAME }; QString SFCave::menuOptions[NR_MENUS][MAX_MENU_OPTIONS] = { { "Start Game", "Replays", "Options", "Help", "Quit", "", "", "" }, { "Game Type - %s", "Game Difficulty - %s", "Clear High Scores for this game", "Back", "", "", "", "" }, { "Play Reply", "Load Replay", "Save Replay", "Back", "", "", "", "" } }; int SFCave::nrMenuOptions[NR_MENUS] = { 5, 4, 4 }; int SFCave ::currentMenuOption[NR_MENUS] = { 0, 0, 0 }; #define UP_THRUST 0.6 #define NO_THRUST 0.8 #define MAX_DOWN_THRUST 4.0 #define MAX_UP_THRUST -3.5 double SFCave::UpThrustVals[3][3] = {{ 0.6, 0.6, 0.6 }, // SFCave { 0.6, 0.6, 0.8 }, // Gates { 0.4, 0.7, 1.0 } }; // Fly double SFCave::DownThrustVals[3][3] = {{ 0.8, 0.8, 0.8 }, // SFCave { 0.8, 0.8, 1.0 }, // Gates { 0.4, 0.7, 1.0 } }; // Fly double SFCave::MaxUpThrustVals[3][3] = {{ -3.5, -3.5, -3.5 }, // SFCave { -3.5, -4.0, -5.0 }, // Gates { -3.5, -4.0, -5.0 } }; // Fly double SFCave::MaxDownThrustVals[3][3] = {{ 4.0, 4.0, 4.0 }, // SFCave { 4.0, 5.0, 5.5 }, // Gates { 3.5, 4.0, 5.0 } }; // Fly int SFCave::initialGateGaps[] = { 75, 50, 25 }; bool movel; int main( int argc, char *argv[] ) { movel = true; #ifdef QWS QPEApplication a( argc, argv ); #else QApplication a( argc, argv ); #endif int speed = 3; for ( int i = 0 ; i < argc ; ++i ) { if ( strcmp( argv[i], "-s" ) == 0 ) { if ( i+1 < argc ) speed = atoi( argv[i+1] ); } } SFCave app( speed ); a.setMainWidget( &app ); app.show(); app.start(); a.exec(); } SFCave :: SFCave( int spd, QWidget *w, char *name ) : QMainWindow( w, name ) { replayIt = 0; #ifdef QWS showMaximized(); #else resize( 240, 284 ); #endif replayFile = QDir::home().path(); replayFile += "/sfcave.replay"; printf( "%s\n", (const char *)replayFile ); sWidth = width(); sHeight = height(); segSize = sWidth/(MAPSIZE-1)+1; currentMenuNr = 0; currentGameType = 0; currentGameDifficulty = 0; setCaption( CAPTION ); showScoreZones = false; #ifdef QWS Config cfg( "sfcave" ); cfg.setGroup( "settings" ); QString key = "highScore_"; for ( int i = 0 ; i < 3 ; ++i ) { for ( int j = 0 ; j < 3 ; ++j ) highestScore[i][j] = cfg.readNumEntry( key + gameTypes[i] + "_" + dificultyOption[j], 0 ); } currentGameType = cfg.readNumEntry( "gameType", 0 ); currentGameDifficulty = cfg.readNumEntry( "difficulty", 0 ); #endif speed = spd; // Change to 2 for PC press = false; offscreen = new QPixmap( sWidth, sHeight ); offscreen->fill( Qt::black ); // setUp(); crashLineLength = -1; state = STATE_MENU; prevState = STATE_MENU; gameTimer = new QTimer( this, "game timer" ); connect( gameTimer, SIGNAL( timeout() ), this, SLOT( run() ) ); } SFCave :: ~SFCave() { } void SFCave :: start() { gameTimer->start( 10 ); } void SFCave :: setSeed( int seed ) { if ( seed == -1 ) currentSeed = ((unsigned long) time((time_t *) NULL)); else currentSeed = seed; PutSeed( currentSeed ); } int SFCave :: nextInt( int range ) { int val = (int)(Random( ) * range); return val; } void SFCave :: setUp() { score = 0; offset = 0; nrFrames = 0; dir = 1; thrust = 0; if ( CURRENT_GAME_TYPE == SFCAVE_GAME ) { thrustUp = UpThrustVals[SFCAVE_GAME_TYPE][currentGameDifficulty];; noThrust = DownThrustVals[SFCAVE_GAME_TYPE][currentGameDifficulty];; maxUpThrust = MaxUpThrustVals[SFCAVE_GAME_TYPE][currentGameDifficulty];; maxDownThrust = MaxDownThrustVals[SFCAVE_GAME_TYPE][currentGameDifficulty];; } else if ( CURRENT_GAME_TYPE == GATES_GAME ) { thrustUp = UpThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; noThrust = DownThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; maxUpThrust = MaxUpThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; maxDownThrust = MaxDownThrustVals[GATES_GAME_TYPE][currentGameDifficulty];; } else { thrustUp = UpThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; noThrust = DownThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; maxUpThrust = MaxUpThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; maxDownThrust = MaxDownThrustVals[FLY_GAME_TYPE][currentGameDifficulty]; } crashLineLength = 0; lastGateBottomY = 0; user.setRect( 50, sWidth/2, 4, 4 ); blockWidth = 20; blockHeight = 70; gapHeight = initialGateGaps[currentGameDifficulty]; gateDistance = 75; nextGate = nextInt( 50 ) + gateDistance; for ( int i = 0 ; i < TRAILSIZE ; ++i ) { trail[i].setX( -1 ); trail[i].setY( 0 ); } if ( CURRENT_GAME_TYPE != FLY_GAME ) { maxHeight = 50; mapTop[0] = (int)(nextInt(50)) + 5; |