Actually, all I want is an explanation.
static void _CalculateBalance(arnaCOUNTRY_BALANCE * Balance)
{
const arnaSETTINGS * Settings;
double BalanceGain;
double Least;
int Country;
Settings = arnaservGetSettings();
if(Balance->TotalPlayerCnt > 0 )
{
if(Settings->MinBalanceTotal != 0)
{
BalanceGain = (double)Balance->TotalPlayerCnt / (double)Settings->MinBalanceTotal;
}
else
{
BalanceGain = 1;
}
if(BalanceGain > 1)
{
BalanceGain = 1;
}
Least = 2.0;
for(Country=0;Country<pcMAX_COUNTRY;++Country)
{
Balance->CountryPer[Country] = (double)Balance->PlayerCnt[Country] / (double)Balance->TotalPlayerCnt;
if(Balance->CountryPer[Country] < Least)
{
Least = Balance->CountryPer[Country];
}
}
if(Least != 0)
{
for(Country=0;Country<pcMAX_COUNTRY;++Country)
{
Balance->MinEnyValue[Country] =
(Balance->CountryPer[Country] - (Least + Settings->BaseCountryPer)) * Settings->CountryBalanceScale * BalanceGain * 100;
if(Balance->MinEnyValue[Country] < 0)
{
Balance->MinEnyValue[Country] = 0;
}
if(Balance->MinEnyValue[Country] > Settings->MinEnyValue)
{
Balance->MinEnyValue[Country] = Settings->MinEnyValue;
}
}
}
}
else
{
for(Country=0;Country<pcMAX_COUNTRY;++Country)
{
Balance->MinEnyValue[Country] = 0;
}
}
if(Balance->TotalPlayerCnt < 6)
{
for(Country=0;Country<pcMAX_COUNTRY;++Country)
{
Balance->MinEnyValue[Country] = 0;
}
}
}