One of my first programming projects. I tried to learn C and use curses...it is quite embarrassing looking back at it now :D
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.
 
 

60 lines
2.0 KiB

#include <world.h>
struct CollisionEvent collisionDetect(int objYpos, int objXpos){
int i;
for(i=1; i<MAX_ENTITIES; i++){
if(allEntities[i].isAlive){
if(objYpos==allEntities[i].curYpos && objXpos==allEntities[i].curXpos){
struct CollisionEvent collisionEvent = {.collidedWithEntity=&allEntities[i]};
return collisionEvent;
}
}
}
for(i=0; i<MAX_ITEMS; i++){
if(allItems[i].isAlive){
if(objYpos==allItems[i].curYpos && objXpos==allItems[i].curXpos){
struct CollisionEvent collisionEvent = {.collidedWithItem=&allItems[i]};
return collisionEvent;
}
}
}
struct CollisionEvent collisionEvent = {.collidedWithItem=0,.collidedWithEntity=0};
return collisionEvent;
}
void checkProjectileCollision(struct Projectile *projectileRef ){
struct CollisionEvent collisionEvent = collisionDetect(projectileRef->curYpos, projectileRef->curXpos);
if(collisionEvent.collidedWithEntity){
if(!strcmp(collisionEvent.collidedWithEntity->type,"zombie")){
projectileRef->isAlive=0;
collisionEvent.collidedWithEntity->isAlive=0;
allEntities[0].killCount++;
if (allEntities[0].killCount != 0 && allEntities[0].killCount%5==0){
itemModifier++;
if(zombieModifier>5){
zombieModifier-=5;
}
}
mvwaddch(viewportWin, collisionEvent.collidedWithEntity->curYpos, collisionEvent.collidedWithEntity->curXpos, ' ');
}
}
}
void checkPlayerCollision(){
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].curYpos, allEntities[0].curXpos);
if(collisionEvent.collidedWithEntity){
if(!strcmp(collisionEvent.collidedWithEntity->type,"zombie")){
collisionEvent.collidedWithEntity->isAlive=0;
mvwaddch(viewportWin, allEntities[0].curYpos, allEntities[0].curXpos, ' ');
drawGameOverWin();
}
}
if(collisionEvent.collidedWithItem){
if(!strcmp(collisionEvent.collidedWithItem->type,"Pistol Magazine")){
if(allEntities[0].weapons[1].isAlive){
addMagazine(&allEntities[0].weapons[1]);
collisionEvent.collidedWithItem->isAlive=0;
}
}
}
}