X-Git-Url: https://jasonwoof.com/gitweb/?p=vor.git;a=blobdiff_plain;f=main.c;h=5341e289c380fef401b7b141549083d20ab2060a;hp=aab0d71d9183e27f0a7ec6590968485d1bbe74ac;hb=7e7335ed9dcf2b1484543fec9bfa196bdc658fd5;hpb=8193e09e49bc571f9c61e6e3adf45010271c08d5 diff --git a/main.c b/main.c index aab0d71..5341e28 100644 --- a/main.c +++ b/main.c @@ -45,9 +45,6 @@ // ************************************* STRUCTS struct rock_struct { - // Array of black pixel coordinates. This is scanned - // every frame to see if it's still black, and as - // soon as it isn't we BLOW UP float x,y,dx,dy; int active; int dead; // has been blown out of the way @@ -56,9 +53,6 @@ struct rock_struct { struct shape *shape; int type_number; }; -struct black_point_struct { - int x,y; -}; struct bangdots { // Bang dots have the same colour as shield dots. // Bang dots get darker as they age. @@ -105,7 +99,6 @@ SFont_Font *g_font; // Structure global variables struct enginedots edot[MAXENGINEDOTS], *dotptr = edot; struct rock_struct rock[MAXROCKS], *rockptr = rock; -struct black_point_struct black_point[MAXBLACKPOINTS], *blackptr = black_point; struct bangdots bdot[MAXBANGDOTS], *bdotptr = bdot; struct spacedot sdot[MAXSPACEDOTS]; @@ -113,6 +106,7 @@ struct spacedot sdot[MAXSPACEDOTS]; char topline[1024]; char *initerror = ""; +struct shape shipshape; float shipx,shipy = 240.0; // X position, 0..XSIZE float shipdx,shipdy; // Change in X position per tick. float rockrate,rockspeed; @@ -475,9 +469,8 @@ drawdots(SDL_Surface *s) { int init(int fullscreen) { - int i,j; + int i; SDL_Surface *temp; - Uint16 *raw_pixels; Uint32 flag; // Where are our data files? @@ -543,32 +536,17 @@ init(int fullscreen) { // Load the spaceship graphic. NULLERROR(temp = IMG_Load(add_path("sprites/ship.png"))); NULLERROR(surf_ship = SDL_DisplayFormat(temp)); + 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)); - // Create the array of black points; - SDL_LockSurface(surf_ship); - raw_pixels = (Uint16 *) surf_ship->pixels; - for(i = 0; iw; i++) { - for(j = 0; jh; j++) { - if(raw_pixels[j*(surf_ship->pitch)/2 + i] == 0) { - blackptr->x = i; - blackptr->y = j; - blackptr++; - } - } - } - - SDL_UnlockSurface(surf_ship); - init_engine_dots(); init_space_dots(); // Load all our lovely rocks for(i = 0; ipixels; - // Check that the black points on the ship are - // still black, and not covered up by rocks. - for(p = black_point; ppitch/2 * (p->y + (int)shipy) + p->x + (int)shipx; - if(raw_pixels[offset]) { - // Set the bang flag - bang = 1; + for(i=0; idy = rnd()-0.5; rockptr->type_number = random() % NROCKS; rockptr->image = surf_rock[rockptr->type_number];// [random()%NROCKS]; + rockptr->shape = &rock_shapes[rockptr->type_number]; rockptr->active = 1; rockptr->y = rnd()*(YSIZE + rockptr->image->h); }