#include #include #include void moveProjectiles(){ int i; for(i=0; i=allProjectiles[i].range || allProjectiles[i].curYpos > viewportWinRows || allProjectiles[i].curYpos < 0 || allProjectiles[i].curXpos > viewportWinCols || allProjectiles[i].curXpos < 0){ // allProjectiles[i].isAlive=0; //} allProjectiles[i].prevYpos=allProjectiles[i].curYpos; allProjectiles[i].prevXpos=allProjectiles[i].curXpos; switch(allProjectiles[i].direction){ case 'w':{ allProjectiles[i].curYpos--; break; } case 'a':{ allProjectiles[i].curXpos--; break; } case 's':{ allProjectiles[i].curYpos++; break; } case 'd':{ allProjectiles[i].curXpos++; break; } } allProjectiles[i].distanceTraveled++; checkProjectileCollision(&allProjectiles[i]); if(allProjectiles[i].distanceTraveled>=allProjectiles[i].range){ allProjectiles[i].isAlive=0; } } } } 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; }