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.
50 lines
1.4 KiB
50 lines
1.4 KiB
#include <world.h>
|
|
#include <getPos.h>
|
|
#include <collisionDetection.h>
|
|
void addZombie(int y, int x){
|
|
if (y && x){
|
|
int i;
|
|
for(i=0;i<MAX_ENTITIES-1;i++){
|
|
if(!allEntities[i].isAlive){
|
|
struct Entity zombie;
|
|
zombie.curYpos=y;
|
|
zombie.curXpos=x;
|
|
zombie.nextYpos=y;
|
|
zombie.nextXpos=x;
|
|
zombie.type="zombie";
|
|
zombie.symbol='Z';
|
|
zombie.isAlive=1;
|
|
allEntities[i]=zombie;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
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;
|
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[i].nextYpos,allEntities[i].nextXpos);
|
|
|
|
if(collisionEvent.collidedWithBoundary || collisionEvent.collidedWithUnPassableChar || collisionEvent.collidedWithItem || collisionEvent.collidedWithEntity){
|
|
if(collisionEvent.collidedWithEntity){
|
|
if(collisionEvent.collidedWithEntity->type,"zombie"){
|
|
allEntities[i].nextYpos = allEntities[i].curYpos;
|
|
allEntities[i].nextXpos = allEntities[i].curXpos;
|
|
}
|
|
}
|
|
allEntities[i].nextYpos = allEntities[i].curYpos;
|
|
allEntities[i].nextXpos = allEntities[i].curXpos;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|