diff --git a/collisionDetection.c b/collisionDetection.c index ff07f6d..426778b 100644 --- a/collisionDetection.c +++ b/collisionDetection.c @@ -26,7 +26,7 @@ void checkProjectileCollision(struct Projectile *projectileRef ){ if(collisionEvent.collidedWithEntity){ if(!strcmp(collisionEvent.collidedWithEntity->type,"zombie")){ projectileRef->isAlive=0; - collisionEvent.collidedWithEntity->isAlive=0; + collisionEvent.collidedWithEntity->isAlive=0; allEntities[0].killCount++; if (allEntities[0].killCount != 0 && allEntities[0].killCount%5==0){ itemModifier++; @@ -34,7 +34,6 @@ void checkProjectileCollision(struct Projectile *projectileRef ){ zombieModifier-=5; } } - mvwaddch(viewportWin, collisionEvent.collidedWithEntity->curYpos, collisionEvent.collidedWithEntity->curXpos, ' '); } } } @@ -44,7 +43,6 @@ void checkPlayerCollision(){ if(collisionEvent.collidedWithEntity){ if(!strcmp(collisionEvent.collidedWithEntity->type,"zombie")){ collisionEvent.collidedWithEntity->isAlive=0; - mvwaddch(viewportWin, allEntities[0].curYpos, allEntities[0].curXpos, ' '); drawGameOverWin(); } } diff --git a/drawWindows.c b/drawWindows.c index a52f949..846bb9f 100644 --- a/drawWindows.c +++ b/drawWindows.c @@ -2,21 +2,10 @@ #include #include #include - -void drawScore(){ - werase(scoreWin); - box(scoreWin, 0, 0); - mvwprintw(scoreWin, 1, 1, "Current Weapon: %s",allEntities[0].weapons[allEntities[0].curWeapon].type); - mvwprintw(scoreWin, 2, 1, "Ammo: %d/%d:%d",allEntities[0].weapons[allEntities[0].curWeapon].curCapacity,allEntities[0].weapons[allEntities[0].curWeapon].maxCapacity,allEntities[0].weapons[allEntities[0].curWeapon].curMags); - mvwprintw(scoreWin,3,1,"Zombies Killed: %d",allEntities[0].killCount); - mvwprintw(scoreWin,4,1,"Projectiles Fired: %d",allEntities[0].projectilesFired); - mvwprintw(scoreWin,5,1,"Zombies Modifier: %d",zombieModifier); - mvwprintw(scoreWin,6,1,"Item Modifier: %d",itemModifier); - wnoutrefresh(scoreWin); -} +#include void drawViewport(){ - box(viewportWin,0,0); +// box(viewportWin,0,0); int i; for(i=0; i=allProjectiles[i].range || allProjectiles[i].curYpos > viewportWinRows || allProjectiles[i].curYpos < 0 || allProjectiles[i].curXpos > viewportWinCols || allProjectiles[i].curXpos < 0){ + allProjectiles[i].isAlive=0; + mvwaddch(viewportWin, allProjectiles[i].curYpos, allProjectiles[i].curXpos, ' '); + } + } + box(viewportWin,0,0); wnoutrefresh(viewportWin); doupdate(); } +void drawScore(){ + werase(scoreWin); + mvwprintw(scoreWin, 1, 1, "Current Weapon: %s",allEntities[0].weapons[allEntities[0].curWeapon].type); + mvwprintw(scoreWin, 2, 1, "Ammo: %d/%d:%d",allEntities[0].weapons[allEntities[0].curWeapon].curCapacity,allEntities[0].weapons[allEntities[0].curWeapon].maxCapacity,allEntities[0].weapons[allEntities[0].curWeapon].curMags); + mvwprintw(scoreWin,3,1,"Zombies Killed: %d",allEntities[0].killCount); + mvwprintw(scoreWin,4,1,"Projectiles Fired: %d",allEntities[0].projectilesFired); + mvwprintw(scoreWin,5,1,"Zombies Modifier: %d",zombieModifier); + mvwprintw(scoreWin,6,1,"Item Modifier: %d",itemModifier); + box(scoreWin, 0, 0); + wnoutrefresh(scoreWin); +} + + void drawGameOverWin(){ getmaxyx(stdscr,scrRows,scrCols); gameOverWin=newwin(scrRows/2,scrCols/2,scrRows/4,scrCols/4); - box(gameOverWin,0,0); int gameOverWinRows, gameOverWinCols; getmaxyx(gameOverWin,gameOverWinRows,gameOverWinCols); mvwprintw(gameOverWin,1,(gameOverWinCols-strlen("GAME OVER"))/2,"%s","GAME OVER"); @@ -46,6 +64,7 @@ void drawGameOverWin(){ mvwprintw(gameOverWin,(gameOverWinRows/2),1,"Zombies Killed: %i",allEntities[0].killCount); mvwprintw(gameOverWin,(gameOverWinRows)-2,(gameOverWinCols-strlen("Press 'q' to quit or 'r' to restart"))/2,"%s","Press 'q' to quit or 'r' to restart"); nodelay(stdscr, FALSE); + box(gameOverWin,0,0); wnoutrefresh(gameOverWin); doupdate(); while(true){ diff --git a/initializeWorld.c b/initializeWorld.c index cbb0a75..d0ea4a5 100644 --- a/initializeWorld.c +++ b/initializeWorld.c @@ -23,8 +23,8 @@ void initializeWorld() { scoreWin=newwin(10,scrCols,scrRows-10,0); allEntities[0]=player; - allEntities[0].curYpos=(rand()%(viewportWinRows-2))+1; - allEntities[0].curXpos=(rand()%(viewportWinCols-2))+1; + allEntities[0].curYpos=viewportWinRows/2; + allEntities[0].curXpos=viewportWinCols/2; allEntities[0].nextYpos=allEntities[0].curYpos; allEntities[0].nextXpos=allEntities[0].curXpos; allEntities[0].weapons[1]=pistol; diff --git a/weaponsSystem.c b/weaponsSystem.c index 23ea14c..1d3f206 100644 --- a/weaponsSystem.c +++ b/weaponsSystem.c @@ -5,42 +5,32 @@ void moveProjectiles(){ int i; for(i=0; i=projectiles[i].range || projectiles[i].curYpos > viewportWinRows || projectiles[i].curYpos < 0 || projectiles[i].curXpos > viewportWinCols || projectiles[i].curXpos < 0){ - projectiles[i].isAlive=0; - mvwaddch(viewportWin, projectiles[i].curYpos, projectiles[i].curXpos, ' '); - } + allProjectiles[i].distanceTraveled++; } } } @@ -57,26 +47,30 @@ void fireWeapon(struct Weapon *weaponRef, char *direction){ if(!strcmp(direction,"up")){ projectile.range*=.4; projectile.direction='w'; + projectile.curYpos--; projectile.symbol=weaponRef->symbols[2]; } if(!strcmp(direction,"left")){ projectile.direction='a'; + projectile.curXpos--; projectile.symbol=weaponRef->symbols[0]; } if(!strcmp(direction,"down")){ projectile.range*=.4; projectile.direction='s'; + projectile.curYpos++; projectile.symbol=weaponRef->symbols[6]; } if(!strcmp(direction,"right")){ projectile.direction='d'; + projectile.curXpos++; projectile.symbol=weaponRef->symbols[4]; } int i; for(i=0;i