OpenTTD Source
1.11.0-beta2
|
#include "stdafx.h"
#include "error.h"
#include "gui.h"
#include "settings_gui.h"
#include "sound_func.h"
#include "window_func.h"
#include "textbuf_gui.h"
#include "command_func.h"
#include "viewport_func.h"
#include "industry.h"
#include "town.h"
#include "cheat_type.h"
#include "newgrf_industries.h"
#include "newgrf_text.h"
#include "newgrf_debug.h"
#include "network/network.h"
#include "strings_func.h"
#include "company_func.h"
#include "tilehighlight_func.h"
#include "string_func.h"
#include "sortlist_type.h"
#include "widgets/dropdown_func.h"
#include "company_base.h"
#include "core/geometry_func.hpp"
#include "core/random_func.hpp"
#include "core/backup_type.hpp"
#include "genworld.h"
#include "smallmap_gui.h"
#include "widgets/dropdown_type.h"
#include "widgets/industry_widget.h"
#include "clear_map.h"
#include "table/strings.h"
#include <bitset>
#include "safeguards.h"
Go to the source code of this file.
Data Structures | |
struct | CargoSuffix |
Transfer storage of cargo suffix information. More... | |
class | BuildIndustryWindow |
Build (fund or prospect) a new industry,. More... | |
class | IndustryViewWindow |
class | IndustryDirectoryWindow |
The list of industries. More... | |
struct | CargoesField |
Data about a single field in the IndustryCargoesWindow panel. More... | |
struct | CargoesRow |
A single row of CargoesField. More... | |
struct | IndustryCargoesWindow |
Window displaying the cargo connections around an industry (or cargo). More... | |
Typedefs | |
typedef GUIList< const Industry *, const std::pair< CargoID, CargoID > & > | GUIIndustryList |
Enumerations | |
enum | CargoSuffixType { CST_FUND, CST_VIEW, CST_DIR } |
Cargo suffix type (for which window is it requested) More... | |
enum | CargoSuffixDisplay { CSD_CARGO, CSD_CARGO_AMOUNT, CSD_CARGO_TEXT, CSD_CARGO_AMOUNT_TEXT } |
Ways of displaying the cargo. More... | |
enum | CargoSuffixInOut { CARGOSUFFIX_OUT = 0, CARGOSUFFIX_IN = 1 } |
enum | CargoFilterSpecialType { CF_ANY = CT_NO_REFIT, CF_NONE = CT_INVALID } |
Special cargo filter criteria. More... | |
enum | CargoesFieldType { CFT_EMPTY, CFT_SMALL_EMPTY, CFT_INDUSTRY, CFT_CARGO, CFT_CARGO_LABEL, CFT_HEADER } |
Available types of field. More... | |
Functions | |
static void | ShowIndustryCargoesWindow (IndustryType id) |
Open the industry and cargoes window. More... | |
static void | GetCargoSuffix (uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, CargoSuffix &suffix) |
Gets the string to display after the cargo name (using callback 37) More... | |
template<typename TC , typename TS > | |
static void | GetAllCargoSuffixes (CargoSuffixInOut use_input, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, const TC &cargoes, TS &suffixes) |
Gets all strings to display after the cargoes of industries (using callback 37) More... | |
static bool | IndustryTypeNameSorter (const IndustryType &a, const IndustryType &b) |
Sort industry types by their name. | |
void | SortIndustryTypes () |
Initialize the list of sorted industry types. | |
void | CcBuildIndustry (const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2, uint32 cmd) |
Command callback. More... | |
void | ShowBuildIndustryWindow () |
static void | UpdateIndustryProduction (Industry *i) |
static bool | IsProductionAlterable (const Industry *i) |
void | ShowIndustryViewWindow (int industry) |
static bool CDECL | CargoFilter (const Industry *const *industry, const std::pair< CargoID, CargoID > &cargoes) |
Cargo filter functions. More... | |
void | ShowIndustryDirectory () |
void | ShowIndustryCargoesWindow () |
Open the industry and cargoes window with an industry. | |
Variables | |
bool | _ignore_restrictions |
std::bitset< NUM_INDUSTRYTYPES > | _displayed_industries |
Communication from the industry chain window to the smallmap window about what industries to display. | |
std::array< IndustryType, NUM_INDUSTRYTYPES > | _sorted_industry_types |
Industry types sorted by name. | |
static const NWidgetPart | _nested_build_industry_widgets [] |
static WindowDesc | _build_industry_desc (WDP_AUTO, "build_industry", 170, 212, WC_BUILD_INDUSTRY, WC_NONE, WDF_CONSTRUCTION, _nested_build_industry_widgets, lengthof(_nested_build_industry_widgets)) |
Window definition of the dynamic place industries gui. | |
static const NWidgetPart | _nested_industry_view_widgets [] |
Widget definition of the view industry gui. More... | |
static WindowDesc | _industry_view_desc (WDP_AUTO, "view_industry", 260, 120, WC_INDUSTRY_VIEW, WC_NONE, 0, _nested_industry_view_widgets, lengthof(_nested_industry_view_widgets)) |
Window definition of the view industry gui. | |
static const NWidgetPart | _nested_industry_directory_widgets [] |
Widget definition of the industry directory gui. More... | |
static GUIIndustryList::FilterFunction *const | _filter_funcs [] = { &CargoFilter } |
static WindowDesc | _industry_directory_desc (WDP_AUTO, "list_industries", 428, 190, WC_INDUSTRY_DIRECTORY, WC_NONE, 0, _nested_industry_directory_widgets, lengthof(_nested_industry_directory_widgets)) |
Window definition of the industry directory gui. | |
static const NWidgetPart | _nested_industry_cargoes_widgets [] |
Widgets of the industry cargoes window. More... | |
static WindowDesc | _industry_cargoes_desc (WDP_AUTO, "industry_cargoes", 300, 210, WC_INDUSTRY_CARGOES, WC_NONE, 0, _nested_industry_cargoes_widgets, lengthof(_nested_industry_cargoes_widgets)) |
Window description for the industry cargoes window. | |
static const uint | MAX_CARGOES = 16 |
Maximum number of cargoes carried in a CFT_CARGO field in CargoesField. | |
GUIs related to industries.
Definition in file industry_gui.cpp.
enum CargoesFieldType |
Available types of field.
Definition at line 1830 of file industry_gui.cpp.
Special cargo filter criteria.
Enumerator | |
---|---|
CF_ANY | Show all industries (i.e. no filtering) |
CF_NONE | Show only industries which do not produce/accept cargo. |
Definition at line 1232 of file industry_gui.cpp.
enum CargoSuffixDisplay |
Ways of displaying the cargo.
Definition at line 59 of file industry_gui.cpp.
enum CargoSuffixType |
Cargo suffix type (for which window is it requested)
Enumerator | |
---|---|
CST_FUND | Fund-industry window. |
CST_VIEW | View-industry window. |
CST_DIR | Industry-directory window. |
Definition at line 52 of file industry_gui.cpp.
|
static |
Cargo filter functions.
Check whether an industry accepts and produces a certain cargo pair.
industry | The industry whose cargoes will being checked. |
cargoes | The accepted and produced cargo pair to look for. |
Definition at line 1244 of file industry_gui.cpp.
void CcBuildIndustry | ( | const CommandCost & | result, |
TileIndex | tile, | ||
uint32 | p1, | ||
uint32 | p2, | ||
uint32 | cmd | ||
) |
Command callback.
In case of failure to build an industry, show an error message.
result | Result of the command. |
tile | Tile where the industry is placed. |
p1 | Additional data of the CMD_BUILD_INDUSTRY command. |
p2 | Additional data of the CMD_BUILD_INDUSTRY command. |
cmd | Unused. |
Definition at line 226 of file industry_gui.cpp.
References IndustrySpec::enabled, GB(), CommandCost::GetErrorMessage(), GetIndustrySpec(), IndustrySpec::name, NUM_INDUSTRYTYPES, SetDParam(), ShowErrorMessage(), CommandCost::Succeeded(), TILE_SIZE, TileX(), TileY(), and WL_INFO.
|
inlinestatic |
Gets all strings to display after the cargoes of industries (using callback 37)
use_input | get suffixes for output cargoes or input cargoes? |
cst | the cargo suffix type (for which window is it requested). |
ind | the industry (nullptr if in fund window) |
ind_type | the industry type |
indspec | the industry spec |
cargoes | array with cargotypes. for CT_INVALID no suffix will be determined |
suffixes | is filled with the suffixes |
Definition at line 147 of file industry_gui.cpp.
References IndustrySpec::behaviour, GRFFile::cargo_map, CSD_CARGO, CT_INVALID, GetCargoSuffix(), IndustrySpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, INDUSTRYBEH_CARGOTYPES_UNLIMITED, and lengthof.
Referenced by IndustryDirectoryWindow::GetIndustryString().
|
static |
Gets the string to display after the cargo name (using callback 37)
cargo | the cargo for which the suffix is requested, meaning depends on presence of flag 18 in prop 1A |
cst | the cargo suffix type (for which window is it requested). |
ind | the industry (nullptr if in fund window) |
ind_type | the industry type |
indspec | the industry spec |
suffix | is filled with the string to display |
Definition at line 83 of file industry_gui.cpp.
References CALLBACK_FAILED, IndustrySpec::callback_mask, CBID_INDUSTRY_CARGO_SUFFIX, CBM_IND_CARGO_SUFFIX, CSD_CARGO_AMOUNT, CST_FUND, CargoSuffix::display, GB(), GetIndustryCallback(), IndustrySpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, HasBit(), INVALID_TILE, Industry::location, StartTextRefStackUsage(), CargoSuffix::text, and OrthogonalTileArea::tile.
Referenced by GetAllCargoSuffixes().
|
static |
Open the industry and cargoes window.
id | Industry type to display, NUM_INDUSTRYTYPES selects a default industry type. |
Definition at line 3069 of file industry_gui.cpp.
References _sorted_industry_types, BringWindowToFrontById(), IndustrySpec::enabled, GetIndustrySpec(), Window::InvalidateData(), NUM_INDUSTRYTYPES, and WC_INDUSTRY_CARGOES.
Referenced by ShowIndustryCargoesWindow().
|
static |
Definition at line 240 of file industry_gui.cpp.
|
static |
Widgets of the industry cargoes window.
Definition at line 1793 of file industry_gui.cpp.
|
static |
Widget definition of the industry directory gui.
Definition at line 1203 of file industry_gui.cpp.
|
static |
Widget definition of the view industry gui.
Definition at line 1166 of file industry_gui.cpp.