@ -2,21 +2,10 @@
# include <screen.h>
# include <stdlib.h>
# include <string.h>
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 <weaponsSystem.h>
void drawViewport ( ) {
box ( viewportWin , 0 , 0 ) ;
// box(viewportWin,0,0);
int i ;
for ( i = 0 ; i < MAX_ITEMS ; i + + ) {
if ( allItems [ i ] . isAlive ) {
@ -31,14 +20,43 @@ void drawViewport(){
allEntities [ i ] . curXpos = allEntities [ i ] . nextXpos ;
}
}
for ( i = 0 ; i < MAX_PROJECTILES ; i + + ) {
if ( allProjectiles [ i ] . isAlive ) {
mvwaddch ( viewportWin , allProjectiles [ i ] . curYpos , allProjectiles [ i ] . curXpos , allProjectiles [ i ] . symbol ) ;
}
else if ( mvwinch ( viewportWin , allProjectiles [ i ] . curYpos , allProjectiles [ i ] . curXpos ) = = allProjectiles [ i ] . symbol ) {
mvwaddch ( viewportWin , allProjectiles [ i ] . curYpos , allProjectiles [ i ] . curXpos , ' ' ) ;
}
checkProjectileCollision ( & allProjectiles [ i ] ) ;
if ( mvwinch ( viewportWin , allProjectiles [ i ] . prevYpos , allProjectiles [ i ] . prevXpos ) = = allProjectiles [ i ] . symbol ) {
mvwaddch ( viewportWin , allProjectiles [ i ] . prevYpos , allProjectiles [ i ] . prevXpos , ' ' ) ;
}
if ( allProjectiles [ i ] . distanceTraveled > = 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 ) {