diff --git a/collisionDetection.c b/collisionDetection.c index a076802..113384c 100644 --- a/collisionDetection.c +++ b/collisionDetection.c @@ -67,11 +67,17 @@ void checkPlayerCollision(){ } } if(collisionEvent.collidedWithItem){ - if(!strcmp(collisionEvent.collidedWithItem->type,"Pistol Magazine")){ + if(!strcmp(collisionEvent.collidedWithItem->type,"Pistol")){ if(allEntities[0].weapons[1].isAlive){ addMagazine(&allEntities[0].weapons[1]); collisionEvent.collidedWithItem->isAlive=0; } + else{ + allEntities[0].weapons[1].isAlive=1; + allEntities[0].weapons[1].curCapacity=allEntities[0].weapons[1].maxCapacity; + allEntities[0].curWeapon=1; + collisionEvent.collidedWithItem->isAlive=0; + } } } } diff --git a/drawWindows.c b/drawWindows.c index cc00c10..7078e48 100644 --- a/drawWindows.c +++ b/drawWindows.c @@ -76,7 +76,7 @@ void updateInfoWin(){ mvwaddch(infoWin, 2, 26, ACS_VLINE); mvwaddch(infoWin, 3, 26, ACS_LLCORNER); mvwaddch(infoWin, 1, 27, ACS_HLINE); - if(!strcmp(allEntities[0].weapons[1].type,"Pistol") && (allEntities[0].weapons[1].curCapacity != 0 || allEntities[0].weapons[1].curMags != 0)){ + if(!strcmp(allEntities[0].weapons[1].type,"Pistol") && allEntities[0].weapons[1].isAlive){ if(allEntities[0].curWeapon==1){ wattron(infoWin,A_BOLD); mvwprintw(infoWin, 2, 27, "1" ); diff --git a/events.c b/events.c index 438016e..21298ae 100644 --- a/events.c +++ b/events.c @@ -7,12 +7,12 @@ #include void addItem(char *type, int yPos, int xPos){ - if(!strcmp(type,"Pistol Magazine")){ - struct Item pistolMag = {.type="Pistol Magazine", .symbol='=', .isAlive=1, .curXpos=xPos, .curYpos=yPos}; + if(!strcmp(type,"Pistol")){ + struct Item pistolItem = {.type="Pistol", .symbol='p', .isAlive=1, .curXpos=xPos, .curYpos=yPos}; int i; for (i=0;i 0 || allEntities[0].weapons[1].curMags > 0){ + if(allEntities[0].weapons[0].isAlive){ allEntities[0].curWeapon=1; } break; diff --git a/structs.h b/structs.h index bec657f..05cf9fe 100644 --- a/structs.h +++ b/structs.h @@ -13,6 +13,15 @@ struct Weapon{ float projectileSpeed; }; + +struct Item{ + char *type; + char symbol; + int isAlive; + int curYpos; + int curXpos; +}; + struct Entity { char *type; char *behavior; @@ -20,6 +29,7 @@ struct Entity { int prevYpos, prevXpos; int curYpos, curXpos; struct Weapon weapons[5]; + struct Item items[7]; int curWeapon; int isAlive; int hitCount; @@ -29,14 +39,6 @@ struct Entity { float speed; }; -struct Item{ - char *type; - char symbol; - int isAlive; - int curYpos; - int curXpos; -}; - struct Projectile{ int isAlive; diff --git a/weaponsSystem.c b/weaponsSystem.c index f8a2793..89c7654 100644 --- a/weaponsSystem.c +++ b/weaponsSystem.c @@ -69,7 +69,6 @@ void fireWeapon(struct Weapon *weaponRef, char *direction){ int i; for(i=0;i #include diff --git a/zombies.c b/zombies.c index dac17b6..336f280 100644 --- a/zombies.c +++ b/zombies.c @@ -4,7 +4,7 @@ void addZombie(int y, int x){ if (y && x){ int i; - for(i=0;i