From 7ad9bf520c29995b68ea0c007704195d872b5d6d Mon Sep 17 00:00:00 2001 From: Jerry Aldrich Date: Sun, 19 Apr 2015 01:45:21 -0500 Subject: [PATCH] Add fists weapon --- drawWindows.c | 13 ++++++-- events.c | 2 +- gameLoop.c | 42 ++++++++++++++++++++++---- getPos.c | 2 +- initializeWorld.c | 4 ++- weaponsSystem.c | 76 ++++++++++++++++++++++++++++++++--------------- 6 files changed, 104 insertions(+), 35 deletions(-) diff --git a/drawWindows.c b/drawWindows.c index d58053b..cc00c10 100644 --- a/drawWindows.c +++ b/drawWindows.c @@ -76,8 +76,15 @@ void updateInfoWin(){ mvwaddch(infoWin, 2, 26, ACS_VLINE); mvwaddch(infoWin, 3, 26, ACS_LLCORNER); mvwaddch(infoWin, 1, 27, ACS_HLINE); - if(!strcmp(allEntities[0].weapons[1].type,"Pistol")){ - mvwprintw(infoWin, 2, 27, "1"); + if(!strcmp(allEntities[0].weapons[1].type,"Pistol") && (allEntities[0].weapons[1].curCapacity != 0 || allEntities[0].weapons[1].curMags != 0)){ + if(allEntities[0].curWeapon==1){ + wattron(infoWin,A_BOLD); + mvwprintw(infoWin, 2, 27, "1" ); + wattroff(infoWin,A_BOLD); + } + else{ + mvwprintw(infoWin, 2, 27, "1" ); + } } mvwaddch(infoWin, 3, 27, ACS_HLINE); mvwaddch(infoWin, 1, 28, ACS_URCORNER); @@ -89,7 +96,7 @@ void updateInfoWin(){ mvwaddch(infoWin, 3, 31, ACS_LLCORNER); mvwaddch(infoWin, 1, 32, ACS_HLINE); if(allEntities[0].weapons[2].type && !strcmp(allEntities[0].weapons[2].type,"Shotgun")){ - mvwprintw(infoWin, 2, 32, "2"); + mvwprintw(infoWin, 2, 32, "2"); } mvwaddch(infoWin, 3, 32, ACS_HLINE); mvwaddch(infoWin, 1, 33, ACS_URCORNER); diff --git a/events.c b/events.c index eb6c025..438016e 100644 --- a/events.c +++ b/events.c @@ -21,7 +21,7 @@ void addItem(char *type, int yPos, int xPos){ void tryRandomEvent(){ int eventTrigger = (rand()%100)+1; - if (eventTrigger < 10+itemModifier){ + if (eventTrigger < 15+itemModifier){ struct OpenPos openPos = getOpenPos(); addItem("Pistol Magazine", openPos.y, openPos.x); } diff --git a/gameLoop.c b/gameLoop.c index fe46f9e..41bb9cb 100644 --- a/gameLoop.c +++ b/gameLoop.c @@ -64,25 +64,25 @@ void gameLoop(){ break; } case KEY_UP:{ - if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0){ + if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0 || allEntities[0].curWeapon == 0){ fireWeapon(&allEntities[0].weapons[allEntities[0].curWeapon], "up"); } break; } case KEY_LEFT:{ - if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0){ + if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0 || allEntities[0].curWeapon == 0){ fireWeapon(&allEntities[0].weapons[allEntities[0].curWeapon], "left"); } break; } case KEY_DOWN:{ - if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0){ + if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0 || allEntities[0].curWeapon == 0){ fireWeapon(&allEntities[0].weapons[allEntities[0].curWeapon], "down"); } break; } case KEY_RIGHT:{ - if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0){ + if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0 || allEntities[0].curWeapon == 0){ fireWeapon(&allEntities[0].weapons[allEntities[0].curWeapon], "right"); } break; @@ -92,12 +92,44 @@ void gameLoop(){ if(allEntities[0].weapons[allEntities[0].curWeapon].curMags > 0 && allEntities[0].weapons[allEntities[0].curWeapon].curCapacity < allEntities[0].weapons[allEntities[0].curWeapon].maxCapacity ){ reload(&allEntities[0].weapons[allEntities[0].curWeapon]); } - } + break; + } + case '0':{ + allEntities[0].curWeapon=0; + break; + } + case '1':{ + if(allEntities[0].weapons[1].curCapacity > 0 || allEntities[0].weapons[1].curMags > 0){ + allEntities[0].curWeapon=1; + } + break; + } + case '2':{ + if(allEntities[0].weapons[2].curCapacity > 0 || allEntities[0].weapons[2].curMags > 0){ + allEntities[0].curWeapon=2; + } + break; + } + case '3':{ + if(allEntities[0].weapons[3].curCapacity > 0 || allEntities[0].weapons[3].curMags > 0){ + allEntities[0].curWeapon=3; + } + break; + } + case '4':{ + if(allEntities[0].weapons[4].curCapacity > 0 || allEntities[0].weapons[4].curMags > 0){ + allEntities[0].curWeapon=4; + } + break; + } default: allEntities[0].prevYpos=allEntities[0].curYpos; allEntities[0].prevXpos=allEntities[0].curXpos; break; } + if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity==0 && allEntities[0].weapons[allEntities[0].curWeapon].curMags==0){ + allEntities[0].curWeapon=0; + } updateViewportWin(); checkPlayerCollision(); updateViewportWin(); diff --git a/getPos.c b/getPos.c index 0c930b2..ba0c856 100644 --- a/getPos.c +++ b/getPos.c @@ -7,7 +7,7 @@ struct OpenPos getOpenPos(){ spaceExists: openPos.y=(rand()%(viewportWinRows-2)+1); openPos.x=(rand()%(viewportWinCols-2)+1); - if(mvwinch(viewportWin,openPos.y,openPos.x)==' ' && ((openPos.y > allEntities[0].curYpos+5 || openPos.y < allEntities[0].curYpos-5) || (openPos.x > allEntities[0].curXpos+5 || openPos.x < allEntities[0].curXpos-5))){ + if(mvwinch(viewportWin,openPos.y,openPos.x)==' ' && ((openPos.y > allEntities[0].curYpos+10 || openPos.y < allEntities[0].curYpos-10) || (openPos.x > allEntities[0].curXpos+10 || openPos.x < allEntities[0].curXpos-10))){ int i; for(i=1;isymbols[2]; + if(allEntities[0].curWeapon==0){ + if(!strcmp(direction,"up")){ + projectile.direction='w'; + projectile.symbol=weaponRef->symbols[2]; + } + if(!strcmp(direction,"left")){ + projectile.direction='a'; + projectile.symbol=weaponRef->symbols[0]; + } + if(!strcmp(direction,"down")){ + projectile.direction='s'; + projectile.symbol=weaponRef->symbols[6]; + } + if(!strcmp(direction,"right")){ + projectile.direction='d'; + projectile.symbol=weaponRef->symbols[4]; + } + int i; + for(i=0;isymbols[0]; - } - if(!strcmp(direction,"down")){ - projectile.range*=.4; - projectile.direction='s'; - projectile.symbol=weaponRef->symbols[6]; - } - if(!strcmp(direction,"right")){ - projectile.direction='d'; - projectile.symbol=weaponRef->symbols[4]; - } - int i; - for(i=0;isymbols[2]; + } + if(!strcmp(direction,"left")){ + projectile.direction='a'; + projectile.symbol=weaponRef->symbols[0]; + } + if(!strcmp(direction,"down")){ + projectile.range*=.4; + projectile.direction='s'; + projectile.symbol=weaponRef->symbols[6]; + } + if(!strcmp(direction,"right")){ + projectile.direction='d'; + projectile.symbol=weaponRef->symbols[4]; + } + int i; + for(i=0;i