OpenTTD: src/industry_gui.cpp File Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Typedefs | Enumerations | Functions | Variables
industry_gui.cpp File Reference

GUIs related to industries. More...

`#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 "table/strings.h"`
`#include <bitset>`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
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 * > | GUIIndustryList

## Enumerations
enum | CargoSuffixType { CST_FUND, CST_VIEW, CST_DIR }
| Cargo suffix type (for which window is it requested) 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.
static void | GetCargoSuffix (uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, char *suffix, const char *suffix_last)
| Gets the string to display after the cargo name (using callback 37)
template<typename TC , typename TS >
static void | GetAllCargoSuffixes (uint cb_offset, 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)
static int CDECL | 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)
| Command callback.
void | ShowBuildIndustryWindow ()
static void | UpdateIndustryProduction (Industry *i)
static bool | IsProductionAlterable (const Industry *i)
void | ShowIndustryViewWindow (int industry)
void | ShowIndustryDirectory ()
| assert_compile (MAX_CARGOES >=cpp_lengthof(IndustrySpec, produced_cargo))
| assert_compile (MAX_CARGOES >=cpp_lengthof(IndustrySpec, accepts_cargo))
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.
IndustryType | _sorted_industry_types [NUM_INDUSTRYTYPES]
| 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.
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.
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.
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 = 3
| Maximum number of cargoes carried in a CFT_CARGO field in CargoesField.

## Detailed Description

GUIs related to industries.

Definition in file industry_gui.cpp.

## Enumeration Type Documentation

enum CargoesFieldType

Available types of field.

Enumerator:

  CFT_EMPTY | Empty field.
  CFT_SMALL_EMPTY | Empty small field (for the header).
  CFT_INDUSTRY | Display industry.
  CFT_CARGO | Display cargo connections.
  CFT_CARGO_LABEL | Display cargo labels.
  CFT_HEADER | Header text.

Definition at line 1458 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 53 of file industry_gui.cpp.

## Function Documentation

void CcBuildIndustry | ( | const CommandCost & | result,
|  | TileIndex | tile,
|  | uint32 | p1,
|  | uint32 | p2
| ) |  |

Command callback.

In case of failure to build an industry, show an error message.

Parameters

  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.

Definition at line 155 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.

Referenced by BuildIndustryWindow::OnPlaceObject().

template<typename TC , typename TS >

static void GetAllCargoSuffixes | ( | uint | cb_offset,
|  | CargoSuffixType | cst,
|  | const Industry * | ind,
|  | IndustryType | ind_type,
|  | const IndustrySpec * | indspec,
|  | const TC & | cargoes,
|  | TS & | suffixes
| ) |  |
| inlinestatic

Gets all strings to display after the cargoes of industries (using callback 37)

Parameters

  cb_offset | The offset for the cargo used in cb37, 0 for accepted cargoes, 3 for produced cargoes
  cst | the cargo suffix type (for which window is it requested).

See Also
  CargoSuffixType

Parameters

  ind | the industry (NULL 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 103 of file industry_gui.cpp.

References CT_INVALID, GetCargoSuffix(), lastof, and lengthof.

Referenced by IndustryViewWindow::DrawInfo(), BuildIndustryWindow::DrawWidget(), IndustryDirectoryWindow::GetIndustryString(), and BuildIndustryWindow::UpdateWidgetSize().

static void GetCargoSuffix | ( | uint | cargo,
|  | CargoSuffixType | cst,
|  | const Industry * | ind,
|  | IndustryType | ind_type,
|  | const IndustrySpec * | indspec,
|  | char * | suffix,
|  | const char * | suffix_last
| ) |  |
| static

Gets the string to display after the cargo name (using callback 37)

Parameters

  cargo | the cargo for which the suffix is requested 00 - first accepted cargo type 01 - second accepted cargo type 02 - third accepted cargo type 03 - first produced cargo type 04 - second produced cargo type
  cst | the cargo suffix type (for which window is it requested).

See Also
  CargoSuffixType

Parameters

  ind | the industry (NULL if in fund window)
  ind_type | the industry type
  indspec | the industry spec
  suffix | is filled with the string to display
  suffix_last | lastof(suffix)

Definition at line 76 of file industry_gui.cpp.

References CALLBACK_FAILED, IndustrySpec::callback_mask, CBID_INDUSTRY_CARGO_SUFFIX, CBM_IND_CARGO_SUFFIX, CST_FUND, ErrorUnknownCallbackResult(), GB(), GetGRFStringID(), GetIndustryCallback(), IndustrySpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, HasBit(), INVALID_TILE, Industry::location, StartTextRefStackUsage(), StopTextRefStackUsage(), and OrthogonalTileArea::tile.

Referenced by GetAllCargoSuffixes().

static int CDECL IndustryTypeNameSorter | ( | const IndustryType * | a,
|  | const IndustryType * | b
| ) |  |
| static

Sort industry types by their name.

Definition at line 118 of file industry_gui.cpp.

References GetIndustrySpec(), lastof, IndustrySpec::name, and strnatcmp().

Referenced by SortIndustryTypes().

static void ShowIndustryCargoesWindow | ( | IndustryType | id | ) |
| static

Open the industry and cargoes window.

Parameters

  id | Industry type to display, `NUM_INDUSTRYTYPES` selects a default industry type.

Definition at line 2692 of file industry_gui.cpp.

References _sorted_industry_types, BringWindowToFrontById(), IndustrySpec::enabled, GetIndustrySpec(), Window::InvalidateData(), NUM_INDUSTRYTYPES, and WC_INDUSTRY_CARGOES.

void ShowIndustryCargoesWindow | ( |  | ) |

Open the industry and cargoes window with an industry.

Definition at line 2714 of file industry_gui.cpp.

References NUM_INDUSTRYTYPES, and ShowIndustryCargoesWindow().

Referenced by MenuClickIndustry(), BuildIndustryWindow::OnClick(), IndustryViewWindow::OnClick(), and ShowIndustryCargoesWindow().

## Variable Documentation

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))
| static

