You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
#include <world.h>
|
|
#include <getPos.h>
|
|
#include <screen.h>
|
|
#include <collisionDetection.h>
|
|
void addZombie(){
|
|
if(getOpenPos()){
|
|
int i;
|
|
for(i=0;i<MAX_ENTITIES-1;i++){
|
|
if(!allEntities[i].isAlive){
|
|
struct Entity zombie;
|
|
zombie.curYpos=openPos.y;
|
|
zombie.curXpos=openPos.x;
|
|
zombie.nextYpos=openPos.y;
|
|
zombie.nextXpos=openPos.x;
|
|
zombie.type="zombie";
|
|
zombie.symbol='Z';
|
|
zombie.isAlive=1;
|
|
allEntities[i]=zombie;
|
|
mvwaddch(viewportWin, allEntities[i].curYpos, allEntities[i].curXpos, allEntities[i].symbol);
|
|
wnoutrefresh(viewportWin);
|
|
doupdate();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void addHorde(){
|
|
getOpenPos();
|
|
|
|
}
|
|
|
|
void moveZombies(){
|
|
int i;
|
|
for(i=1;i<MAX_ENTITIES;i++){
|
|
if(allEntities[i].isAlive){
|
|
int moveCheck = rand()%20;
|
|
if(moveCheck==1){
|
|
getNextPos(allEntities[i].curYpos,allEntities[i].curXpos,allEntities[0].curYpos,allEntities[0].curXpos);
|
|
allEntities[i].nextYpos = nextPos.y;
|
|
allEntities[i].nextXpos = nextPos.x;
|
|
|
|
char charAtNextPos=mvwinch(viewportWin,allEntities[i].nextYpos,allEntities[i].nextXpos);
|
|
if(charAtNextPos!='@' && charAtNextPos!=' '){
|
|
allEntities[i].nextYpos = allEntities[i].curYpos;
|
|
allEntities[i].nextXpos = allEntities[i].curXpos;
|
|
}
|
|
|
|
if(allEntities[i].nextYpos < 1 || allEntities[i].nextYpos>viewportWinRows-2){
|
|
allEntities[i].nextYpos = allEntities[i].curYpos;
|
|
}
|
|
if(allEntities[i].nextXpos < 1 || allEntities[i].nextXpos>viewportWinCols-2){
|
|
allEntities[i].nextXpos = allEntities[i].curXpos;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|