GUIs related to industries. More...
#include "stdafx.h"#include "error.h"#include "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 "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/industry_widget.h"#include "table/strings.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 | |
| assert_compile (NUM_INDUSTRYTYPES<=64) | |
| 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)) | |
Variables | |
| bool | _ignore_restrictions |
| uint64 | _displayed_industries |
| Communication from the industry chain window to the smallmap window about what industries to display. | |
| IndustryType | _sorted_industry_types [NUM_INDUSTRYTYPES] |
| static const NWidgetPart | _nested_build_industry_widgets [] |
| static const WindowDesc | _build_industry_desc (WDP_AUTO, 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 const WindowDesc | _industry_view_desc (WDP_AUTO, 260, 120, WC_INDUSTRY_VIEW, WC_NONE, WDF_UNCLICK_BUTTONS, _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 const WindowDesc | _industry_directory_desc (WDP_AUTO, 428, 190, WC_INDUSTRY_DIRECTORY, WC_NONE, WDF_UNCLICK_BUTTONS, _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 const WindowDesc | _industry_cargoes_desc (WDP_AUTO, 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. | |
GUIs related to industries.
Definition in file industry_gui.cpp.
| enum CargoesFieldType |
Available types of field.
Definition at line 1430 of file industry_gui.cpp.
| enum CargoSuffixType |
Cargo suffix type (for which window is it requested).
| CST_FUND |
Fund-industry window. |
| CST_VIEW |
View-industry window. |
| CST_DIR |
Industry-directory window. |
Definition at line 49 of file industry_gui.cpp.
| 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.
| 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 153 of file industry_gui.cpp.
References IndustrySpec::enabled, GB(), CommandCost::GetErrorMessage(), GetIndustrySpec(), IndustrySpec::name, NUM_INDUSTRYTYPES, SetDParam(), ShowErrorMessage(), CommandCost::Succeeded(), TILE_SIZE, TileX(), and TileY().
Referenced by BuildIndustryWindow::OnPlaceObject().
| static void GetAllCargoSuffixes | ( | uint | cb_offset, | |
| CargoSuffixType | cst, | |||
| const Industry * | ind, | |||
| IndustryType | ind_type, | |||
| const IndustrySpec * | indspec, | |||
| const TC & | cargoes, | |||
| TS & | suffixes | |||
| ) | [inline, static] |
Gets all strings to display after the cargoes of industries (using callback 37).
| 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). |
| 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 99 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).
| cargo | the cargo for which the suffix is requested
| |
| cst | the cargo suffix type (for which window is it requested). |
| 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 72 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 TileArea::tile.
Referenced by GetAllCargoSuffixes().
| static int CDECL IndustryTypeNameSorter | ( | const IndustryType * | a, | |
| const IndustryType * | b | |||
| ) | [static] |
Sort industry types by their name.
Definition at line 114 of file industry_gui.cpp.
References GetIndustrySpec(), lastof, IndustrySpec::name, SetDParam(), and strnatcmp().
Referenced by SortIndustryTypes().
| static void ShowIndustryCargoesWindow | ( | IndustryType | id | ) | [static] |
Open the industry and cargoes window.
| id | Industry type to display. |
Definition at line 2597 of file industry_gui.cpp.
References BringWindowToFrontById(), Window::InvalidateData(), NUM_INDUSTRYTYPES, and WC_INDUSTRY_CARGOES.
Referenced by IndustryViewWindow::OnClick(), and BuildIndustryWindow::OnClick().
const WindowDesc _industry_cargoes_desc(WDP_AUTO, 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] |
{
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_STICKYBOX, COLOUR_DARK_GREEN),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_MATRIX, COLOUR_DARK_GREEN, WID_DPI_MATRIX_WIDGET), SetDataTip(0x801, 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 167 of file industry_gui.cpp.
const NWidgetPart _nested_industry_cargoes_widgets[] [static] |
{
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_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(1, 0), EndContainer(),
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 1398 of file industry_gui.cpp.
const NWidgetPart _nested_industry_directory_widgets[] [static] |
{
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_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 1027 of file industry_gui.cpp.
const NWidgetPart _nested_industry_view_widgets[] [static] |
{
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_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 991 of file industry_gui.cpp.
1.7.1