void P2MultiBeamFrigateFire(Ship *ship,SpaceObjRotImpTarg *target) { GunInfo *guninfo = ship->gunInfo; sdword numGuns; sdword i; Gun *gun; if ((guninfo == NULL)||(target == NULL)) { return; } numGuns = guninfo->numGuns; for (i=0;i<numGuns;i++) { gun = &guninfo->guns[i]; if (gunCanShoot(ship, gun)) if (gun->gunstatic->guntype==GUN_Gimble) { gunOrientGimbleGun(ship,gun,target); gunShoot(ship,gun,target); } } }
void DefaultShipFire(Ship *ship,SpaceObjRotImpTarg *target) { GunInfo *guninfo = ship->gunInfo; sdword numGuns; sdword i; Gun *gun; if (guninfo == NULL) { return; } numGuns = guninfo->numGuns; for (i=0;i<numGuns;i++) { gun = &guninfo->guns[i]; if (gunCanShoot(ship, gun)) { switch (gun->gunstatic->guntype) { case GUN_MissileLauncher: case GUN_MineLauncher: if (gunHasMissiles(gun)) { missileShoot(ship,gun,target); } break; case GUN_NewGimble: case GUN_Gimble: case GUN_Fixed: gunShoot(ship,gun,target); break; default: dbgAssert(FALSE); } } } }