From 907a0ba51f3366ea76a1b1fe7cb7aff73687f272 Mon Sep 17 00:00:00 2001 From: Jerry Aldrich Date: Sat, 28 Mar 2015 01:45:11 -0500 Subject: [PATCH] Add addZombie() and getOpenPos() --- moveable.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 83 insertions(+), 11 deletions(-) diff --git a/moveable.c b/moveable.c index 79e49ad..71ce142 100644 --- a/moveable.c +++ b/moveable.c @@ -3,7 +3,7 @@ #define MAX_PROJECTILES 2 #define MAX_ZOMBIES 1000 -#define MAX_ALIVE 10000 +#define MAX_ALIVE 10 int scrRows,scrCols; @@ -50,10 +50,9 @@ struct Entity { struct Entity player = {.type="player",.symbol='@', .curYpos=1, .curXpos=1, .nextYpos=1, .nextXpos=1 ,.isAlive=1}; - struct Entity zombies[MAX_ZOMBIES]; struct Entity allEntities[MAX_ALIVE]; -struct Entity zombie = {.type="zombie", .symbol='Z', .curYpos=5, .curXpos=5, .nextYpos=5, .nextXpos=5 ,.isAlive=1}; +struct Entity zombie = {.type="zombie", .symbol='A', .curYpos=5, .curXpos=5, .nextYpos=5, .nextXpos=5 ,.isAlive=1}; struct Weapon pistol = {.name="Pistol", .range=3, .maxCapacity=12, .curCapacity=12, .symbols="-\\|/-\\|/"}; @@ -178,12 +177,74 @@ void drawViewport(){ mvwaddch(viewportWin, allEntities[i].curYpos, allEntities[i].curXpos, ' '); mvwaddch(viewportWin, allEntities[i].nextYpos, allEntities[i].nextXpos, allEntities[i].symbol); allEntities[i].curYpos = allEntities[i].nextYpos; - allEntities[i].curXpos = allEntities[i].nextXpos; } + allEntities[i].curXpos = allEntities[i].nextXpos; + } } wnoutrefresh(viewportWin); doupdate(); } +struct possiblePos{ + int x; + int y; +}openPos; + +int getOpenPos(){ + int chooseAnother=1; + while(chooseAnother){ + spaceExists: + openPos.y=(rand()%(viewportWinRows-1)+1); + openPos.x=(rand()%(viewportWinCols-1)+1); + if(mvwinch(viewportWin,openPos.y,openPos.x)==' '){ + int i; + for(i=1;i0){ fireWeapon(&pistol, "up"); @@ -290,9 +363,8 @@ int main() { struct Entity * hitEntity = collisionDetect(allEntities[0].curYpos, allEntities[0].curXpos); if(hitEntity){ if(hitEntity->type=="zombie"){ - mvwprintw(viewportWin,1,1,"TEST"); + mvwprintw(viewportWin,1,10,"TEST"); allEntities[0].isAlive=0; - hitEntity->isAlive=0; mvwaddch(viewportWin, allEntities[0].curYpos, allEntities[0].curXpos, ' '); } }