@ -3,7 +3,7 @@
# include <string.h>
# include <weaponsSystem.h>
void drawViewport ( ) {
void updateViewportWin ( ) {
mvwprintw ( viewportWin , 10 , 10 , " ++++ " ) ;
mvwprintw ( viewportWin , 11 , 10 , " + + " ) ;
mvwprintw ( viewportWin , 12 , 10 , " + + " ) ;
@ -41,33 +41,119 @@ void drawViewport(){
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 updateInfoWin ( ) {
werase ( infoWin ) ;
box ( infoWin , 0 , 0 ) ;
mvwaddch ( infoWin , 0 , 24 , ACS_TTEE ) ;
mvwaddch ( infoWin , 1 , 24 , ACS_VLINE ) ;
mvwaddch ( infoWin , 2 , 24 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 24 , ACS_VLINE ) ;
mvwaddch ( infoWin , 4 , 24 , ACS_BTEE ) ;
mvwaddch ( infoWin , 0 , 24 , ACS_TTEE ) ;
mvwaddch ( infoWin , 0 , 45 , ACS_TTEE ) ;
mvwaddch ( infoWin , 1 , 45 , ACS_VLINE ) ;
mvwaddch ( infoWin , 2 , 45 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 45 , ACS_VLINE ) ;
mvwaddch ( infoWin , 4 , 45 , ACS_BTEE ) ;
mvwaddch ( infoWin , 0 , 59 , ACS_TTEE ) ;
mvwaddch ( infoWin , 1 , 59 , ACS_VLINE ) ;
mvwaddch ( infoWin , 2 , 59 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 59 , ACS_VLINE ) ;
mvwaddch ( infoWin , 4 , 59 , ACS_BTEE ) ;
mvwprintw ( infoWin , 0 , 6 , " Current Weapon " ) ;
mvwprintw ( infoWin , 0 , 32 , " Weapons " ) ;
mvwprintw ( infoWin , 0 , 50 , " Items " ) ;
mvwprintw ( infoWin , 0 , 68 , " Other " ) ;
mvwprintw ( infoWin , 1 , 7 , " Weapon: %s " , allEntities [ 0 ] . weapons [ allEntities [ 0 ] . curWeapon ] . type ) ;
mvwprintw ( infoWin , 2 , 9 , " 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 ( infoWin , 3 , 8 , " Bombs: 0 " ) ;
mvwaddch ( infoWin , 1 , 26 , ACS_ULCORNER ) ;
mvwaddch ( infoWin , 2 , 26 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 26 , ACS_LLCORNER ) ;
mvwaddch ( infoWin , 1 , 27 , ACS_HLINE ) ;
mvwprintw ( infoWin , 2 , 27 , " 1 " ) ;
mvwaddch ( infoWin , 3 , 27 , ACS_HLINE ) ;
mvwaddch ( infoWin , 1 , 28 , ACS_URCORNER ) ;
mvwaddch ( infoWin , 2 , 28 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 28 , ACS_LRCORNER ) ;
mvwaddch ( infoWin , 1 , 31 , ACS_ULCORNER ) ;
mvwaddch ( infoWin , 2 , 31 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 31 , ACS_LLCORNER ) ;
mvwaddch ( infoWin , 1 , 32 , ACS_HLINE ) ;
mvwprintw ( infoWin , 2 , 32 , " 2 " ) ;
mvwaddch ( infoWin , 3 , 32 , ACS_HLINE ) ;
mvwaddch ( infoWin , 1 , 33 , ACS_URCORNER ) ;
mvwaddch ( infoWin , 2 , 33 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 33 , ACS_LRCORNER ) ;
mvwaddch ( infoWin , 1 , 36 , ACS_ULCORNER ) ;
mvwaddch ( infoWin , 2 , 36 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 36 , ACS_LLCORNER ) ;
mvwaddch ( infoWin , 1 , 37 , ACS_HLINE ) ;
mvwprintw ( infoWin , 2 , 37 , " 3 " ) ;
mvwaddch ( infoWin , 3 , 37 , ACS_HLINE ) ;
mvwaddch ( infoWin , 1 , 38 , ACS_URCORNER ) ;
mvwaddch ( infoWin , 2 , 38 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 38 , ACS_LRCORNER ) ;
mvwaddch ( infoWin , 1 , 41 , ACS_ULCORNER ) ;
mvwaddch ( infoWin , 2 , 41 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 41 , ACS_LLCORNER ) ;
mvwaddch ( infoWin , 1 , 42 , ACS_HLINE ) ;
mvwprintw ( infoWin , 2 , 42 , " 4 " ) ;
mvwaddch ( infoWin , 3 , 42 , ACS_HLINE ) ;
mvwaddch ( infoWin , 1 , 43 , ACS_URCORNER ) ;
mvwaddch ( infoWin , 2 , 43 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 43 , ACS_LRCORNER ) ;
mvwaddch ( infoWin , 1 , 48 , ACS_ULCORNER ) ;
mvwaddch ( infoWin , 2 , 48 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 48 , ACS_LLCORNER ) ;
mvwaddch ( infoWin , 1 , 49 , ACS_HLINE ) ;
mvwprintw ( infoWin , 2 , 49 , " Q " ) ;
mvwaddch ( infoWin , 3 , 49 , ACS_HLINE ) ;
mvwaddch ( infoWin , 1 , 50 , ACS_URCORNER ) ;
mvwaddch ( infoWin , 2 , 50 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 50 , ACS_LRCORNER ) ;
mvwaddch ( infoWin , 1 , 54 , ACS_ULCORNER ) ;
mvwaddch ( infoWin , 2 , 54 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 54 , ACS_LLCORNER ) ;
mvwaddch ( infoWin , 1 , 55 , ACS_HLINE ) ;
mvwprintw ( infoWin , 2 , 55 , " E " ) ;
mvwaddch ( infoWin , 3 , 55 , ACS_HLINE ) ;
mvwaddch ( infoWin , 1 , 56 , ACS_URCORNER ) ;
mvwaddch ( infoWin , 2 , 56 , ACS_VLINE ) ;
mvwaddch ( infoWin , 3 , 56 , ACS_LRCORNER ) ;
mvwprintw ( infoWin , 1 , 66 , " Cash: 0 " ) ;
mvwprintw ( infoWin , 2 , 64 , " Killed: %d " , allEntities [ 0 ] . killCount ) ;
mvwprintw ( infoWin , 3 , 66 , " Time: 00:00 " ) ;
wnoutrefresh ( infoWin ) ;
}
void drawGameOverWin ( ) {
gameOverWin = newwin ( viewportWinRows / 2 , viewportWinCols / 2 , viewportWinRows / 4 , viewportWinCols / 4 ) ;
gameOverWin = newwin ( 11 , 39 , viewportWinRows / 4 , viewportWinCols / 4 ) ;
int gameOverWinRows , gameOverWinCols ;
getmaxyx ( gameOverWin , gameOverWinRows , gameOverWinCols ) ;
mvwprintw ( gameOverWin , 1 , ( gameOverWinCols - strlen ( " GAME OVER " ) ) / 2 , " %s " , " GAME OVER " ) ;
mvwprintw ( gameOverWin , ( gameOverWinRows / 2 ) - 1 , 1 , " Shots Fired: %i " , allEntities [ 0 ] . projectilesFired ) ;
mvwprintw ( gameOverWin , ( gameOverWinRows / 2 ) - 2 , 1 , " Zombies Killed: %i " , allEntities [ 0 ] . killCount ) ;
mvwprintw ( gameOverWin , 3 , 5 , " Zombies Killed: %i " , allEntities [ 0 ] . killCount ) ;
mvwprintw ( gameOverWin , 4 , 7 , " Money Earned: 0 " ) ;
mvwprintw ( gameOverWin , 5 , 8 , " Shots Fired: %i " , allEntities [ 0 ] . projectilesFired ) ;
if ( allEntities [ 0 ] . projectilesFired ! = 0 ) {
float hitPercent = ( ( ( float ) allEntities [ 0 ] . hitCount / ( float ) allEntities [ 0 ] . projectilesFired ) * 100 ) ;
mvwprintw ( gameOverWin , ( gameOverWinRows / 2 ) , 1 , " Accuracy: %.0f%% " , hitPercent ) ;
mvwprintw ( gameOverWin , 6 , 1 1, " Accuracy: %.0f%% " , hitPercent ) ;
}
else {
mvwprintw ( gameOverWin , ( gameOverWinRows / 2 ) , 1 , " Accuracy: N/A " ) ;
mvwprintw ( gameOverWin , 6 , 1 1, " Accuracy: N/A " ) ;
}
mvwprintw ( gameOverWin , 7 , 15 , " Time: 00:00 " ) ;
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 ) ;