void ProjectileManager::createProjectile(PlayerShip* player, int type) { int currentTime = objManager->mary->currentTime; int timeElapsed = currentTime - player->lastFired; //fire rate should be dependent on weapon type int fireRate = 80; //we can create projectile if( timeElapsed > fireRate && player->maxProjPerPlayer > player->currentNumProj) { Projectile* proj = objManager->createProjectile(); if (proj != NULL) { SharedInfoProjectile* sharedInfo = (SharedInfoProjectile*)proj->sharedInfo; //increase proj number player->currentNumProj++; //look at type and init correct projectile proj->damageAmt = 5; //set flag to just created ((SharedInfoProjectile*)proj->sharedInfo)->projFlag |= (char)1; sharedInfo->shipID = player->index; sharedInfo->type = 0; //set proj parameters for movement proj->initRotXY(player->getRotXY()); proj->direction.x = player->fireDirection.x; proj->direction.y = player->fireDirection.y; proj->createTime = currentTime; } else { cerr<<"Couldn't create Projectile."<<endl; } player->lastFired = currentTime; } //reset player fire rate player->fireDirection.x = 0; player->fireDirection.y = 0; }