File diff r27165:ea28ecab6159 → r27166:64e04a3ef9b1
src/company_base.h
Show inline comments
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/** @file company_base.h Definition of stuff that is very close to a company, like the company struct itself. */
 

	
 
#ifndef COMPANY_BASE_H
 
#define COMPANY_BASE_H
 

	
 
#include "road_type.h"
 
#include "livery.h"
 
#include "autoreplace_type.h"
 
#include "tile_type.h"
 
#include "timer/timer_game_calendar.h"
 
#include "settings_type.h"
 
#include "group.h"
 
#include <string>
 
#include <array>
 

	
 
/** Statistics about the economy. */
 
struct CompanyEconomyEntry {
 
	Money income;               ///< The amount of income.
 
	Money expenses;             ///< The amount of expenses.
 
	CargoArray delivered_cargo; ///< The amount of delivered cargo.
 
	int32 performance_history;  ///< Company score (scale 0-1000)
 
	Money company_value;        ///< The value of the company.
 
};
 

	
 
struct CompanyInfrastructure {
 
	uint32 road[ROADTYPE_END]; ///< Count of company owned track bits for each road type.
 
	uint32 signal;             ///< Count of company owned signals.
 
	uint32 rail[RAILTYPE_END]; ///< Count of company owned track bits for each rail type.
 
	uint32 water;              ///< Count of company owned track bits for canals.
 
	uint32 station;            ///< Count of company owned station tiles.
 
	uint32 airport;            ///< Count of company owned airports.
 

	
 
	/** Get total sum of all owned track bits. */
 
	uint32 GetRailTotal() const
 
@@ -56,49 +57,49 @@ extern CompanyPool _company_pool;
 
struct CompanyProperties {
 
	uint32 name_2;                   ///< Parameter of #name_1.
 
	StringID name_1;                 ///< Name of the company if the user did not change it.
 
	std::string name;                ///< Name of the company if the user changed it.
 

	
 
	StringID president_name_1;       ///< Name of the president if the user did not change it.
 
	uint32 president_name_2;         ///< Parameter of #president_name_1
 
	std::string president_name;      ///< Name of the president if the user changed it.
 

	
 
	CompanyManagerFace face;         ///< Face description of the president.
 

	
 
	Money money;                     ///< Money owned by the company.
 
	byte money_fraction;             ///< Fraction of money of the company, too small to represent in #money.
 
	Money current_loan;              ///< Amount of money borrowed from the bank.
 

	
 
	byte colour;                     ///< Company colour.
 

	
 
	byte block_preview;              ///< Number of quarters that the company is not allowed to get new exclusive engine previews (see CompaniesGenStatistics).
 

	
 
	TileIndex location_of_HQ;        ///< Northern tile of HQ; #INVALID_TILE when there is none.
 
	TileIndex last_build_coordinate; ///< Coordinate of the last build thing by this company.
 

	
 
	std::array<Owner, MAX_COMPANY_SHARE_OWNERS> share_owners; ///< Owners of the shares of the company. #INVALID_OWNER if nobody has bought them yet.
 

	
 
	Year inaugurated_year;           ///< Year of starting the company.
 
	TimerGameCalendar::Year inaugurated_year; ///< Year of starting the company.
 

	
 
	byte months_of_bankruptcy;       ///< Number of months that the company is unable to pay its debts
 
	CompanyMask bankrupt_asked;      ///< which companies were asked about buying it?
 
	int16 bankrupt_timeout;          ///< If bigger than \c 0, amount of time to wait for an answer on an offer to buy this company.
 
	Money bankrupt_value;
 

	
 
	uint32 terraform_limit;          ///< Amount of tileheights we can (still) terraform (times 65536).
 
	uint32 clear_limit;              ///< Amount of tiles we can (still) clear (times 65536).
 
	uint32 tree_limit;               ///< Amount of trees we can (still) plant (times 65536).
 
	uint32 build_object_limit;       ///< Amount of tiles we can (still) build objects on (times 65536). Also applies to buying land.
 

	
 
	/**
 
	 * If \c true, the company is (also) controlled by the computer (a NoAI program).
 
	 * @note It is possible that the user is also participating in such a company.
 
	 */
 
	bool is_ai;
 

	
 
	Money yearly_expenses[3][EXPENSES_END];                ///< Expenses of the company for the last three years, in every #ExpensesType category.
 
	CompanyEconomyEntry cur_economy;                       ///< Economic data of the company of this quarter.
 
	CompanyEconomyEntry old_economy[MAX_HISTORY_QUARTERS]; ///< Economic data of the company of the last #MAX_HISTORY_QUARTERS quarters.
 
	byte num_valid_stat_ent;                               ///< Number of valid statistical entries in #old_economy.
 

	
 
	Livery livery[LS_END];