X-Git-Url: https://jasonwoof.com/gitweb/?p=vor.git;a=blobdiff_plain;f=main.c;h=528509c0777e911ccdc36a53dcddbef18dc5639c;hp=2bf77152e5b9c305ce4d0ed6d6d442b58d0f8683;hb=refs%2Fheads%2Fopengl;hpb=c1db302b3620bf4e0314867cddf094402d76d2d6 diff --git a/main.c b/main.c index 2bf7715..528509c 100644 --- a/main.c +++ b/main.c @@ -26,12 +26,14 @@ #include #include #include +#include #include "font.h" #include "args.h" #include "common.h" -#include "config.h" +#include +#include "vorconfig.h" #include "dust.h" #include "file.h" #include "float.h" @@ -68,6 +70,8 @@ struct dot { int heat; // heat multiplier (color). }; +void draw(void); + struct dot edot[MAXENGINEDOTS], *dotptr = edot; struct dot bdot[MAXBANGDOTS]; @@ -134,6 +138,18 @@ extern int optind, opterr, optopt; // ************************************* FUNCS +#ifdef HAVE_NANOSLEEP +void +tiny_sleep() { + struct timespec t; + t.tv_sec = 0; + t.tv_nsec = 1; + nanosleep(&t, 0); +} +#else +#define tiny_sleep() +#endif + void init_engine_dots() { int i; @@ -323,21 +339,35 @@ draw_dots(void) { } SDL_Surface * -load_image(char *filename) -{ +_load_image(char *filename, int alpha) { SDL_Surface *tmp, *img = NULL; char *s = add_data_path(filename); if(s) { tmp = IMG_Load(s); free(s); if(tmp) { - img = SDL_DisplayFormat(tmp); + if(alpha) { + img = SDL_DisplayFormatAlpha(tmp); + } else { + img = SDL_DisplayFormat(tmp); + } SDL_FreeSurface(tmp); } } return img; } +SDL_Surface * +load_image(char *filename) { + return _load_image(filename, 0); +} + +SDL_Surface * +load_image_alpha(char *filename) { + return _load_image(filename, 1); +} + + void load_ship(void) { @@ -362,6 +392,9 @@ void toggle_fullscreen() { opt_fullscreen = 1 - opt_fullscreen; set_video_mode(); + if(paused) { + draw(); + } } @@ -412,12 +445,12 @@ init(void) { } // Load the banners - 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_variations = load_image_alpha("b_variations.png")); + NULLERROR(surf_b_on = load_image_alpha("b_on.png")); + NULLERROR(surf_b_rockdodger = load_image_alpha("b_rockdodger.png")); - NULLERROR(surf_b_game = load_image("b_game.png")); - NULLERROR(surf_b_over = load_image("b_over.png")); + NULLERROR(surf_b_game = load_image_alpha("b_game.png")); + NULLERROR(surf_b_over = load_image_alpha("b_over.png")); // Load the life indicator (small ship) graphic. NULLERROR(surf_life = load_image("life.png")); @@ -516,7 +549,7 @@ draw_title_page(void) x = (XSIZE-font_width(text))/2 + cos(fadetimer/4.5)*10; font_write(x,YSIZE-100 + cos(fadetimer/3)*5,text); - text = "Version " VERSION; + text = "Version " PACKAGE_VERSION; x = (XSIZE-font_width(text))/2 + sin(fadetimer/4.5)*10; font_write(x,YSIZE-50 + sin(fadetimer/2)*5,text); } @@ -830,6 +863,8 @@ gameloop() { state = HIGH_SCORE_DISPLAY; state_timeout = 400; } + + tiny_sleep(); } }