OpenTTD Source 20241224-master-gf74b0cf984
bootstrap_gui.cpp File Reference

Barely used user interface for bootstrapping OpenTTD, i.e. More...

#include "stdafx.h"
#include "base_media_base.h"
#include "blitter/factory.hpp"
#include "error_func.h"
#include "core/geometry_func.hpp"
#include "error.h"
#include "fontcache.h"
#include "gfx_func.h"
#include "network/network.h"
#include "network/network_content_gui.h"
#include "openttd.h"
#include "strings_func.h"
#include "video/video_driver.hpp"
#include "window_func.h"
#include "widgets/bootstrap_widget.h"
#include "table/strings.h"
#include "safeguards.h"

Go to the source code of this file.

Data Structures

class  BootstrapBackground
 The background for the game. More...
 
class  BootstrapErrorWindow
 The window for a failed bootstrap. More...
 
struct  BootstrapContentDownloadStatusWindow
 Window for showing the download status of content. More...
 
class  BootstrapAskForDownloadWindow
 The window for the query. More...
 

Functions

bool HandleBootstrap ()
 Handle all procedures for bootstrapping OpenTTD without a base graphics set.
 

Variables

static constexpr NWidgetPart _background_widgets []
 Widgets for the background window to prevent smearing.
 
static WindowDesc _background_desc (WDP_MANUAL, nullptr, 0, 0, WC_BOOTSTRAP, WC_NONE, WDF_NO_CLOSE, _background_widgets)
 Window description for the background window to prevent smearing.
 
static constexpr NWidgetPart _nested_bootstrap_errmsg_widgets []
 Nested widgets for the error window.
 
static WindowDesc _bootstrap_errmsg_desc (WDP_CENTER, nullptr, 0, 0, WC_BOOTSTRAP, WC_NONE, WDF_MODAL|WDF_NO_CLOSE, _nested_bootstrap_errmsg_widgets)
 Window description for the error window.
 
static constexpr NWidgetPart _nested_bootstrap_download_status_window_widgets []
 Nested widgets for the download window.
 
static WindowDesc _bootstrap_download_status_window_desc (WDP_CENTER, nullptr, 0, 0, WC_NETWORK_STATUS_WINDOW, WC_NONE, WDF_MODAL|WDF_NO_CLOSE, _nested_bootstrap_download_status_window_widgets)
 Window description for the download window.
 
static constexpr NWidgetPart _bootstrap_query_widgets []
 The widgets for the query.
 
static WindowDesc _bootstrap_query_desc (WDP_CENTER, nullptr, 0, 0, WC_CONFIRM_POPUP_QUERY, WC_NONE, WDF_NO_CLOSE, _bootstrap_query_widgets)
 The window description for the query.
 

Detailed Description

Barely used user interface for bootstrapping OpenTTD, i.e.

downloading the required content.

Definition in file bootstrap_gui.cpp.

Function Documentation

◆ HandleBootstrap()

bool HandleBootstrap ( )

Handle all procedures for bootstrapping OpenTTD without a base graphics set.

This requires all kinds of trickery that is needed to avoid the use of sprites from the base graphics set which are pretty interwoven.

Returns
True if a base set exists, otherwise false.

Definition at line 362 of file bootstrap_gui.cpp.

References _network_available, CheckForMissingGlyphs(), BlitterFactory::GetCurrentBlitter(), VideoDriver::GetInstance(), BaseMedia< GraphicsSet >::GetUsedSet(), InitializeUnicodeGlyphMap(), VideoDriver::MainLoop(), SetColourGradient(), and BaseMedia< GraphicsSet >::SetSet().

Referenced by openttd_main().

Variable Documentation

◆ _background_widgets

constexpr NWidgetPart _background_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_PANEL, COLOUR_DARK_BLUE, WID_BB_BACKGROUND), SetResize(1, 1),
}
@ WID_BB_BACKGROUND
Background of the window.
constexpr NWidgetPart NWidget(WidgetType tp, Colours col, WidgetID idx=-1)
Widget part function for starting a new 'real' widget.
constexpr NWidgetPart EndContainer()
Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME,...
constexpr NWidgetPart SetResize(int16_t dx, int16_t dy)
Widget part function for setting the resize step.
@ WWT_PANEL
Simple depressed panel.
Definition widget_type.h:50

Widgets for the background window to prevent smearing.

Definition at line 35 of file bootstrap_gui.cpp.

◆ _bootstrap_query_widgets

constexpr NWidgetPart _bootstrap_query_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_MISSING_GRAPHICS_SET_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_BAFD_YES), SetDataTip(STR_MISSING_GRAPHICS_YES_DOWNLOAD, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_BAFD_NO), SetDataTip(STR_MISSING_GRAPHICS_NO_QUIT, STR_NULL),
}
@ WID_BAFD_QUESTION
The question whether to download.
@ WID_BAFD_NO
An negative answer to the question.
@ WID_BAFD_YES
An affirmative answer to the question.
constexpr NWidgetPart SetDataTip(uint32_t data, StringID tip)
Widget part function for setting the data and tooltip.
@ WWT_PUSHTXTBTN
Normal push-button (no toggle button) with text caption.
@ NWID_HORIZONTAL
Horizontal container.
Definition widget_type.h:75
@ WWT_CAPTION
Window caption (window title between closebox and stickybox)
Definition widget_type.h:61

The widgets for the query.

It has no close box as that sprite does not exist yet.

Definition at line 176 of file bootstrap_gui.cpp.

◆ _nested_bootstrap_download_status_window_widgets

constexpr NWidgetPart _nested_bootstrap_download_status_window_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_CONTENT_DOWNLOAD_TITLE, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PANEL, COLOUR_GREY),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_NCDS_PROGRESS_BAR), SetFill(1, 0),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_NCDS_PROGRESS_TEXT), SetFill(1, 0), SetMinimalSize(350, 0),
}
static const WidgetDimensions unscaled
Unscaled widget dimensions.
Definition window_gui.h:96
constexpr NWidgetPart SetFill(uint16_t fill_x, uint16_t fill_y)
Widget part function for setting filling.
constexpr NWidgetPart SetPIP(uint8_t pre, uint8_t inter, uint8_t post)
Widget part function for setting a pre/inter/post spaces.
constexpr NWidgetPart SetPadding(uint8_t top, uint8_t right, uint8_t bottom, uint8_t left)
Widget part function for setting additional space around a widget.
constexpr NWidgetPart SetMinimalSize(int16_t x, int16_t y)
Widget part function for setting the minimal size.
@ WID_NCDS_PROGRESS_TEXT
Text explaining what is happening.
@ WID_NCDS_PROGRESS_BAR
Simple progress bar.
@ NWID_VERTICAL
Vertical container.
Definition widget_type.h:77
@ WWT_EMPTY
Empty widget, place holder to reserve space in widget tree.
Definition widget_type.h:48

Nested widgets for the download window.

Definition at line 125 of file bootstrap_gui.cpp.

◆ _nested_bootstrap_errmsg_widgets

constexpr NWidgetPart _nested_bootstrap_errmsg_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CAPTION, COLOUR_GREY, WID_BEM_CAPTION), SetDataTip(STR_MISSING_GRAPHICS_ERROR_TITLE, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_BEM_QUIT), SetDataTip(STR_MISSING_GRAPHICS_ERROR_QUIT, STR_NULL), SetFill(1, 0),
}
@ WID_BEM_MESSAGE
Error message.
@ WID_BEM_QUIT
Quit button.
@ WID_BEM_CAPTION
Caption of the window.

Nested widgets for the error window.

Definition at line 68 of file bootstrap_gui.cpp.