Window description for the industry cargoes window.

const NWidgetPart _nested_build_industry_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_FUND_INDUSTRY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_DEFSIZEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_STICKYBOX, COLOUR_DARK_GREEN),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_MATRIX, COLOUR_DARK_GREEN, WID_DPI_MATRIX_WIDGET), SetMatrixDataTip(1, 0, STR_FUND_INDUSTRY_SELECTION_TOOLTIP), SetFill(1, 0), SetResize(1, 1), SetScrollbar(WID_DPI_SCROLLBAR),
NWidget(NWID_VSCROLLBAR, COLOUR_DARK_GREEN, WID_DPI_SCROLLBAR),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, WID_DPI_INFOPANEL), SetResize(1, 0),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_TEXTBTN, COLOUR_DARK_GREEN, WID_DPI_DISPLAY_WIDGET), SetFill(1, 0), SetResize(1, 0),
SetDataTip(STR_INDUSTRY_DISPLAY_CHAIN, STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_DARK_GREEN, WID_DPI_FUND_WIDGET), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_JUST_STRING, STR_NULL),
NWidget(WWT_RESIZEBOX, COLOUR_DARK_GREEN),
EndContainer(),
}

Definition at line 169 of file industry_gui.cpp.

const NWidgetPart _nested_industry_cargoes_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN, WID_IC_CAPTION), SetDataTip(STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_VERTICAL),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_IC_PANEL), SetResize(1, 10), SetMinimalSize(200, 90), SetScrollbar(WID_IC_SCROLLBAR), EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_IC_NOTIFY),
SetDataTip(STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP, STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_BROWN), SetFill(1, 0), SetResize(0, 0), EndContainer(),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_IC_IND_DROPDOWN), SetFill(0, 0), SetResize(0, 0),
SetDataTip(STR_INDUSTRY_CARGOES_SELECT_INDUSTRY, STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_IC_CARGO_DROPDOWN), SetFill(0, 0), SetResize(0, 0),
SetDataTip(STR_INDUSTRY_CARGOES_SELECT_CARGO, STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP),
EndContainer(),
EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(NWID_VSCROLLBAR, COLOUR_BROWN, WID_IC_SCROLLBAR),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN),
EndContainer(),
EndContainer(),
}

Widgets of the industry cargoes window.

Definition at line 1421 of file industry_gui.cpp.

const NWidgetPart _nested_industry_directory_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_INDUSTRY_DIRECTORY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_VERTICAL),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_ID_DROPDOWN_ORDER), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_DROPDOWN_CRITERIA), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_SORT_CRITERIA),
NWidget(WWT_PANEL, COLOUR_BROWN), SetResize(1, 0), EndContainer(),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_ID_INDUSTRY_LIST), SetDataTip(0x0, STR_INDUSTRY_DIRECTORY_LIST_CAPTION), SetResize(1, 1), SetScrollbar(WID_ID_SCROLLBAR), EndContainer(),
EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(NWID_VSCROLLBAR, COLOUR_BROWN, WID_ID_SCROLLBAR),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN),
EndContainer(),
EndContainer(),
}

Widget definition of the industry directory gui.

Definition at line 1049 of file industry_gui.cpp.

const NWidgetPart _nested_industry_view_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_CREAM),
NWidget(WWT_CAPTION, COLOUR_CREAM, WID_IV_CAPTION), SetDataTip(STR_INDUSTRY_VIEW_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_DEBUGBOX, COLOUR_CREAM),
NWidget(WWT_SHADEBOX, COLOUR_CREAM),
NWidget(WWT_DEFSIZEBOX, COLOUR_CREAM),
NWidget(WWT_STICKYBOX, COLOUR_CREAM),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_CREAM),
NWidget(WWT_INSET, COLOUR_CREAM), SetPadding(2, 2, 2, 2),
NWidget(NWID_VIEWPORT, INVALID_COLOUR, WID_IV_VIEWPORT), SetMinimalSize(254, 86), SetFill(1, 0), SetPadding(1, 1, 1, 1), SetResize(1, 1),
EndContainer(),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_CREAM, WID_IV_INFO), SetMinimalSize(260, 2), SetResize(1, 0),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHTXTBTN, COLOUR_CREAM, WID_IV_GOTO), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_BUTTON_LOCATION, STR_INDUSTRY_VIEW_LOCATION_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_CREAM, WID_IV_DISPLAY), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_INDUSTRY_DISPLAY_CHAIN, STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP),
NWidget(WWT_RESIZEBOX, COLOUR_CREAM),
EndContainer(),
}

Widget definition of the view industry gui.

Definition at line 1012 of file industry_gui.cpp.