so now we can teel for sure. this is from tib dawn source
/*
** Determine leadership rating.
*/
unsigned leadership = 0;
int index;
for (index = 0; index < Logic.Count(); index++) {
ObjectClass * object = Logic[index];
if (object->Owner() == house) {
leadership++;
}
}
HouseClass *houses[3];
for (index = 0; index < 3; index++) {
houses[index] =(HouseClass::As_Pointer((HousesType)(HOUSE_GOOD+index)));
}
GKilled = (HouseClass::As_Pointer(HOUSE_GOOD))->UnitsLost;
NKilled = (HouseClass::As_Pointer(HOUSE_BAD))->UnitsLost;
CKilled = (HouseClass::As_Pointer(HOUSE_NEUTRAL))->UnitsLost;
GBKilled = (HouseClass::As_Pointer(HOUSE_GOOD))->BuildingsLost;
NBKilled = (HouseClass::As_Pointer(HOUSE_BAD))->BuildingsLost;
CBKilled = (HouseClass::As_Pointer(HOUSE_NEUTRAL))->BuildingsLost;
/*
** New - ST 6/12/96 2:40PM
*/
GHarvested = (HouseClass::As_Pointer(HOUSE_GOOD))->HarvestedCredits;
NHarvested = (HouseClass::As_Pointer(HOUSE_BAD))->HarvestedCredits;
if (!leadership) leadership++;
leadership = Cardinal_To_Fixed(GKilled+GBKilled+leadership, leadership);
leadership = Fixed_To_Cardinal(100, leadership);
if (leadership > 100) leadership = 100;
/*
** Determine efficiency rating.
*/
int gharv = GHarvested;
int init = PlayerPtr->InitialCredits;
int cred = PlayerPtr->Available_Money();
unsigned efficiency = Cardinal_To_Fixed( (house == HOUSE_GOOD ? GHarvested : NHarvested) + (unsigned)PlayerPtr->InitialCredits+1, (unsigned)PlayerPtr->Available_Money()+1);
if (!efficiency) efficiency++;
efficiency = Fixed_To_Cardinal(100, efficiency);
if (efficiency > 100) efficiency = 100;
/*
** Calculate total score
*/
long total = ((leadership * 40) + (4600) + (efficiency * 14))/100;
if (!total) total++;
total *= (BuildLevel+1);