mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
(svn r22584) -Add: [NoAI] several functions to AICompany to find out performance information (Morloth)
This commit is contained in:
parent
f851a515cc
commit
0dc20c7d5f
@ -321,3 +321,8 @@ AIAbstractList <- AIList;
|
||||
AIList.ChangeItem <- AIList.SetValue;
|
||||
|
||||
AIRail.ERR_NONUNIFORM_STATIONS_DISABLED <- 0xFFFF;
|
||||
|
||||
AICompany.GetCompanyValue <- function(company)
|
||||
{
|
||||
return AICompany.GetQuarterlyCompanyValue(company, AICompany.CURRENT_QUARTER);
|
||||
}
|
||||
|
@ -72,3 +72,8 @@ AIAbstractList <- AIList;
|
||||
AIList.ChangeItem <- AIList.SetValue;
|
||||
|
||||
AIRail.ERR_NONUNIFORM_STATIONS_DISABLED <- 0xFFFF;
|
||||
|
||||
AICompany.GetCompanyValue <- function(company)
|
||||
{
|
||||
return AICompany.GetQuarterlyCompanyValue(company, AICompany.CURRENT_QUARTER);
|
||||
}
|
||||
|
@ -8,3 +8,8 @@
|
||||
*/
|
||||
|
||||
AILog.Info("1.1 API compatability in effect.");
|
||||
|
||||
AICompany.GetCompanyValue <- function(company)
|
||||
{
|
||||
return AICompany.GetQuarterlyCompanyValue(company, AICompany.CURRENT_QUARTER);
|
||||
}
|
||||
|
@ -398,7 +398,6 @@ function Regression::Company()
|
||||
print(" GetPresidentName(): " + AICompany.GetPresidentName(AICompany.COMPANY_SELF));
|
||||
print(" SetPresidentName(): " + AICompany.SetPresidentName("Regression AI"));
|
||||
print(" GetPresidentName(): " + AICompany.GetPresidentName(AICompany.COMPANY_SELF));
|
||||
print(" GetCompanyValue(): " + AICompany.GetCompanyValue(AICompany.COMPANY_SELF));
|
||||
print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.COMPANY_SELF));
|
||||
print(" GetName(): " + AICompany.GetName(240));
|
||||
print(" GetLoanAmount(): " + AICompany.GetLoanAmount());
|
||||
@ -438,6 +437,14 @@ function Regression::Company()
|
||||
print(" GetAutoRenewMoney(); " + AICompany.GetAutoRenewMoney(AICompany.COMPANY_SELF));
|
||||
print(" SetAutoRenewMoney(200000); " + AICompany.SetAutoRenewMoney(200000));
|
||||
print(" SetAutoRenewMoney(100000); " + AICompany.SetAutoRenewMoney(100000));
|
||||
for (local i = -1; i <= AICompany.EARLIEST_QUARTER; i++) {
|
||||
print(" Quarter: " + i);
|
||||
print(" GetQuarterlyIncome(); " + AICompany.GetQuarterlyIncome(AICompany.COMPANY_SELF, i));
|
||||
print(" GetQuarterlyExpenses(); " + AICompany.GetQuarterlyExpenses(AICompany.COMPANY_SELF, i));
|
||||
print(" GetQuarterlyCargoDelivered(); " + AICompany.GetQuarterlyCargoDelivered(AICompany.COMPANY_SELF, i));
|
||||
print(" GetQuarterlyPerformanceRating(); " + AICompany.GetQuarterlyPerformanceRating(AICompany.COMPANY_SELF, i));
|
||||
print(" GetQuarterlyCompanyValue(); " + AICompany.GetQuarterlyCompanyValue(AICompany.COMPANY_SELF, i));
|
||||
}
|
||||
}
|
||||
|
||||
function Regression::Engine()
|
||||
|
@ -588,7 +588,6 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
GetPresidentName(): I. McAlpine
|
||||
SetPresidentName(): true
|
||||
GetPresidentName(): Regression AI
|
||||
GetCompanyValue(): 1
|
||||
GetBankBalance(): 100000
|
||||
GetName(): (null : 0x00000000)
|
||||
GetLoanAmount(): 100000
|
||||
@ -628,6 +627,162 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
GetAutoRenewMoney(); 200000
|
||||
SetAutoRenewMoney(200000); true
|
||||
SetAutoRenewMoney(100000); true
|
||||
Quarter: -1
|
||||
GetQuarterlyIncome(); -1
|
||||
GetQuarterlyExpenses(); -1
|
||||
GetQuarterlyCargoDelivered(); -1
|
||||
GetQuarterlyPerformanceRating(); -1
|
||||
GetQuarterlyCompanyValue(); -1
|
||||
Quarter: 0
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); -210
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); -1
|
||||
GetQuarterlyCompanyValue(); 1
|
||||
Quarter: 1
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 2
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 3
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 4
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 5
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 6
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 7
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 8
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 9
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 10
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 11
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 12
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 13
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 14
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 15
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 16
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 17
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 18
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 19
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 20
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 21
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 22
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 23
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
Quarter: 24
|
||||
GetQuarterlyIncome(); 0
|
||||
GetQuarterlyExpenses(); 0
|
||||
GetQuarterlyCargoDelivered(); 0
|
||||
GetQuarterlyPerformanceRating(); 0
|
||||
GetQuarterlyCompanyValue(); 0
|
||||
|
||||
--AIAirport--
|
||||
IsHangarTile(): false
|
||||
|
@ -19,6 +19,17 @@
|
||||
*
|
||||
* 1.2.0 is not yet released. The following changes are not set in stone yet.
|
||||
*
|
||||
* API additions:
|
||||
*
|
||||
* \li AICompany::GetQuarterlyIncome
|
||||
* \li AICompany::GetQuarterlyExpenses
|
||||
* \li AICompany::GetQuarterlyCargoDelivered
|
||||
* \li AICompany::GetQuarterlyPerformanceRating
|
||||
* \li AICompany::GetQuarterlyCompanyValue
|
||||
*
|
||||
* API removals:
|
||||
* \li AICompany::GetCompanyValue, use AICompany::GetQuarterlyCompanyValue instead.
|
||||
*
|
||||
* \b 1.1.0
|
||||
*
|
||||
* API additions:
|
||||
|
@ -101,14 +101,65 @@
|
||||
return HasBit(ge, ::GENDER_FEMALE) ? GENDER_FEMALE : GENDER_MALE;
|
||||
}
|
||||
|
||||
/* static */ Money AICompany::GetCompanyValue(AICompany::CompanyID company)
|
||||
/* static */ Money AICompany::GetQuarterlyIncome(AICompany::CompanyID company, uint32 quarter)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == COMPANY_INVALID) return -1;
|
||||
if (quarter > EARLIEST_QUARTER) return -1;
|
||||
|
||||
return ::CalculateCompanyValue(::Company::Get((CompanyID)company));
|
||||
if (quarter == CURRENT_QUARTER) {
|
||||
return ::Company::Get((::CompanyID)company)->cur_economy.income;
|
||||
}
|
||||
return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].income;
|
||||
}
|
||||
|
||||
/* static */ Money AICompany::GetQuarterlyExpenses(AICompany::CompanyID company, uint32 quarter)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == COMPANY_INVALID) return -1;
|
||||
if (quarter > EARLIEST_QUARTER) return -1;
|
||||
|
||||
if (quarter == CURRENT_QUARTER) {
|
||||
return ::Company::Get((::CompanyID)company)->cur_economy.expenses;
|
||||
}
|
||||
return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].expenses;
|
||||
}
|
||||
|
||||
/* static */ int32 AICompany::GetQuarterlyCargoDelivered(AICompany::CompanyID company, uint32 quarter)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == COMPANY_INVALID) return -1;
|
||||
if (quarter > EARLIEST_QUARTER) return -1;
|
||||
|
||||
if (quarter == CURRENT_QUARTER) {
|
||||
return ::Company::Get((::CompanyID)company)->cur_economy.delivered_cargo;
|
||||
}
|
||||
return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].delivered_cargo;
|
||||
}
|
||||
|
||||
/* static */ int32 AICompany::GetQuarterlyPerformanceRating(AICompany::CompanyID company, uint32 quarter)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == COMPANY_INVALID) return -1;
|
||||
if (quarter > EARLIEST_QUARTER) return -1;
|
||||
if (quarter == CURRENT_QUARTER) return -1;
|
||||
|
||||
return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].performance_history;
|
||||
}
|
||||
|
||||
/* static */ Money AICompany::GetQuarterlyCompanyValue(AICompany::CompanyID company, uint32 quarter)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == COMPANY_INVALID) return -1;
|
||||
if (quarter > EARLIEST_QUARTER) return -1;
|
||||
|
||||
if (quarter == CURRENT_QUARTER) {
|
||||
return ::CalculateCompanyValue(::Company::Get((::CompanyID)company));
|
||||
}
|
||||
return ::Company::Get((::CompanyID)company)->old_economy[quarter - 1].company_value;
|
||||
}
|
||||
|
||||
|
||||
/* static */ Money AICompany::GetBankBalance(AICompany::CompanyID company)
|
||||
{
|
||||
company = ResolveCompanyID(company);
|
||||
|
@ -22,6 +22,12 @@ public:
|
||||
/** Get the name of this class to identify it towards squirrel. */
|
||||
static const char *GetClassName() { return "AICompany"; }
|
||||
|
||||
/** The range of possible quarters to get company information of. */
|
||||
enum Quarter {
|
||||
CURRENT_QUARTER = 0, ///< The current quarter.
|
||||
EARLIEST_QUARTER = MAX_HISTORY_QUARTERS, ///< The earliest quarter company information is available for.
|
||||
};
|
||||
|
||||
/** Different constants related to CompanyID. */
|
||||
enum CompanyID {
|
||||
COMPANY_FIRST = 0, ///< The first available company.
|
||||
@ -148,14 +154,6 @@ public:
|
||||
*/
|
||||
static Money GetLoanInterval();
|
||||
|
||||
/**
|
||||
* Gets the current value of the given company.
|
||||
* @param company The company to get the company value of.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @return The current value of the given company.
|
||||
*/
|
||||
static Money GetCompanyValue(CompanyID company);
|
||||
|
||||
/**
|
||||
* Gets the bank balance. In other words, the amount of money the given company can spent.
|
||||
* @param company The company to get the bank balance of.
|
||||
@ -164,6 +162,58 @@ public:
|
||||
*/
|
||||
static Money GetBankBalance(CompanyID company);
|
||||
|
||||
/**
|
||||
* Get the income of the company in the given quarter.
|
||||
* @param company The company to get the quarterly income of.
|
||||
* @param quarter The quarter to get the income of.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @pre quarter <= EARLIEST_QUARTER.
|
||||
* @return The bruto income of the company in the given quarter.
|
||||
*/
|
||||
static Money GetQuarterlyIncome(CompanyID company, uint32 quarter);
|
||||
|
||||
/**
|
||||
* Get the expenses of the company in the given quarter.
|
||||
* @param company The company to get the quarterly expenses of.
|
||||
* @param quarter The quarter to get the expenses of.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @pre quarter <= EARLIEST_QUARTER.
|
||||
* @return The expenses of the company in the given quarter.
|
||||
*/
|
||||
static Money GetQuarterlyExpenses(CompanyID company, uint32 quarter);
|
||||
|
||||
/**
|
||||
* Get the amount of cargo delivered by the given company in the given quarter.
|
||||
* @param company The company to get the amount of delivered cargo of.
|
||||
* @param quarter The quarter to get the amount of delivered cargo of.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @pre quarter <= EARLIEST_QUARTER.
|
||||
* @return The amount of cargo delivered by the given company in the given quarter.
|
||||
*/
|
||||
static int32 GetQuarterlyCargoDelivered(CompanyID company, uint32 quarter);
|
||||
|
||||
/**
|
||||
* Get the performance rating of the given company in the given quarter.
|
||||
* @param company The company to get the performance rating of.
|
||||
* @param quarter The quarter to get the performance rating of.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @pre quarter <= EARLIEST_QUARTER.
|
||||
* @pre quarter != CURRENT_QUARTER.
|
||||
* @note The performance rating is calculated after every quarter, so the value for CURRENT_QUARTER is undefined.
|
||||
* @return The performance rating of the given company in the given quarter.
|
||||
*/
|
||||
static int32 GetQuarterlyPerformanceRating(CompanyID company, uint32 quarter);
|
||||
|
||||
/**
|
||||
* Get the value of the company in the given quarter.
|
||||
* @param company The company to get the value of.
|
||||
* @param quarter The quarter to get the value of.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
* @pre quarter <= EARLIEST_QUARTER.
|
||||
* @return The value of the company in the given quarter.
|
||||
*/
|
||||
static Money GetQuarterlyCompanyValue(CompanyID company, uint32 quarter);
|
||||
|
||||
/**
|
||||
* Build your company's HQ on the given tile.
|
||||
* @param tile The tile to build your HQ on, this tile is the most nothern tile of your HQ.
|
||||
|
@ -32,6 +32,8 @@ void SQAICompany_Register(Squirrel *engine)
|
||||
SQAICompany.PreRegister(engine);
|
||||
SQAICompany.AddConstructor<void (AICompany::*)(), 1>(engine, "x");
|
||||
|
||||
SQAICompany.DefSQConst(engine, AICompany::CURRENT_QUARTER, "CURRENT_QUARTER");
|
||||
SQAICompany.DefSQConst(engine, AICompany::EARLIEST_QUARTER, "EARLIEST_QUARTER");
|
||||
SQAICompany.DefSQConst(engine, AICompany::COMPANY_FIRST, "COMPANY_FIRST");
|
||||
SQAICompany.DefSQConst(engine, AICompany::COMPANY_LAST, "COMPANY_LAST");
|
||||
SQAICompany.DefSQConst(engine, AICompany::COMPANY_SELF, "COMPANY_SELF");
|
||||
@ -53,7 +55,11 @@ void SQAICompany_Register(Squirrel *engine)
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetLoanAmount, "GetLoanAmount", 1, ".");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetMaxLoanAmount, "GetMaxLoanAmount", 1, ".");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetLoanInterval, "GetLoanInterval", 1, ".");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetCompanyValue, "GetCompanyValue", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetQuarterlyIncome, "GetQuarterlyIncome", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetQuarterlyExpenses, "GetQuarterlyExpenses", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetQuarterlyCargoDelivered, "GetQuarterlyCargoDelivered", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetQuarterlyPerformanceRating, "GetQuarterlyPerformanceRating", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetQuarterlyCompanyValue, "GetQuarterlyCompanyValue", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetBankBalance, "GetBankBalance", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::BuildCompanyHQ, "BuildCompanyHQ", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &AICompany::GetCompanyHQ, "GetCompanyHQ", 2, ".i");
|
||||
|
Loading…
Reference in New Issue
Block a user