OpenTTD Source
20241121-master-g67a0fccfad
|
GUI to change NewGRF settings. More...
#include "stdafx.h"
#include "error.h"
#include "settings_gui.h"
#include "newgrf.h"
#include "strings_func.h"
#include "window_func.h"
#include "gamelog.h"
#include "settings_type.h"
#include "settings_func.h"
#include "dropdown_type.h"
#include "dropdown_func.h"
#include "network/network.h"
#include "network/network_content.h"
#include "sortlist_type.h"
#include "stringfilter_type.h"
#include "querystring_gui.h"
#include "core/geometry_func.hpp"
#include "newgrf_text.h"
#include "textfile_gui.h"
#include "tilehighlight_func.h"
#include "fios.h"
#include "timer/timer.h"
#include "timer/timer_window.h"
#include "zoom_func.h"
#include "widgets/newgrf_widget.h"
#include "widgets/misc_widget.h"
#include "table/sprites.h"
#include "safeguards.h"
Go to the source code of this file.
Data Structures | |
struct | NewGRFParametersWindow |
Window for setting the parameters of a NewGRF. More... | |
struct | NewGRFTextfileWindow |
Window for displaying the textfile of a NewGRF. More... | |
struct | NewGRFWindow |
Window for showing NewGRF files. More... | |
class | NWidgetNewGRFDisplay |
Custom nested widget container for the NewGRF gui. More... | |
struct | SavePresetWindow |
Class for the save preset window. More... | |
struct | ScanProgressWindow |
Window for showing the progress of NewGRF scanning. More... | |
Typedefs | |
typedef std::map< uint32_t, const GRFConfig * > | GrfIdMap |
Map of grfid to the grf config. | |
Functions | |
void | ShowNewGRFError () |
Show the first NewGRF error we can find. | |
static void | ShowNewGRFInfo (const GRFConfig *c, const Rect &r, bool show_params) |
void | OpenGRFParameterWindow (bool is_baseset, GRFConfig *c, bool editable) |
void | ShowNewGRFTextfileWindow (TextfileType file_type, const GRFConfig *c) |
static void | FillGrfidMap (const GRFConfig *c, GrfIdMap *grfid_map) |
Add all grf configs from c into the map. More... | |
static void | NewGRFConfirmationCallback (Window *w, bool confirmed) |
Callback function for the newgrf 'apply changes' confirmation window. More... | |
static void | ShowSavePresetWindow (const char *initial_text) |
Open the window for saving a preset. More... | |
void | ShowMissingContentWindow (const GRFConfig *list) |
Show the content list window with all missing grfs from the given list. More... | |
std::unique_ptr< NWidgetBase > | NewGRFDisplay () |
Construct nested container widget for managing the lists and the info panel of the NewGRF GUI. | |
void | ShowNewGRFSettings (bool editable, bool show_params, bool exec_changes, GRFConfig **config) |
Setup the NewGRF gui. More... | |
void | UpdateNewGRFScanStatus (uint num, const char *name) |
Update the NewGRF scan status. More... | |
Variables | |
static constexpr NWidgetPart | _nested_newgrf_parameter_widgets [] |
static WindowDesc | _newgrf_parameters_desc (WDP_CENTER, "settings_newgrf_config", 500, 208, WC_GRF_PARAMETERS, WC_NONE, 0, _nested_newgrf_parameter_widgets) |
Window definition for the change grf parameters window. | |
static constexpr NWidgetPart | _nested_newgrf_actives_widgets [] |
static constexpr NWidgetPart | _nested_newgrf_availables_widgets [] |
static constexpr NWidgetPart | _nested_newgrf_infopanel_widgets [] |
static constexpr NWidgetPart | _nested_newgrf_widgets [] |
static WindowDesc | _newgrf_desc (WDP_CENTER, "settings_newgrf", 300, 263, WC_GAME_OPTIONS, WC_NONE, 0, _nested_newgrf_widgets) |
static constexpr NWidgetPart | _nested_save_preset_widgets [] |
Widget parts of the save preset window. More... | |
static WindowDesc | _save_preset_desc (WDP_CENTER, "save_preset", 140, 110, WC_SAVE_PRESET, WC_GAME_OPTIONS, WDF_MODAL, _nested_save_preset_widgets) |
Window description of the preset save window. | |
static constexpr NWidgetPart | _nested_scan_progress_widgets [] |
Widgets for the progress window. More... | |
static WindowDesc | _scan_progress_desc (WDP_CENTER, nullptr, 0, 0, WC_MODAL_PROGRESS, WC_NONE, 0, _nested_scan_progress_widgets) |
Description of the widgets and other settings of the window. | |
GUI to change NewGRF settings.
Definition in file newgrf_gui.cpp.
Add all grf configs from c into the map.
c | Grf list to add. |
grfid_map | Map to add them to. |
Definition at line 591 of file newgrf_gui.cpp.
References GRFIdentifier::grfid, GRFConfig::ident, and GRFConfig::next.
Referenced by NewGRFWindow::CanUpgradeCurrent(), and NewGRFWindow::UpgradeCurrent().
|
static |
Callback function for the newgrf 'apply changes' confirmation window.
w | Window which is calling this callback |
confirmed | boolean value, true when yes was clicked, false otherwise |
Definition at line 1980 of file newgrf_gui.cpp.
References _gamelog, _grfconfig, NewGRFWindow::active_sel, NewGRFWindow::actives, NewGRFWindow::avails, CloseWindowByClass(), CopyGRFConfigList(), GUIList< T, P, F >::ForceRebuild(), GLAT_GRF, Gamelog::GRFUpdate(), Window::InvalidateData(), NewGRFWindow::modified, GRFConfig::next, NewGRFWindow::orig_list, ReInitAllWindows(), ReloadNewGRFData(), Gamelog::StartAction(), Gamelog::StopAction(), WC_BUILD_OBJECT, WC_GRF_PARAMETERS, and WC_TEXTFILE.
void ShowMissingContentWindow | ( | const GRFConfig * | list | ) |
Show the content list window with all missing grfs from the given list.
list | The list of grfs to check for missing / not exactly matching ones. |
Definition at line 1567 of file newgrf_gui.cpp.
References BSWAP32(), CONTENT_TYPE_NEWGRF, ContentInfo::DOES_NOT_EXIST, GRFConfig::flags, GCF_COMPATIBLE, GCS_NOT_FOUND, GRFConfig::GetName(), GRFIdentifier::grfid, HasBit(), GRFConfig::ident, ContentInfo::md5sum, GRFIdentifier::md5sum, ContentInfo::name, GRFConfig::next, GRFConfig::original_md5sum, ShowNetworkContentListWindow(), ContentInfo::state, GRFConfig::status, ContentInfo::type, and ContentInfo::unique_id.
void ShowNewGRFSettings | ( | bool | editable, |
bool | show_params, | ||
bool | exec_changes, | ||
GRFConfig ** | config | ||
) |
Setup the NewGRF gui.
editable | allow the user to make changes to the grfconfig in the window |
show_params | show information about what parameters are set for the grf files |
exec_changes | if changes are made to the list (editable is true), apply these changes immediately or only update the list |
config | pointer to a linked-list of grfconfig's that will be shown |
Definition at line 2020 of file newgrf_gui.cpp.
References CloseWindowByClass(), and WC_GAME_OPTIONS.
|
static |
Open the window for saving a preset.
initial_text | Initial text to display in the edit box, or nullptr . |
Definition at line 2178 of file newgrf_gui.cpp.
References CloseWindowByClass(), and WC_SAVE_PRESET.
void UpdateNewGRFScanStatus | ( | uint | num, |
const char * | name | ||
) |
Update the NewGRF scan status.
num | The number of NewGRFs scanned so far. |
name | The name of the last scanned NewGRF. |
Definition at line 2286 of file newgrf_gui.cpp.
References FindWindowByClass(), ScanProgressWindow::UpdateNewGRFScanStatus(), and WC_MODAL_PROGRESS.
|
staticconstexpr |
Definition at line 1951 of file newgrf_gui.cpp.
|
staticconstexpr |
Widget parts of the save preset window.
Definition at line 2027 of file newgrf_gui.cpp.
|
staticconstexpr |
Widgets for the progress window.
Definition at line 2185 of file newgrf_gui.cpp.