Change Zombie collision detection

Now only moves if char at next position !='@' or =' '
main
Jerry Aldrich 11 years ago
parent cb8c93f33a
commit bec35897c7
  1. 11
      structs.h
  2. 7
      zombies.c

@ -2,7 +2,7 @@
#define _STRUCTS #define _STRUCTS
struct Weapon{ struct Weapon{
char name[10]; char *name;
int range; int range;
int maxCapacity; int maxCapacity;
int curCapacity; int curCapacity;
@ -24,12 +24,19 @@ struct Entity {
}; };
struct Item{
char *name;
char symbol;
int isAlive;
int curYpos;
int curXpos;
};
struct Projectile{ struct Projectile{
int isAlive; int isAlive;
char symbol; char symbol;
int curXpos;
int curYpos; int curYpos;
int curXpos;
int prevYpos; int prevYpos;
int prevXpos; int prevXpos;
int nextYpos; int nextYpos;

@ -54,13 +54,12 @@ void moveZombies(){
allEntities[i].nextYpos = nextPos.y; allEntities[i].nextYpos = nextPos.y;
allEntities[i].nextXpos = nextPos.x; allEntities[i].nextXpos = nextPos.x;
struct Entity * hitEntity = (struct Entity *)collisionDetect(allEntities[i].nextYpos, allEntities[i].nextXpos); char charAtNextPos=mvwinch(viewportWin,allEntities[i].nextYpos,allEntities[i].nextXpos);
if(hitEntity){ if(charAtNextPos!='@' && charAtNextPos!=' '){
if(!strcmp(hitEntity->type,"zombie")){
allEntities[i].nextYpos = allEntities[i].curYpos; allEntities[i].nextYpos = allEntities[i].curYpos;
allEntities[i].nextXpos = allEntities[i].curXpos; allEntities[i].nextXpos = allEntities[i].curXpos;
}
} }
if(allEntities[i].nextYpos < 1 || allEntities[i].nextYpos>viewportWinRows-2){ if(allEntities[i].nextYpos < 1 || allEntities[i].nextYpos>viewportWinRows-2){
allEntities[i].nextYpos = allEntities[i].curYpos; allEntities[i].nextYpos = allEntities[i].curYpos;
} }

Loading…
Cancel
Save