author | truebrain |
Wed, 23 Apr 2008 12:05:32 +0000 | |
branch | noai |
changeset 10308 | 0c81dfce3e9b |
parent 10292 | 7856e972f8aa |
child 10855 | 90904faa1890 |
permissions | -rw-r--r-- |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
1 |
/* $Id$ */ |
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
2 |
|
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
3 |
/** @file ai_company.hpp Everything to query a company's financials and statistics or build company related buildings. */ |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
4 |
|
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
5 |
#ifndef AI_COMPANY_HPP |
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
6 |
#define AI_COMPANY_HPP |
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
7 |
|
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
8 |
#include "ai_object.hpp" |
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
9 |
|
9447
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
10 |
/** |
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
11 |
* Class that handles all company related functions. |
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
12 |
*/ |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
13 |
class AICompany : public AIObject { |
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
14 |
public: |
9529
5f26f4bc574b
(svn r9450) [NoAI] -Fix: don't allow static-method calls from SQ to non-static functions
truelight
parents:
9526
diff
changeset
|
15 |
static const char *GetClassName() { return "AICompany"; } |
5f26f4bc574b
(svn r9450) [NoAI] -Fix: don't allow static-method calls from SQ to non-static functions
truelight
parents:
9526
diff
changeset
|
16 |
|
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
17 |
/** Different constants related to CompanyIndex. */ |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
18 |
enum CompanyIndex { |
9853
b0512cb3ceb1
(svn r12521) [NoAI] -Change: make the style of end-of-line doxygen comments be the same for the whole AI API.
rubidium
parents:
9835
diff
changeset
|
19 |
FIRST_COMPANY = 0, //!< The first available company. |
b0512cb3ceb1
(svn r12521) [NoAI] -Change: make the style of end-of-line doxygen comments be the same for the whole AI API.
rubidium
parents:
9835
diff
changeset
|
20 |
LAST_COMPANY = 7, //!< The last available company. |
b0512cb3ceb1
(svn r12521) [NoAI] -Change: make the style of end-of-line doxygen comments be the same for the whole AI API.
rubidium
parents:
9835
diff
changeset
|
21 |
MY_COMPANY = 8, //!< Constant that gets resolved to the correct company index for your company. |
b0512cb3ceb1
(svn r12521) [NoAI] -Change: make the style of end-of-line doxygen comments be the same for the whole AI API.
rubidium
parents:
9835
diff
changeset
|
22 |
INVALID_COMPANY = 9, //!< An invalid company. |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
23 |
}; |
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
24 |
|
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
25 |
/** |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
26 |
* Resolved the given company index to the correct index for the company. If |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
27 |
* the company index was MY_COMPANY it will be resolved to the index of |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
28 |
* your company. If the company with the given index does not exist it will |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
29 |
* return INVALID_COMPANY. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
30 |
* @param company The company index to resolve. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
31 |
* @return The resolved company index. |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
32 |
*/ |
9737
ee408edf3851
(svn r12216) [NoAI] -Codechange: made most functions 'static', which removes the need to create an instance to get, for example, engine information, and therefor heavily simplifying AI creation (Morloth)
truebrain
parents:
9668
diff
changeset
|
33 |
static CompanyIndex ResolveCompanyIndex(CompanyIndex company); |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
34 |
|
9529
5f26f4bc574b
(svn r9450) [NoAI] -Fix: don't allow static-method calls from SQ to non-static functions
truelight
parents:
9526
diff
changeset
|
35 |
/** |
9447
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
36 |
* Set the name of your company. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
37 |
* @param name The new name of the company. |
9865
f241472f09dc
(svn r12555) [NoAI] -Add: support for GetLastError for AICompany.
rubidium
parents:
9853
diff
changeset
|
38 |
* @pre 'name' must have at least one character. |
f241472f09dc
(svn r12555) [NoAI] -Add: support for GetLastError for AICompany.
rubidium
parents:
9853
diff
changeset
|
39 |
* @exception AIError::ERR_NAME_IS_NOT_UNIQUE |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
40 |
* @return True if the name was changed. |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
41 |
*/ |
9737
ee408edf3851
(svn r12216) [NoAI] -Codechange: made most functions 'static', which removes the need to create an instance to get, for example, engine information, and therefor heavily simplifying AI creation (Morloth)
truebrain
parents:
9668
diff
changeset
|
42 |
static bool SetCompanyName(const char *name); |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
43 |
|
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
44 |
/** |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
45 |
* Get the name of the given company. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
46 |
* @param company The company to get the name for. |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
47 |
* @pre ResolveCompanyIndex(company) != INVALID_COMPANY |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
48 |
* @return The name of the given company. |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
49 |
*/ |
9737
ee408edf3851
(svn r12216) [NoAI] -Codechange: made most functions 'static', which removes the need to create an instance to get, for example, engine information, and therefor heavily simplifying AI creation (Morloth)
truebrain
parents:
9668
diff
changeset
|
50 |
static char *GetCompanyName(CompanyIndex company); |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
51 |
|
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
52 |
/** |
9575
a4b6bbfa6c96
(svn r9591) [NoAI] -Fix: SetCompanyName() in fact set the president name (Zuu)
truelight
parents:
9541
diff
changeset
|
53 |
* Set the name of your president. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
54 |
* @param name The new name of the president. |
9865
f241472f09dc
(svn r12555) [NoAI] -Add: support for GetLastError for AICompany.
rubidium
parents:
9853
diff
changeset
|
55 |
* @pre 'name' must have at least one character. |
f241472f09dc
(svn r12555) [NoAI] -Add: support for GetLastError for AICompany.
rubidium
parents:
9853
diff
changeset
|
56 |
* @exception AIError::ERR_NAME_IS_NOT_UNIQUE |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
57 |
* @return True if the name was changed. |
9575
a4b6bbfa6c96
(svn r9591) [NoAI] -Fix: SetCompanyName() in fact set the president name (Zuu)
truelight
parents:
9541
diff
changeset
|
58 |
*/ |
9737
ee408edf3851
(svn r12216) [NoAI] -Codechange: made most functions 'static', which removes the need to create an instance to get, for example, engine information, and therefor heavily simplifying AI creation (Morloth)
truebrain
parents:
9668
diff
changeset
|
59 |
static bool SetPresidentName(const char *name); |
9575
a4b6bbfa6c96
(svn r9591) [NoAI] -Fix: SetCompanyName() in fact set the president name (Zuu)
truelight
parents:
9541
diff
changeset
|
60 |
|
a4b6bbfa6c96
(svn r9591) [NoAI] -Fix: SetCompanyName() in fact set the president name (Zuu)
truelight
parents:
9541
diff
changeset
|
61 |
/** |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
62 |
* Get the name of the president of the given company. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
63 |
* @param company The company to get the president's name for. |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
64 |
* @pre ResolveCompanyIndex(company) != INVALID_COMPANY |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
65 |
* @return The name of the president of the given company. |
9575
a4b6bbfa6c96
(svn r9591) [NoAI] -Fix: SetCompanyName() in fact set the president name (Zuu)
truelight
parents:
9541
diff
changeset
|
66 |
*/ |
9737
ee408edf3851
(svn r12216) [NoAI] -Codechange: made most functions 'static', which removes the need to create an instance to get, for example, engine information, and therefor heavily simplifying AI creation (Morloth)
truebrain
parents:
9668
diff
changeset
|
67 |
static char *GetPresidentName(CompanyIndex company); |
9575
a4b6bbfa6c96
(svn r9591) [NoAI] -Fix: SetCompanyName() in fact set the president name (Zuu)
truelight
parents:
9541
diff
changeset
|
68 |
|
a4b6bbfa6c96
(svn r9591) [NoAI] -Fix: SetCompanyName() in fact set the president name (Zuu)
truelight
parents:
9541
diff
changeset
|
69 |
/** |
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
70 |
* Sets the amount to loan. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
71 |
* @param loan The amount to loan (multiplier of GetLoanInterval()). |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
72 |
* @pre 'loan' must be non-negative. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
73 |
* @pre GetLoanInterval() must be a multiplier of GetLoanInterval(). |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
74 |
* @pre 'loan' must be below GetMaxLoanAmount(). |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
75 |
* @pre 'loan' - GetLoanAmount() + GetBankBalance() must be non-negative. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
76 |
* @return True if the loan could be set to your requested amount. |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
77 |
*/ |
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
78 |
static bool SetLoanAmount(int32 loan); |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
79 |
|
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
80 |
/** |
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
81 |
* Sets the minimum amount to loan, i.e. the given amount of loan rounded up. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
82 |
* @param loan The amount to loan (any positive number). |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
83 |
* @pre 'loan' must be non-negative. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
84 |
* @pre 'loan' must be below GetMaxLoanAmount(). |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
85 |
* @return True if we could allocate a minimum of "loan" loan. |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
86 |
*/ |
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
87 |
static bool SetMinimumLoanAmount(int32 loan); |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
88 |
|
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
89 |
/** |
9447
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
90 |
* Gets the amount your company have loaned. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
91 |
* @return The amount loaned money. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
92 |
* @post The return value is always non-negative. |
9447
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
93 |
* @post GetLoanInterval() is always a multiplier of the return value. |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
94 |
*/ |
10196
aecabd927420
(svn r12728) [NoAI] -Codechange: always let functions return Money when they return something that can be quantified as money.
rubidium
parents:
9866
diff
changeset
|
95 |
static Money GetLoanAmount(); |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
96 |
|
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
97 |
/** |
9447
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
98 |
* Gets the maximum amount your company can loan. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
99 |
* @return The maximum amount your company can loan. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
100 |
* @post The return value is always non-negative. |
9447
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
101 |
* @post GetLoanInterval() is always a multiplier of the return value. |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
102 |
*/ |
10196
aecabd927420
(svn r12728) [NoAI] -Codechange: always let functions return Money when they return something that can be quantified as money.
rubidium
parents:
9866
diff
changeset
|
103 |
static Money GetMaxLoanAmount(); |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
104 |
|
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
105 |
/** |
9447
8f3c1bc72204
(svn r9272) [NoAI] -Documentation: made the documentation of the first 3 API files more readable for non-programmers
truelight
parents:
9427
diff
changeset
|
106 |
* Gets the interval/loan step. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
107 |
* @return The loan step. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
108 |
* @post Return value is always positive. |
9376
7c12a15c945a
(svn r9164) [NoAI] -Add: function to get the value of LOAN_INTERVAL in the AIs.
rubidium
parents:
9374
diff
changeset
|
109 |
*/ |
10196
aecabd927420
(svn r12728) [NoAI] -Codechange: always let functions return Money when they return something that can be quantified as money.
rubidium
parents:
9866
diff
changeset
|
110 |
static Money GetLoanInterval(); |
9376
7c12a15c945a
(svn r9164) [NoAI] -Add: function to get the value of LOAN_INTERVAL in the AIs.
rubidium
parents:
9374
diff
changeset
|
111 |
|
7c12a15c945a
(svn r9164) [NoAI] -Add: function to get the value of LOAN_INTERVAL in the AIs.
rubidium
parents:
9374
diff
changeset
|
112 |
/** |
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
113 |
* Gets the current value of the given company. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
114 |
* @param company The company to get the company value of. |
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
115 |
* @pre ResolveCompanyIndex(company) != INVALID_COMPANY |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
116 |
* @return The current value of the given company. |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
117 |
*/ |
10196
aecabd927420
(svn r12728) [NoAI] -Codechange: always let functions return Money when they return something that can be quantified as money.
rubidium
parents:
9866
diff
changeset
|
118 |
static Money GetCompanyValue(CompanyIndex company); |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
119 |
|
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
120 |
/** |
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
121 |
* Gets the bank balance. In other words, the amount of money the given company can spent. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
122 |
* @param company The company to get the bank balance of. |
9829
80fbe02a4184
(svn r12491) [NoAI] -Documentation: made parts of the comments more uniform (@file header and class header)
truebrain
parents:
9808
diff
changeset
|
123 |
* @pre ResolveCompanyIndex(company) != INVALID_COMPANY |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
124 |
* @return The actual bank balance. |
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
125 |
*/ |
10196
aecabd927420
(svn r12728) [NoAI] -Codechange: always let functions return Money when they return something that can be quantified as money.
rubidium
parents:
9866
diff
changeset
|
126 |
static Money GetBankBalance(CompanyIndex company); |
9808
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
127 |
|
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
128 |
/** |
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
129 |
* Build your company's HQ on the given tile. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
130 |
* @param tile The tile to build your HQ on, this tile is the most nothern tile of your HQ. |
9808
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
131 |
* @pre AIMap::IsValidTile(tile). |
9865
f241472f09dc
(svn r12555) [NoAI] -Add: support for GetLastError for AICompany.
rubidium
parents:
9853
diff
changeset
|
132 |
* @exception AIError::ERR_AREA_NOT_CLEAR |
9866
efc38e1f559a
(svn r12559) [NoAI] -Add: SetLastError support for AIAirport.
rubidium
parents:
9865
diff
changeset
|
133 |
* @exception AIError::ERR_FLAT_LAND_REQUIRED |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
134 |
* @return True if the HQ could be build. |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
135 |
* @note An HQ can not be removed, only by water or rebuilding; If an HQ is |
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
136 |
* build again, the old one is removed. |
9808
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
137 |
*/ |
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
138 |
static bool BuildCompanyHQ(TileIndex tile); |
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
139 |
|
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
140 |
/** |
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
141 |
* Return the location of a company's HQ. |
9835
2541c2d325ed
(svn r12500) [NoAI] -Documentation: many comment changes, mostly Capitals and lines end with a dot. Makes doxygen look pretty :)
truebrain
parents:
9829
diff
changeset
|
142 |
* @param company The company the get the HQ of. |
9808
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
143 |
* @pre ResolveCompanyIndex(company) != INVALID_COMPANY. |
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
144 |
* @return The tile of the company's HQ, this tile is the most nothern tile of that HQ, or INVALID_TILE if there is no HQ yet. |
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
145 |
*/ |
0b40f556e051
(svn r12318) [NoAI] -Add: added AICompany::(Build|Get)CompanyHQ (college of Morloth)
truebrain
parents:
9737
diff
changeset
|
146 |
static TileIndex GetCompanyHQ(CompanyIndex company); |
10291
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
147 |
|
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
148 |
/** |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
149 |
* Set whether autorenew is enabled for your company. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
150 |
* @param autorenew The new autorenew status. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
151 |
* @return True if autorenew status has been modified. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
152 |
*/ |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
153 |
static bool SetAutoRenewStatus(bool autorenew); |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
154 |
|
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
155 |
/** |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
156 |
* Return whether autorenew is enabled for a company. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
157 |
* @param company The company to get the autorenew status of. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
158 |
* @pre ResolveCompanyIndex(company) != INVALID_COMPANY. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
159 |
* @return True if autorenew is enabled. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
160 |
*/ |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
161 |
static bool GetAutoRenewStatus(CompanyIndex company); |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
162 |
|
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
163 |
/** |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
164 |
* Set the number of months before/after max age to autorenew an engine for your company. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
165 |
* @param months The new months between autorenew. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
166 |
* @return True if autorenew months has been modified. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
167 |
*/ |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
168 |
static bool SetAutoRenewMonths(int16 months); |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
169 |
|
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
170 |
/** |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
171 |
* Return the number of months before/after max age to autorenew an engine for a company. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
172 |
* @param company The company to get the autorenew months of. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
173 |
* @pre ResolveCompanyIndex(company) != INVALID_COMPANY. |
10292
7856e972f8aa
(svn r12825) [NoAI] -Fix r12823: minor documentation clearup
truebrain
parents:
10291
diff
changeset
|
174 |
* @return The months before/after max age of engine. |
10291
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
175 |
*/ |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
176 |
static int16 GetAutoRenewMonths(CompanyIndex company); |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
177 |
|
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
178 |
/** |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
179 |
* Set the minimum money needed to autorenew an engine for your company. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
180 |
* @param money The new minimum required money for autorenew to work. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
181 |
* @return True if autorenew money has been modified. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
182 |
*/ |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
183 |
static bool SetAutoRenewMoney(uint32 money); |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
184 |
|
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
185 |
/** |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
186 |
* Return the minimum money needed to autorenew an engine for a company. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
187 |
* @param company The company to get the autorenew money of. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
188 |
* @pre ResolveCompanyIndex(company) != INVALID_COMPANY. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
189 |
* @return The minimum required money for autorenew to work. |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
190 |
*/ |
11cb78922367
(svn r12823) [NoAI] -Add: added AICompany::(G|S)etAutoRenew(Status|Months|Money)
glx
parents:
10196
diff
changeset
|
191 |
static uint32 GetAutoRenewMoney(CompanyIndex company); |
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
192 |
}; |
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
193 |
|
9668
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
194 |
DECLARE_POSTFIX_INCREMENT(AICompany::CompanyIndex); |
6fe3d2cb9655
(svn r10582) [NoAI] -Codechange: allow getting the president and company names of other companies as well as their company value and bank balance.
rubidium
parents:
9596
diff
changeset
|
195 |
|
9374
61379e9b2393
(svn r9161) [NoAI] -Add: functions to get/set company related information: loan, bank balance, company value and company name.
rubidium
parents:
diff
changeset
|
196 |
#endif /* AI_COMPANY_HPP */ |