No, the thread mentions some code in "Ships_init.c" but nothing about the code which calculates the effect of crew size on cannons. But I've found it in "PROGRAM\SEA_AI\AIShip.c", in function "Ship_SetCannonQtyByCrew":
Code:
ref rCannon = GetCannonByType(sti(rCharacter.Ship.Cannons.Type));
float CrewPerGun = stf(rCannon.caliber);
if (rCannon.type == CANNON_NAME_LONG)
CrewPerGun /= 2.0; // 12 pounder takes 6 crew, for example
else
CrewPerGun /= 6.0; // carronades take fewer crew and are normally twice the caliber of the long guns they replace
// Note that if the player doesn't have USE_REAL_CANNONS set, the CrewPerGun is divided by 6 as well
CrewPerGun = fclamp(1.0, 10.0, CrewPerGun); // gun crew no less than 1 and no more than 10
int iCanQty = GetCannonQuantity(&rCharacter);
float CrewRequired = CrewPerGun * iCanQty;
CrewRequired /= 2.0; // We're only loading one broadside at a time.
if (CrewRequired < 1) CrewRequired = 1;
int CrewQuantity = GetCrewQuantity(rCharacter);
if(iRealismMode>0)
{
int MinSailCrew = GetCharacterShipHP(rCharacter)/100; // crew needed for sailing, intentionally not using mininum crew here
if (MinSailCrew >= 100000/100) MinSailCrew = 100; // Cursed ships are a special case
CrewQuantity -= MinSailCrew;
}
if (CrewQuantity < CrewPerGun) CrewQuantity = CrewPerGun; // detail one gun crew from the MinSailCrew
So, the crew for guns is half the calibre, multiplied by the number of guns, then half again because you normally only fire one broadside at a time. In "Realistic" mode, the crew to sail the ship is 1% of the ship's HP - and there's already a cap for cursed ships, which need 100, not 1000.
Running the calculations for
Flying Dutchman, with 58 guns of 32lb and maximum crew 420:
CrewPerGun = 32/2 = 16, CrewRequired = 16*58/2 = 464
MinSailCrew = 100000/100 = 1000, then changed to 100
CrewQuantity = 420-100 = 320
And so the
Flying Dutchman is short of crew for its cannons before the battle even starts.
And now,
Sovereign of the Seas, alias "Manowar1", with 100 guns of 32lb and maximum crew 1000:
CrewPerGun = 32/2 = 16, CrewRequired = 16*100/2 = 800
MinSailCrew = 16000/100 = 160
CrewQuantity = 1000 - 160 = 840
So it has enough to sail the ship and man all its guns, with a few to spare.
Raising the crew of the
Flying Dutchman to 600 ought to even things up a bit...