#include #include #include void moveProjectiles(){ int i; for(i=0; i allProjectiles[i].speed){ allProjectiles[i].prevYpos=allProjectiles[i].curYpos; allProjectiles[i].prevXpos=allProjectiles[i].curXpos; checkProjectileCollision(&allProjectiles[i]); 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; } allProjectiles[i].lastMoveClock = clock(); } } } void fireWeapon(struct Weapon *weaponRef, char *direction){ struct Projectile projectile; projectile.range=weaponRef->projectileRange; projectile.speed=weaponRef->projectileSpeed; projectile.isAlive=1; projectile.distanceTraveled=0; projectile.curYpos=allEntities[0].curYpos; projectile.curXpos=allEntities[0].curXpos; projectile.lastMoveClock=clock(); 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; }