Files
@ r12879:96ac3c3969be
Branch filter:
Location: cpp/openttd-patchpack/source/src/industry.h - annotation
r12879:96ac3c3969be
4.4 KiB
text/x-c
(svn r17381) -Codechange: music track selection window uses nested widgets
r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r9111:983de9c5a848 r6201:2e76eb9a1d7a r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r11969:3526c3cc75dc r8119:8fdb3a371896 r7610:6031d09c03ef r8119:8fdb3a371896 r8119:8fdb3a371896 r8139:4fc34c1bc2fb r8213:466402e95092 r12467:b4ba97896a21 r12648:24c912bd53f6 r12816:33099b7286d4 r5475:3f5cd13d1b63 r6390:c8b3b64c49ff r11967:df0600d2c7e7 r11967:df0600d2c7e7 r7390:444ff4a56f72 r6201:2e76eb9a1d7a r6201:2e76eb9a1d7a r6201:2e76eb9a1d7a r11967:df0600d2c7e7 r7610:6031d09c03ef r7610:6031d09c03ef r6819:52478124ff4e r6201:2e76eb9a1d7a r5475:3f5cd13d1b63 r6819:52478124ff4e r7645:e35d73ba358a r7165:b30ba7925dc4 r7165:b30ba7925dc4 r6819:52478124ff4e r6819:52478124ff4e r7645:e35d73ba358a r6819:52478124ff4e r6819:52478124ff4e r6819:52478124ff4e r6819:52478124ff4e r6819:52478124ff4e r6819:52478124ff4e r5475:3f5cd13d1b63 r7319:94412b8dacf8 r6819:52478124ff4e r11085:c87a330fb4c2 r6819:52478124ff4e r6819:52478124ff4e r5475:3f5cd13d1b63 r12648:24c912bd53f6 r12648:24c912bd53f6 r7186:dea62b7d11ec r7186:dea62b7d11ec r7186:dea62b7d11ec r7186:dea62b7d11ec r7445:0ebcc38f1de8 r7390:444ff4a56f72 r7860:c73688ce46ca r7860:c73688ce46ca r7860:c73688ce46ca r7610:6031d09c03ef r7610:6031d09c03ef r10550:fdff38307dad r7390:444ff4a56f72 r12242:f11b2e8973ab r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12816:33099b7286d4 r12242:f11b2e8973ab r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6637:08ab9ae07700 r5475:3f5cd13d1b63 r10491:e3e4bb1ebaea r10491:e3e4bb1ebaea r6533:e4ba06da0f4c r6533:e4ba06da0f4c r10146:7fb6cf730d46 r10146:7fb6cf730d46 r6533:e4ba06da0f4c r11966:921bea0ca112 r11966:921bea0ca112 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 | /* $Id$ */
/*
* 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 industry.h Base of all industries. */
#ifndef INDUSTRY_H
#define INDUSTRY_H
#include "core/pool_type.hpp"
#include "core/random_func.hpp"
#include "newgrf_storage.h"
#include "cargo_type.h"
#include "economy_type.h"
#include "map_type.h"
#include "industry_type.h"
#include "tile_type.h"
#include "subsidy_type.h"
#include "industry_map.h"
typedef Pool<Industry, IndustryID, 64, 64000> IndustryPool;
extern IndustryPool _industry_pool;
/**
* Defines the internal data of a functionnal industry
*/
struct Industry : IndustryPool::PoolItem<&_industry_pool> {
typedef PersistentStorageArray<uint32, 16> PersistentStorage;
TileIndex xy; ///< coordinates of the primary tile the industry is built one
byte width;
byte height;
const Town *town; ///< Nearest town
CargoID produced_cargo[2]; ///< 2 production cargo slots
uint16 produced_cargo_waiting[2]; ///< amount of cargo produced per cargo
uint16 incoming_cargo_waiting[3]; ///< incoming cargo waiting to be processed
byte production_rate[2]; ///< production rate for each cargo
byte prod_level; ///< general production level
CargoID accepts_cargo[3]; ///< 3 input cargo slots
uint16 this_month_production[2]; ///< stats of this month's production per cargo
uint16 this_month_transported[2]; ///< stats of this month's transport per cargo
byte last_month_pct_transported[2]; ///< percentage transported per cargo in the last full month
uint16 last_month_production[2]; ///< total units produced per cargo in the last full month
uint16 last_month_transported[2]; ///< total units transported per cargo in the last full month
uint16 counter; ///< used for animation and/or production (if available cargo)
IndustryType type; ///< type of industry.
OwnerByte owner; ///< owner of the industry. Which SHOULD always be (imho) OWNER_NONE
byte random_colour; ///< randomized colour of the industry, for display purpose
Year last_prod_year; ///< last year of production
byte was_cargo_delivered; ///< flag that indicate this has been the closest industry chosen for cargo delivery by a station. see DeliverGoodsToIndustry
PartOfSubsidyByte part_of_subsidy; ///< NOSAVE: is this industry a source/destination of a subsidy?
OwnerByte founder; ///< Founder of the industry
Date construction_date; ///< Date of the construction of the industry
uint8 construction_type; ///< Way the industry was constructed (@see IndustryConstructionType)
Date last_cargo_accepted_at; ///< Last day cargo was accepted by this industry
byte selected_layout; ///< Which tile layout was used when creating the industry
byte random_triggers; ///< Triggers for the random
uint16 random; ///< Random value used for randomisation of all kinds of things
PersistentStorage psa; ///< Persistent storage for NewGRF industries.
Industry(TileIndex tile = INVALID_TILE) : xy(tile) {}
~Industry();
/**
* Get the industry of the given tile
* @param t the tile to get the industry from
* @pre IsTileType(t, MP_INDUSTRY)
* @return the industry
*/
static FORCEINLINE Industry *GetByTile(TileIndex tile)
{
return Industry::Get(GetIndustryIndex(tile));
}
static Industry *GetRandom();
};
void PlantRandomFarmField(const Industry *i);
void ReleaseDisastersTargetingIndustry(IndustryID);
/* smallmap_gui.cpp */
void BuildIndustriesLegend();
/* industry_cmd.cpp */
void SetIndustryDailyChanges();
#define FOR_ALL_INDUSTRIES_FROM(var, start) FOR_ALL_ITEMS_FROM(Industry, industry_index, var, start)
#define FOR_ALL_INDUSTRIES(var) FOR_ALL_INDUSTRIES_FROM(var, 0)
#endif /* INDUSTRY_H */
|