From 673dd55d481552ee711e360598e4521c30fdf52e Mon Sep 17 00:00:00 2001 From: Jerry Aldrich Date: Mon, 13 Apr 2015 22:35:53 -0500 Subject: [PATCH] Add screen size and add accuracy to Game Over win --- collisionDetection.c | 1 + drawWindows.c | 14 +++++++++----- gameLoop.c | 3 +-- getPos.c | 1 - initializeWorld.c | 29 +++++++++++++++++++++-------- screen.h | 13 ------------- structs.h | 1 + weaponsSystem.c | 1 - world.h | 10 +++++++++- zombies.c | 1 - 10 files changed, 42 insertions(+), 32 deletions(-) delete mode 100644 screen.h diff --git a/collisionDetection.c b/collisionDetection.c index 426778b..44a7440 100644 --- a/collisionDetection.c +++ b/collisionDetection.c @@ -28,6 +28,7 @@ void checkProjectileCollision(struct Projectile *projectileRef ){ projectileRef->isAlive=0; collisionEvent.collidedWithEntity->isAlive=0; allEntities[0].killCount++; + allEntities[0].hitCount++; if (allEntities[0].killCount != 0 && allEntities[0].killCount%5==0){ itemModifier++; if(zombieModifier>5){ diff --git a/drawWindows.c b/drawWindows.c index 846bb9f..726c1f0 100644 --- a/drawWindows.c +++ b/drawWindows.c @@ -1,11 +1,9 @@ #include -#include #include #include #include void drawViewport(){ -// box(viewportWin,0,0); int i; for(i=0; i -#include #include #include #include @@ -48,7 +47,7 @@ void gameLoop(){ } case 'd': case 'D':{ - if(allEntities[0].curXpos < scrCols-2){ + if(allEntities[0].curXpos < stdscrCols-2){ allEntities[0].nextXpos++; if(allEntities[0].nextXpos > viewportWinCols-1){ allEntities[0].nextXpos = viewportWinCols-1; diff --git a/getPos.c b/getPos.c index d46dcd8..0c930b2 100644 --- a/getPos.c +++ b/getPos.c @@ -1,4 +1,3 @@ -#include #include #include struct OpenPos getOpenPos(){ diff --git a/initializeWorld.c b/initializeWorld.c index d0ea4a5..e53cbc9 100644 --- a/initializeWorld.c +++ b/initializeWorld.c @@ -1,15 +1,12 @@ #include +#include #include #include #include -#include #include void initializeWorld() { - struct Entity player = {.type="player",.symbol='@', .curYpos=1, .curXpos=1, .nextYpos=1, .nextXpos=1 ,.isAlive=1}; - struct Weapon pistol = {.type="Pistol", .isAlive=1, .range=3, .maxCapacity=12, .curCapacity=12, .symbols="-\\|/-\\|/"}; - srand(time(NULL)); initscr(); curs_set(0); @@ -17,10 +14,26 @@ void initializeWorld() { nodelay(stdscr, TRUE); keypad(stdscr, TRUE); noecho(); - getmaxyx(stdscr,scrRows,scrCols); - viewportWin=newwin(scrRows-10,scrCols,0,0); - getmaxyx(viewportWin,viewportWinRows,viewportWinCols); - scoreWin=newwin(10,scrCols,scrRows-10,0); + + struct Entity player = {.type="player",.symbol='@', .curYpos=1, .curXpos=1, .nextYpos=1, .nextXpos=1 ,.isAlive=1}; + struct Weapon pistol = {.type="Pistol", .isAlive=1, .range=3, .maxCapacity=12, .curCapacity=12, .symbols="-\\|/-\\|/"}; + + viewportWinRows = 21; + viewportWinCols = 87; + scoreWinRows = 7; + scoreWinCols = 87; + + getmaxyx(stdscr,stdscrRows,stdscrCols); + if (stdscrRows < viewportWinRows+scoreWinRows || stdscrCols < viewportWinCols){ + endwin(); + printf("ERROR: Terminal too small\n"); + printf("Minimum size is: %dx%d\n",viewportWinRows+scoreWinRows,viewportWinCols); + printf("Terminal size is: %dx%d\n",stdscrRows,stdscrCols); + exit(0); + } + + viewportWin=newwin(viewportWinRows,viewportWinCols,0,0); + scoreWin=newwin(scoreWinRows,scoreWinCols,viewportWinRows,0); allEntities[0]=player; allEntities[0].curYpos=viewportWinRows/2; diff --git a/screen.h b/screen.h deleted file mode 100644 index a481465..0000000 --- a/screen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _SCREEN -#define _SCREEN - -#include - -WINDOW* viewportWin; -WINDOW* scoreWin; -WINDOW* gameOverWin; - -int scrRows,scrCols; -int viewportWinRows,viewportWinCols; - -#endif diff --git a/structs.h b/structs.h index 1701e93..284e61d 100644 --- a/structs.h +++ b/structs.h @@ -21,6 +21,7 @@ struct Entity { struct Weapon weapons[9]; int curWeapon; int isAlive; + int hitCount; int killCount; int projectilesFired; diff --git a/weaponsSystem.c b/weaponsSystem.c index 1d3f206..32995ea 100644 --- a/weaponsSystem.c +++ b/weaponsSystem.c @@ -1,4 +1,3 @@ -#include #include #include #include diff --git a/world.h b/world.h index e7e6f43..6509449 100644 --- a/world.h +++ b/world.h @@ -4,10 +4,18 @@ #define MAX_ENTITIES 10000 #define MAX_ITEMS 100 #include -#include +#include #include +WINDOW* viewportWin; +WINDOW* scoreWin; +WINDOW* gameOverWin; + +int stdscrRows,stdscrCols; +int viewportWinRows,viewportWinCols; +int scoreWinRows,scoreWinCols; + struct Entity allEntities[MAX_ENTITIES]; struct Item allItems[MAX_ITEMS]; diff --git a/zombies.c b/zombies.c index 95b66ba..fde94e8 100644 --- a/zombies.c +++ b/zombies.c @@ -1,6 +1,5 @@ #include #include -#include #include void addZombie(int y, int x){ if (y && x){