Move safe zone logic into getOpenPos

main
Jerry Aldrich 11 years ago
parent 7b4d6573bd
commit bd48516d32
  1. 4
      gameLoop.c
  2. 6
      getPos.c
  3. 4
      weaponsSystem.c
  4. 19
      zombies.c

@ -10,7 +10,8 @@ void gameLoop(){
drawScore(); drawScore();
drawViewport(); drawViewport();
moveProjectiles(); moveProjectiles();
moveZombies(); // moveZombies();
addZombie();
randomEvents(); randomEvents();
doupdate(); doupdate();
int ch; int ch;
@ -101,5 +102,6 @@ void gameLoop(){
break; break;
} }
checkPlayerCollision(); checkPlayerCollision();
usleep(30000);
} }
} }

@ -7,7 +7,7 @@ int getOpenPos(){
spaceExists: spaceExists:
openPos.y=(rand()%(viewportWinRows-2)+1); openPos.y=(rand()%(viewportWinRows-2)+1);
openPos.x=(rand()%(viewportWinCols-2)+1); openPos.x=(rand()%(viewportWinCols-2)+1);
if(mvwinch(viewportWin,openPos.y,openPos.x)==' '){ if(mvwinch(viewportWin,openPos.y,openPos.x)==' ' && ((openPos.y > allEntities[0].curYpos+5 || openPos.y < allEntities[0].curYpos-5) || (openPos.x > allEntities[0].curXpos+5 || openPos.x < allEntities[0].curXpos-5))){
int i; int i;
for(i=1;i<MAX_ENTITIES;i++){ for(i=1;i<MAX_ENTITIES;i++){
if(allEntities[i].isAlive && allEntities[i].curYpos==openPos.y && allEntities[i].curXpos==openPos.x){ if(allEntities[i].isAlive && allEntities[i].curYpos==openPos.y && allEntities[i].curXpos==openPos.x){
@ -15,6 +15,7 @@ int getOpenPos(){
} }
else{ else{
chooseAnother=0; chooseAnother=0;
return 1;
} }
} }
} }
@ -22,7 +23,7 @@ int getOpenPos(){
int x,y; int x,y;
for(y=0;y<viewportWinRows;y++){ for(y=0;y<viewportWinRows;y++){
for(x=0;x<viewportWinCols;x++){ for(x=0;x<viewportWinCols;x++){
if(mvwinch(viewportWin,y,x)==' '){ if(mvwinch(viewportWin,y,x)==' ' && ((y > allEntities[0].curYpos+5 || y < allEntities[0].curYpos-5) || (x > allEntities[0].curXpos+5 || x < allEntities[0].curXpos-5))){
chooseAnother=1; chooseAnother=1;
goto spaceExists; goto spaceExists;
} }
@ -31,7 +32,6 @@ int getOpenPos(){
return 0; return 0;
} }
} }
return 1;
} }
void getNextPos(int y, int x, int y2, int x2){ void getNextPos(int y, int x, int y2, int x2){

@ -42,11 +42,7 @@ void moveProjectiles(){
mvwaddch(viewportWin, projectiles[i].curYpos, projectiles[i].curXpos, ' '); mvwaddch(viewportWin, projectiles[i].curYpos, projectiles[i].curXpos, ' ');
} }
} }
else{
mvwaddch(viewportWin, projectiles[i].curYpos, projectiles[i].curXpos, ' ');
}
} }
usleep(30000);
} }
void fireWeapon(struct Weapon *weaponRef, char *direction){ void fireWeapon(struct Weapon *weaponRef, char *direction){

@ -4,24 +4,6 @@
#include <collisionDetection.h> #include <collisionDetection.h>
void addZombie(){ void addZombie(){
if(getOpenPos()){ if(getOpenPos()){
int attempts=0;
while (attempts<=10){
if(getOpenPos()){
if((openPos.y > allEntities[0].curYpos+5 || openPos.y < allEntities[0].curYpos-5) || (openPos.x > allEntities[0].curXpos+5 || openPos.x < allEntities[0].curXpos-5)) {
attempts=0;
break;
}
else{
getOpenPos();
attempts++;
}
}
else{
attempts=0;
break;
}
}
if (attempts<10){
int i; int i;
for(i=0;i<MAX_ENTITIES-1;i++){ for(i=0;i<MAX_ENTITIES-1;i++){
if(!allEntities[i].isAlive){ if(!allEntities[i].isAlive){
@ -42,7 +24,6 @@ void addZombie(){
} }
} }
} }
}
void addHorde(){ void addHorde(){
getOpenPos(); getOpenPos();

Loading…
Cancel
Save