mvprintw(22,9,"S:%3d", shieldsleft);
}
-void boom_object(game_object boomstuff, game_object object){
- int deathcycle=1;
- int loop=1;
- boomstuff.active=1;
- while(deathcycle<=7){
- for(int boomx=object.x-10;boomx<=object.x+10;boomx++){
- for(int boomy=object.y-10;boomy<=object.y+10;boomy++){
- if(sqrt((abs(object.y-boomy)*abs(object.y-boomy))+(abs(object.x-boomx)*abs(object.x-boomx)))<=deathcycle){
- if(rand()%1000>900){
- boomstuff.x = boomx;
- boomstuff.y = boomy;
- if(rand()%1000>500){
- boomstuff.face = 0;
- } else {
- boomstuff.face = 1;
- };
- for(int iterations=0;iterations<=loop;iterations++){
- drawlocation = draw_object(boomstuff, drawlocation);
- };
- //get the cursor out of the way
- mvprintw(23,79,"-");
- refresh();
- };
- };
- };
- };
- deathcycle++;
- };
- if(object.number!=1){
- usleep(50000);
- };
-}
-
int play_sound_effect(Mix_Chunk *chunk){
int channel = Mix_PlayChannel(-1, chunk, 0);
return channel;
};
-void boom_object_test(game_object boomstuff, game_object object, Mix_Chunk *sound, int channel){
+void boom_object(game_object boomstuff, game_object object, Mix_Chunk *sound, int channel){
int deathcycle=1;
int loop=1;
boomstuff.active=1;
for(int landerloop = 0; landerloop<landermax; landerloop++){
if((abs(player.y-landers[landerloop].y)<=40)&&(player.x==landers[landerloop].x)&&((player.face==0&&(landers[landerloop].y<player.y))||(player.face==1&&(landers[landerloop].y>player.y)))){
determine_powerup(powerups, landers[landerloop], 800);
- boomchannel = play_sound_effect(boomsound);
- boom_object(boomstuff, landers[landerloop]);
+ boom_object(boomstuff, landers[landerloop], boomsound, boomchannel);
landers[landerloop] = object_out(landers[landerloop]);
score = score + 10;
};
//kill crazies
for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
if((abs(player.y-crazies[crazyloop].y)<=40)&&(player.x==crazies[crazyloop].x)&&((player.face==0&&(crazies[crazyloop].y<player.y))||(player.face==1&&(crazies[crazyloop].y>player.y)))){
- determine_powerup(powerups, crazies[crazyloop], 800);
- boom_object(boomstuff, crazies[crazyloop]);
+ determine_powerup(powerups, crazies[crazyloop], 800);
+ boom_object(boomstuff, crazies[crazyloop], boomsound, boomchannel);
crazies[crazyloop] = object_out(crazies[crazyloop]);
score = score + 10;
};
for(int crawlerloop = 0; crawlerloop<crawlermax; crawlerloop++){
if((abs(player.y-crawlers[crawlerloop].y)<=40)&&(player.x==crawlers[crawlerloop].x)&&((player.face==0&&(crawlers[crawlerloop].y<player.y))||(player.face==1&&(crawlers[crawlerloop].y>player.y)))){
determine_powerup(powerups, crawlers[crawlerloop], 800);
- boom_object(boomstuff, crawlers[crawlerloop]);
+ boom_object(boomstuff, crawlers[crawlerloop], boomsound, boomchannel);
crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
score = score + 10;
};
saucer.phase = saucer.phase - 5;
if(saucer.phase<=0){
determine_powerup(powerups, saucer, 600);
- boom_object(boomstuff, saucer);
+ boom_object(boomstuff, saucer, boomsound, boomchannel);
saucer = object_out(saucer);
score = score + 100;
};
for(int landerloop = 0; landerloop<landermax; landerloop++){
if(abs(player.y-landers[landerloop].y)<=40){
determine_powerup(powerups, landers[landerloop], 800);
- boom_object(boomstuff, landers[landerloop]);
+ boom_object(boomstuff, landers[landerloop], boomsound, boomchannel);
landers[landerloop] = object_out(landers[landerloop]);
score = score + 20;
};
};
for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
if(abs(player.y-crazies[crazyloop].y)<=40){
- boom_object(boomstuff, crazies[crazyloop]);
+ boom_object(boomstuff, crazies[crazyloop], boomsound, boomchannel);
crazies[crazyloop] = object_out(crazies[crazyloop]);
score = score + 20;
};
};
for(int crawlerloop = 0; crawlerloop<crawlermax; crawlerloop++){
if(abs(player.y-crawlers[crawlerloop].y)<=40){
- boom_object(boomstuff, crawlers[crawlerloop]);
+ boom_object(boomstuff, crawlers[crawlerloop], boomsound, boomchannel);
crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
score = score + 20;
};
if(abs(player.y-saucer.y)<=40){
saucer.phase = saucer.phase - 5;
if(saucer.phase<=0){
- boom_object(boomstuff, saucer);
+ boom_object(boomstuff, saucer, boomsound, boomchannel);
saucer = object_out(saucer);
score = score + 100;
};
if(check_collision(bullets[bulletloop], landers[landerloop])==1){
//kill lander and bullet
determine_powerup(powerups, landers[landerloop], 800);
- //if(sound==1){boomchannel = play_sound_effect(boomsound);};
- boom_object_test(boomstuff, landers[landerloop], boomsound, boomchannel);
+ boom_object(boomstuff, landers[landerloop], boomsound, boomchannel);
landers[landerloop] = object_out(landers[landerloop]);
bullets[bulletloop].vtime = 100;
bullets[bulletloop] = age_bullet(bullets[bulletloop]);
if(check_collision(bullets[bulletloop], crazies[crazyloop])==1){
//kill crazy and bullet
determine_powerup(powerups, crazies[crazyloop], 800);
- boom_object(boomstuff, crazies[crazyloop]);
+ boom_object(boomstuff, crazies[crazyloop], boomsound, boomchannel);
crazies[crazyloop] = object_out(crazies[crazyloop]);
bullets[bulletloop].vtime = 100;
bullets[bulletloop] = age_bullet(bullets[bulletloop]);
if(check_collision(bullets[bulletloop], crawlers[crawlerloop])==1){
//kill crawler and bullet
determine_powerup(powerups, crawlers[crawlerloop], 800);
- boom_object(boomstuff, crawlers[crawlerloop]);
+ boom_object(boomstuff, crawlers[crawlerloop], boomsound, boomchannel);
crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
bullets[bulletloop].vtime = 100;
bullets[bulletloop] = age_bullet(bullets[bulletloop]);
saucer.phase = saucer.phase - 1;
if(saucer.phase<=0){
determine_powerup(powerups, saucer, 600);
- boom_object(boomstuff, saucer);
+ boom_object(boomstuff, saucer, boomsound, boomchannel);
saucer = object_out(saucer);
bullets[bulletloop].vtime = 100;
bullets[bulletloop] = age_bullet(bullets[bulletloop]);
lives--;
//add to score
score = score + 20;
- boom_object(boomstuff, player);
+ boom_object(boomstuff, player, boomsound, boomchannel);
life_loss(lives, score);
player = player_init(player);
drawlocation = player.y-20;
if(shieldup==1){
for(int shieldloop = 0; shieldloop<12; shieldloop++){
if(check_collision(landers[landerloop], shields[shieldloop])==1){
- boom_object(boomstuff, landers[landerloop]);
+ boom_object(boomstuff, landers[landerloop], boomsound, boomchannel);
landers[landerloop] = object_out(landers[landerloop]);
score = score + 20;
};
lives--;
//add to score
score = score + 20;
- boom_object(boomstuff, player);
+ boom_object(boomstuff, player, boomsound, boomchannel);
life_loss(lives, score);
player = player_init(player);
drawlocation = player.y-20;
if(shieldup==1){
for(int shieldloop = 0; shieldloop<12; shieldloop++){
if(check_collision(crazies[crazyloop], shields[shieldloop])==1){
- boom_object(boomstuff, crazies[crazyloop]);
+ boom_object(boomstuff, crazies[crazyloop], boomsound, boomchannel);
crazies[crazyloop] = object_out(crazies[crazyloop]);
score = score + 20;
};
lives--;
//add to score
score = score + 20;
- boom_object(boomstuff, player);
+ boom_object(boomstuff, player, boomsound, boomchannel);
life_loss(lives, score);
player = player_init(player);
drawlocation = player.y-20;
if(shieldup==1){
for(int shieldloop = 0; shieldloop<12; shieldloop++){
if(check_collision(crawlers[crawlerloop], shields[shieldloop])==1){
- boom_object(boomstuff, crawlers[crawlerloop]);
+ boom_object(boomstuff, crawlers[crawlerloop], boomsound, boomchannel);
crawlers[crawlerloop] = object_out(crawlers[crawlerloop]);
score = score + 20;
};
if(check_collision(player, saucer)==1){
//kill player only
lives--;
- boom_object(boomstuff, player);
+ boom_object(boomstuff, player, boomsound, boomchannel);
life_loss(lives, score);
player = player_init(player);
drawlocation = player.y-20;
lives--;
landershot[landershotloop].vtime = 100;
landershot[landershotloop] = age_bullet(landershot[landershotloop]);
- boom_object(boomstuff, player);
+ boom_object(boomstuff, player, boomsound, boomchannel);
life_loss(lives, score);
player = player_init(player);
drawlocation = player.y-20;