X-Git-Url: https://jasonwoof.com/gitweb/?p=vor.git;a=blobdiff_plain;f=main.c;h=a0b50ccd19ec0cdd4a03dab1e25be521c0f13fe8;hp=8d131be55ade6241813b7cac98ffd34b96086306;hb=cd7fb220b16a73c15ff9dff7a5627bf78478875f;hpb=1f33a47c0e3b72d6050b72926643812237dc3f49 diff --git a/main.c b/main.c index 8d131be..a0b50cc 100644 --- a/main.c +++ b/main.c @@ -193,20 +193,24 @@ draw_bang_dots(SDL_Surface *s) for(i=0; i= XSIZE || bdot[i].y < 0 || bdot[i].y >= YSIZE) { bdot[i].active = 0; continue; } + + // check collisions if(pixel_hit_rocks(bdot[i].x, bdot[i].y)) { bdot[i].active = 0; continue; } + pixel = pixels + row_inc*(int)(bdot[i].y) + (int)(bdot[i].x); if(bdot[i].c) c = bdot[i].c; else c = heatcolor[(int)(bdot[i].life)*3]; *pixel = c; - bdot[i].life -= bdot[i].decay; - bdot[i].x += bdot[i].dx*t_frame - xscroll; - bdot[i].y += bdot[i].dy*t_frame - yscroll; - - if(bdot[i].life<0) bdot[i].active = 0; } } @@ -294,11 +298,27 @@ drawdots(SDL_Surface *s) { SDL_UnlockSurface(s); } +SDL_Surface * +load_image(char *filename) +{ + 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); + SDL_FreeSurface(tmp); + } + } + return img; +} + int init(void) { int i; - SDL_Surface *temp; + char *s; Uint32 flag; // Where are our data files? @@ -343,32 +363,27 @@ init(void) { } // Load the banners - NULLERROR(temp = IMG_Load(add_path("banners/variations.png"))); - NULLERROR(surf_b_variations = SDL_DisplayFormat(temp)); + 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(temp = IMG_Load(add_path("banners/on.png"))); - NULLERROR(surf_b_on = SDL_DisplayFormat(temp)); - - NULLERROR(temp = IMG_Load(add_path("banners/rockdodger.png"))); - NULLERROR(surf_b_rockdodger = SDL_DisplayFormat(temp)); - - NULLERROR(temp = IMG_Load(add_path("banners/game.png"))); - NULLERROR(surf_b_game = SDL_DisplayFormat(temp)); - - NULLERROR(temp = IMG_Load(add_path("banners/over.png"))); - NULLERROR(surf_b_over = SDL_DisplayFormat(temp)); - - surf_font_big = IMG_Load(add_path(BIG_FONT_FILE)); - g_font = SFont_InitFont(surf_font_big); + NULLERROR(surf_b_game = load_image("banners/game.png")); + NULLERROR(surf_b_over = load_image("banners/over.png")); // Load the spaceship graphic. - NULLERROR(temp = IMG_Load(add_path("sprites/ship.png"))); - NULLERROR(surf_ship = SDL_DisplayFormat(temp)); + NULLERROR(surf_ship = load_image("sprites/ship.png")); get_shape(surf_ship, &shipshape); // Load the life indicator (small ship) graphic. - NULLERROR(temp = IMG_Load(add_path("indicators/life.png"))); - NULLERROR(surf_life = SDL_DisplayFormat(temp)); + NULLERROR(surf_life = load_image("indicators/life.png")); + + // Load the font image + s = add_data_path(BIG_FONT_FILE); + if(s) { + NULLERROR(surf_font_big = IMG_Load(s)); + free(s); + g_font = SFont_InitFont(surf_font_big); + } init_engine_dots(); init_dust(); @@ -524,7 +539,7 @@ draw() { int gameloop() { - Uint8 *keystate; + Uint8 *keystate = SDL_GetKeyState(NULL); float tmp;