#include #include #include #include void moveProjectiles(){ int i; for(i=0; i=projectiles[i].range || projectiles[i].curYpos > viewportWinRows || projectiles[i].curYpos < 0 || projectiles[i].curXpos > viewportWinCols || projectiles[i].curXpos < 0){ projectiles[i].isAlive=0; mvwaddch(viewportWin, projectiles[i].curYpos, projectiles[i].curXpos, ' '); } } else{ mvwaddch(viewportWin, projectiles[i].curYpos, projectiles[i].curXpos, ' '); } } usleep(30000); } void fireWeapon(struct Weapon *weaponRef, char *direction){ struct Projectile projectile; if (!strcmp(weaponRef->type,"Pistol")){ projectile.range=20; } projectile.isAlive=1; projectile.distanceTraveled=0; projectile.curYpos=allEntities[0].curYpos; projectile.curXpos=allEntities[0].curXpos; if(!strcmp(direction,"up")){ projectile.range*=.4; 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.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;icurMags++; } void reload(struct Weapon *weaponRef){ weaponRef->curMags--; weaponRef->curCapacity=weaponRef->maxCapacity; }