JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
now really removed SDL_SetAlpha calls on Windows
[vor.git] / main.c
diff --git a/main.c b/main.c
index a2d7bee..288d833 100644 (file)
--- a/main.c
+++ b/main.c
@@ -19,7 +19,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
-#include <argp.h>
 #include <math.h>
 #include <SDL.h>
 #include <SDL_image.h>
 #include "sprite.h"
 #include "sound.h"
 
+#ifdef WIN32
+#define SDL_SetAlpha(surf, flag, alpha)
+#endif
+
 // ************************************* VARS
 // SDL_Surface global variables
 SDL_Surface 
@@ -103,12 +106,12 @@ float state_timeout = 600.0;
 char *msgs[2][3] = {
        {
                "Press SPACE for normal game",
-               "Press 'e' for easy game",
+               "Press '1' for easy game",
                "http://jasonwoof.org/vor"
        },
        {
                "Press SPACE for easy game",
-               "Press 'n' for normal game",
+               "Press '2' for normal game",
                "http://jasonwoof.org/vor"
        }
 };
@@ -339,7 +342,7 @@ load_image(char *filename)
 void
 load_ship(void)
 {
-       load_sprite(SPRITE(&ship), "sprites/ship.png");
+       load_sprite(SPRITE(&ship), "ship.png");
 }
 
 int
@@ -391,18 +394,18 @@ init(void) {
        }
 
        // Load the banners
-       NULLERROR(surf_b_variations = load_image("banners/variations.png"));
-       NULLERROR(surf_b_on = load_image("banners/on.png"));
-       NULLERROR(surf_b_rockdodger = load_image("banners/rockdodger.png"));
+       NULLERROR(surf_b_variations = load_image("b_variations.png"));
+       NULLERROR(surf_b_on = load_image("b_on.png"));
+       NULLERROR(surf_b_rockdodger = load_image("b_rockdodger.png"));
 
-       NULLERROR(surf_b_game = load_image("banners/game.png"));
-       NULLERROR(surf_b_over = load_image("banners/over.png"));
+       NULLERROR(surf_b_game = load_image("b_game.png"));
+       NULLERROR(surf_b_over = load_image("b_over.png"));
 
        // Load the life indicator (small ship) graphic.
-       NULLERROR(surf_life = load_image("indicators/life.png"));
+       NULLERROR(surf_life = load_image("life.png"));
 
        // Load the font image
-       s = add_data_path(BIG_FONT_FILE);
+       s = add_data_path("font.png");
        if(s) {
                NULLERROR(surf_font_big = IMG_Load(s));
                free(s);
@@ -527,17 +530,6 @@ draw(void) {
 
                case HIGH_SCORE_ENTRY:
                        play_tune(TUNE_HIGH_SCORE_ENTRY);
-                       if(!process_score_input()) {  // done inputting name
-
-                               // Change state to briefly show high scores page
-                               state = HIGH_SCORE_DISPLAY;
-                               state_timeout = 200;
-
-                               // Write the high score table to the file
-                               write_high_score_table();
-               
-                               play_tune(TUNE_TITLE_PAGE);
-                       }
                // FALL THROUGH TO
                case HIGH_SCORE_DISPLAY:
                        // Display de list o high scores mon.
@@ -588,12 +580,33 @@ init_score_entry(void)
 
 void
 gameloop() {
-       Uint8 *keystate = SDL_GetKeyState(NULL);
+       SDL_Event e;
+       Uint8 *keystate;
        float tmp;
 
 
        for(;;) {
-               SDL_PumpEvents();
+               while(SDL_PollEvent(&e)) {
+                       switch(e.type) {
+                               case SDL_QUIT: return;
+                               case SDL_KEYUP:
+                                       if(e.key.keysym.sym == SDLK_ESCAPE
+                                          || e.key.keysym.sym == SDLK_q)
+                                               return;
+                                       break;
+                               case SDL_KEYDOWN:
+                                       if(state == HIGH_SCORE_ENTRY)
+                                               if(!process_score_input(&e.key.keysym)) {
+                                                       // Write the high score table to the file
+                                                       write_high_score_table();
+                                                       // continue to display the scores briefly
+                                                       state = HIGH_SCORE_DISPLAY;
+                                                       state_timeout = 200;
+                                                       play_tune(TUNE_TITLE_PAGE);
+                                               }
+                                       break;
+                       }
+               }
                keystate = SDL_GetKeyState(NULL);
 
                if(!paused) {
@@ -692,20 +705,20 @@ gameloop() {
                        }
 
                        // new game
-                       if((keystate[SDLK_SPACE] || keystate[SDLK_e] || keystate[SDLK_n])
+                       if((keystate[SDLK_SPACE] || keystate[SDLK_1] || keystate[SDLK_2])
                           && (state == HIGH_SCORE_DISPLAY
                               || state == TITLE_PAGE
                               || state == GAME_OVER)) {
                                if(state == GAME_OVER && new_high_score(score))
                                        init_score_entry();
                                else {
-                                       if((keystate[SDLK_SPACE] && !initial_rocks) || keystate[SDLK_n]) {
+                                       if((keystate[SDLK_SPACE] && !initial_rocks) || keystate[SDLK_2]) {
                                                g_easy = 0;
                                                initial_rocks = NORMAL_I_ROCKS;
                                                final_rocks = NORMAL_F_ROCKS;
                                                if(opt_gamespeed == EASY_GAMESPEED)
                                                        opt_gamespeed = NORMAL_GAMESPEED;
-                                       } else if(keystate[SDLK_e]) {
+                                       } else if(keystate[SDLK_1]) {
                                                g_easy = 1;
                                                initial_rocks = EASY_I_ROCKS;
                                                final_rocks = EASY_F_ROCKS;
@@ -755,17 +768,12 @@ gameloop() {
                        state = HIGH_SCORE_DISPLAY;
                        state_timeout = 400;
                }
-
-               if(state != HIGH_SCORE_ENTRY && (keystate[SDLK_q] || keystate[SDLK_ESCAPE]))
-                       return;
-
        }
 }
 
 int
 main(int argc, char **argv) {
-       init_opts();
-       argp_parse(&argp, argc, argv, 0, 0, 0);
+       if(!parse_opts(argc, argv)) return 1;
 
        if(init()) {
                printf ("ta: '%s'\n",initerror);