/**********************************************************\ * Rocks : a bit-mapped arcade game for the AT&T UNIX PC. * * * * By : Hans Jespersen * * * \**********************************************************/ #include "rocks.h" initscreen( level ) int level; { int i,j,index; char menstr[15]; position freezone; /* clean screen */ wrastop(wn,screen,WIDTH,screen,WIDTH,0,0,0,0,SCREEN_WIDTH,SPACE_HEIGHT,SRCSRC,DSTCAM,0); myship.x = SCREEN_WIDTH / 2; myship.y = SCREEN_HEIGHT / 2; freezone.x = myship.x - LARGE_ROCK_WIDTH; freezone.y = myship.y - LARGE_ROCK_HEIGHT; myship.xdelta = myship.ydelta = 0; wrastop(0,ship[0],2,screen,WIDTH,0,0,myship.x,myship.y,16,16,SRCSRC,DSTOR,0); nrocks = level; srand( (long)time(0) ); for ( i = 0; i < nrocks; i++ ){ rocklist[i].size = LARGE; rocklist[i].x = rand() % SCREEN_WIDTH; rocklist[i].y = rand() % SPACE_HEIGHT; while( collide( rocklist[i], LARGE_ROCK_WIDTH, LARGE_ROCK_HEIGHT, freezone, 2 * LARGE_ROCK_WIDTH, 2 * LARGE_ROCK_HEIGHT ) ){ rocklist[i].x = rand() % SCREEN_WIDTH; rocklist[i].y = rand() % SPACE_HEIGHT; } rocklist[i].xdelta = randdir() * ((rand() % 2) + 1); rocklist[i].ydelta = randdir() * ((rand() % 2) + 1); wrastop(0,rock[LARGE],8,screen,WIDTH,0,0,rocklist[i].x,rocklist[i].y,LARGE_ROCK_WIDTH,LARGE_ROCK_HEIGHT,SRCSRC,DSTOR,0); } printscreen(); strcpy( menstr, "men : " ); menstr[13] = men + '0'; menstr[14] = '\0'; wcmd( wn, menstr ); quitflag = FALSE; direction = 0; nshots = -1; }