40#include "table/strings.h"
47extern void MakeNewgameSettingsLive();
174 NWidget(
WWT_TEXT, INVALID_COLOUR),
SetStringTip(STR_MAPGEN_NORTHWEST),
SetPadding(0,
WidgetDimensions::unscaled.hsep_normal, 0, 0),
SetFill(1, 1),
SetAlignment(
SA_RIGHT |
SA_VERT_CENTER),
180 NWidget(
WWT_TEXT, INVALID_COLOUR),
SetStringTip(STR_MAPGEN_SOUTHWEST),
SetPadding(0,
WidgetDimensions::unscaled.hsep_normal, 0, 0),
SetFill(1, 1),
SetAlignment(
SA_RIGHT |
SA_VERT_CENTER),
323 MakeNewgameSettingsLive();
331 default: NOT_REACHED();
335static void LandscapeGenerationCallback(
Window *w,
bool confirmed)
345 list.push_back(MakeDropDownListStringItem(
GetString(STR_JUST_INT, 1ULL << i), i));
356 const auto &grf_names = GetGRFTownNameList();
357 for (uint i = 0; i < grf_names.size(); i++) {
362 size_t newgrf_size = list.size();
364 if (newgrf_size > 0) {
365 list.push_back(MakeDropDownListDividerItem());
371 list.push_back(MakeDropDownListStringItem(STR_MAPGEN_TOWN_NAME_ORIGINAL_ENGLISH + i, i));
379static const StringID _elevations[] = {STR_TERRAIN_TYPE_VERY_FLAT, STR_TERRAIN_TYPE_FLAT, STR_TERRAIN_TYPE_HILLY, STR_TERRAIN_TYPE_MOUNTAINOUS, STR_TERRAIN_TYPE_ALPINIST, STR_TERRAIN_TYPE_CUSTOM};
380static const StringID _sea_lakes[] = {STR_SEA_LEVEL_VERY_LOW, STR_SEA_LEVEL_LOW, STR_SEA_LEVEL_MEDIUM, STR_SEA_LEVEL_HIGH, STR_SEA_LEVEL_CUSTOM};
381static const StringID _rivers[] = {STR_RIVERS_NONE, STR_RIVERS_FEW, STR_RIVERS_MODERATE, STR_RIVERS_LOT};
382static const StringID _smoothness[] = {STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH, STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH, STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH, STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH};
383static const StringID _rotation[] = {STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE, STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE};
384static const StringID _num_towns[] = {STR_NUM_VERY_LOW, STR_NUM_LOW, STR_NUM_NORMAL, STR_NUM_HIGH, STR_NUM_CUSTOM};
385static const StringID _num_inds[] = {STR_FUNDING_ONLY, STR_MINIMAL, STR_NUM_VERY_LOW, STR_NUM_LOW, STR_NUM_NORMAL, STR_NUM_HIGH, STR_NUM_CUSTOM};
386static const StringID _variety[] = {STR_VARIETY_NONE, STR_VARIETY_VERY_LOW, STR_VARIETY_LOW, STR_VARIETY_MEDIUM, STR_VARIETY_HIGH, STR_VARIETY_VERY_HIGH};
388static_assert(std::size(_num_inds) ==
ID_END);
433 if (_game_mode == GM_EDITOR) {
434 return GetString(STR_CONFIG_SETTING_OFF);
444 STR_MAPGEN_TOWN_NAME_ORIGINAL_ENGLISH + gen :
450 if (_game_mode == GM_EDITOR) {
451 return GetString(STR_CONFIG_SETTING_OFF);
483 return GetString(STR_MAPGEN_HEIGHTMAP_SIZE, this->y, this->x);
485 return GetString(STR_MAPGEN_HEIGHTMAP_SIZE, this->x, this->y);
497 void OnInvalidateData([[maybe_unused]]
int data = 0, [[maybe_unused]]
bool gui_scope =
true)
override
499 if (!gui_scope)
return;
531 int climate_plane = 0;
533 case LandscapeType::Temperate: climate_plane = 2;
break;
534 case LandscapeType::Arctic: climate_plane = 0;
break;
535 case LandscapeType::Tropic: climate_plane = 1;
break;
536 case LandscapeType::Toyland: climate_plane = 2;
break;
497 void OnInvalidateData([[maybe_unused]]
int data = 0, [[maybe_unused]]
bool gui_scope =
true)
override {
…}
568 std::span<const StringID> strs;
644 d.width += padding.width;
645 d.height += padding.height;
700 LandscapeGenerationCallback);
702 StartGeneratingLandscape(mode);
789 uint32_t hidden_mask = 0;
881 this->widget_id = widget;
896 this->widget_id = widget;
904 this->widget_id = widget;
913 this->widget_id = widget;
926 if (!str.has_value())
return;
930 auto val = ParseInteger<int32_t>(*str, 10,
true);
931 if (!val.has_value())
return;
935 switch (this->widget_id) {
944 default: NOT_REACHED();
948 switch (this->widget_id) {
1133 d.width += padding.width;
1134 d.height += padding.height;
1217 if (!str.has_value())
return;
1219 auto value = ParseInteger<int32_t>(*str, 10,
true);
1220 if (!value.has_value())
return;
1222 switch (this->widget_id) {
1238static constexpr NWidgetPart _nested_create_scenario_widgets[] = {
1301 _nested_create_scenario_widgets
1311static constexpr NWidgetPart _nested_generate_progress_widgets[] = {
1327 _nested_generate_progress_widgets
1331 static inline uint percent;
1333 static inline uint current;
1334 static inline uint total;
1337static const StringID _generation_class_table[] = {
1338 STR_GENERATION_WORLD_GENERATION,
1339 STR_GENERATION_LANDSCAPE_GENERATION,
1340 STR_GENERATION_RIVER_GENERATION,
1341 STR_GENERATION_CLEARING_TILES,
1342 STR_GENERATION_TOWN_GENERATION,
1343 STR_GENERATION_INDUSTRY_GENERATION,
1344 STR_GENERATION_OBJECT_GENERATION,
1345 STR_GENERATION_TREE_GENERATION,
1346 STR_GENERATION_SETTINGUP_GAME,
1347 STR_GENERATION_PREPARING_TILELOOP,
1348 STR_GENERATION_PREPARING_SCRIPT,
1349 STR_GENERATION_PREPARING_GAME
1351static_assert(
lengthof(_generation_class_table) == GWP_CLASS_COUNT);
1354static void AbortGeneratingWorldCallback(
Window *,
bool confirmed)
1379 AbortGeneratingWorldCallback
1397 for (uint i = 0; i < GWP_CLASS_COUNT; i++) {
1424 GetString(STR_GENERATION_PROGRESS_NUM, GenWorldStatus::current, GenWorldStatus::total), TC_FROMSTRING,
SA_HOR_CENTER);
1434 GenWorldStatus::cls = STR_GENERATION_WORLD_GENERATION;
1435 GenWorldStatus::current = 0;
1436 GenWorldStatus::total = 0;
1437 GenWorldStatus::percent = 0;
1449static void _SetGeneratingWorldProgress(
GenWorldProgress cls, uint progress, uint total)
1451 static const int percent_table[] = {0, 5, 14, 17, 20, 40, 60, 65, 80, 85, 95, 99, 100 };
1452 static_assert(
lengthof(percent_table) == GWP_CLASS_COUNT + 1);
1453 assert(cls < GWP_CLASS_COUNT);
1467 assert(GenWorldStatus::cls == _generation_class_table[cls]);
1468 GenWorldStatus::current += progress;
1469 assert(GenWorldStatus::current <= GenWorldStatus::total);
1471 GenWorldStatus::cls = _generation_class_table[cls];
1472 GenWorldStatus::current = progress;
1473 GenWorldStatus::total = total;
1474 GenWorldStatus::percent = percent_table[cls];
1478 GenWorldStatus::percent = percent_table[cls] + (percent_table[cls + 1] - percent_table[cls]) * (GenWorldStatus::current == 0 ? 0 :
GenWorldStatus::current - 1) /
GenWorldStatus::total;
1481 static uint last_percent = 0;
1484 if (GenWorldStatus::percent == 0)
return;
1486 if (GenWorldStatus::percent < last_percent) last_percent = 0;
1488 if (GenWorldStatus::percent % 5 != 0 && GenWorldStatus::percent <= last_percent + 5)
return;
1490 if (GenWorldStatus::percent <= last_percent + 2)
return;
1492 Debug(net, 3,
"Map generation percentage complete: {}", GenWorldStatus::percent);
1493 last_percent = GenWorldStatus::percent;
1513 if (total == 0)
return;
1515 _SetGeneratingWorldProgress(cls, 0, total);
1528 _SetGeneratingWorldProgress(cls, 1, 0);
void ShowAIConfigWindow()
Open the AI config window.
Window for configuring the AIs
constexpr T SetBit(T &x, const uint8_t y)
Set a bit in a variable.
constexpr bool Test(Tvalue_type value) const
Test if the value-th bit is set.
constexpr Timpl & Reset()
Reset all bits.
constexpr Timpl & Flip(Tvalue_type value)
Flip the value-th bit.
static bool NatSortFunc(std::unique_ptr< const DropDownListItem > const &first, std::unique_ptr< const DropDownListItem > const &second)
Natural sorting comparator function for DropDownList::sort().
static Date ConvertYMDToDate(Year year, Month month, Day day)
Converts a tuple of Year, Month and Day to a Date.
static constexpr TimerGame< struct Calendar >::Year DEF_START_YEAR
The default starting year.
static constexpr TimerGame< struct Calendar >::Year MIN_YEAR
The absolute minimum year in OTTD.
static constexpr TimerGame< struct Calendar >::Year MAX_YEAR
MAX_YEAR, nicely rounded value of the number of years that can be encoded in a single 32 bits date,...
static VideoDriver * GetInstance()
Get the currently active instance of the video driver.
void GameLoopPause()
Pause the game-loop for a bit, releasing the game-state lock.
Functions related to debugging.
#define Debug(category, level, format_string,...)
Output a line of debugging information.
void ShowDropDownMenu(Window *w, std::span< const StringID > strings, int selected, WidgetID button, uint32_t disabled_mask, uint32_t hidden_mask, uint width)
Show a dropdown menu window near a widget of the parent window.
void ShowDropDownList(Window *w, DropDownList &&list, int selected, WidgetID button, uint width, bool instant_close, bool persist)
Show a drop down list.
Common drop down list components.
Functions related to the drop down widget.
Types related to the drop down widget.
std::vector< std::unique_ptr< const DropDownListItem > > DropDownList
A drop down list is a collection of drop down list items.
constexpr std::underlying_type_t< enum_type > to_underlying(enum_type e)
Implementation of std::to_underlying (from C++23)
Functions related to errors.
void ClearErrorMessages()
Clear all errors from the queue.
Declarations for savegames operations.
int GetCharacterHeight(FontSize size)
Get height of a character for a given font size.
void ShowGSConfigWindow()
Open the GS config window.
Window for configuring the Games
void HandleGeneratingWorldAbortion()
Really handle the abortion, i.e.
void AbortGeneratingWorld()
Initializes the abortion process.
bool IsGeneratingWorldAborted()
Is the generation being aborted?
Functions related to world/map generation.
static const uint MAP_HEIGHT_LIMIT_AUTO_MINIMUM
When map height limit is auto, make this the lowest possible map height limit.
@ LG_ORIGINAL
The original landscape generator.
static const uint CUSTOM_SEA_LEVEL_MAX_PERCENTAGE
Maximum percentage a user can specify for custom sea level.
static const uint CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY
Value for custom sea level in difficulty settings.
GenWorldProgress
Current stage of world generation process.
static const uint CUSTOM_SEA_LEVEL_MIN_PERCENTAGE
Minimum percentage a user can specify for custom sea level.
static const uint CUSTOM_TERRAIN_TYPE_NUMBER_DIFFICULTY
Value for custom terrain type in difficulty settings.
void IncreaseGeneratingWorldProgress(GenWorldProgress cls)
Increases the current stage of the world generation with one.
void ShowGenerateWorldProgress()
Show the window where a user can follow the process of the map generation.
void ShowGenerateLandscape()
Start with a normal game.
static constexpr NWidgetPart _nested_heightmap_load_widgets[]
Widgets of GenerateLandscapeWindow when loading heightmap.
void ShowCreateScenario()
Show the window to create a scenario.
static constexpr NWidgetPart _nested_generate_landscape_widgets[]
Widgets of GenerateLandscapeWindow when generating world.
static uint GetMapHeightLimit()
Get the map height limit, or if set to "auto", the absolute limit.
void SetNewLandscapeType(LandscapeType landscape)
Changes landscape type and sets genworld window dirty.
void StartScenarioEditor()
Start with a scenario editor.
void SetGeneratingWorldProgress(GenWorldProgress cls, uint total)
Set the total of a stage of the world generation.
void PrepareGenerateWorldProgress()
Initializes the progress counters to the starting point.
GenerateLandscapeWindowMode
Enum for the modes we can generate in.
@ GLWM_GENERATE
Generate new game.
@ GLWM_HEIGHTMAP
Load from heightmap.
@ GLWM_SCENARIO
Generate flat land.
void ShowHeightmapLoad()
Start with loading a heightmap.
void StartNewGameWithoutGUI(uint32_t seed)
Start a normal game without the GUI.
Dimension maxdim(const Dimension &d1, const Dimension &d2)
Compute bounding box of both dimensions.
int CentreBounds(int min, int max, int size)
Determine where to position a centred object.
void SetMouseCursor(CursorID sprite, PaletteID pal)
Assign a single non-animated sprite to the cursor.
Dimension GetStringBoundingBox(std::string_view str, FontSize start_fontsize)
Return the string dimension in pixels.
Dimension GetStringListBoundingBox(std::span< const StringID > list, FontSize fontsize)
Get maximum dimension of a list of strings.
int DrawString(int left, int right, int top, std::string_view str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize)
Draw string, possibly truncated to make it fit in its allocated space.
bool _left_button_clicked
Is left mouse button clicked?
void SetMouseCursorBusy(bool busy)
Set or unset the ZZZ cursor.
SwitchMode _switch_mode
The next mainloop command.
@ FS_NORMAL
Index of the normal font in the font tables.
@ SA_RIGHT
Right align the text (must be a single bit).
@ SA_HOR_CENTER
Horizontally center the text.
@ SA_CENTER
Center both horizontally and vertically.
@ SA_VERT_CENTER
Vertically center the text.
void SetDirty() const
Mark entire window as dirty (in need of re-paint)
bool GetHeightmapDimensions(DetailedFileType dft, std::string_view filename, uint *x, uint *y)
Get the dimensions of a heightmap.
Functions related to creating heightmaps from files.
@ HM_CLOCKWISE
Rotate the map clockwise 45 degrees.
LandscapeType
Landscape types.
@ NorthWest
Border on North West.
@ Random
Randomise borders.
@ NorthEast
Border on North East.
@ SouthEast
Border on South East.
@ SouthWest
Border on South West.
static const uint MIN_MAP_SIZE_BITS
Minimal and maximal map width and height.
static const uint MAX_MAP_SIZE
Maximal map size = 4096.
static const uint MAX_MAP_SIZE_BITS
Maximal size of map is equal to 2 ^ MAX_MAP_SIZE_BITS.
constexpr T Clamp(const T a, const T min, const T max)
Clamp a value between an interval.
void ShowQuery(EncodedString &&caption, EncodedString &&message, Window *parent, QueryCallbackProc *callback, bool focus)
Show a confirmation window with standard 'yes' and 'no' buttons The window is aligned to the centre o...
void ShowQueryString(std::string_view str, StringID caption, uint maxsize, Window *parent, CharSetFilter afilter, QueryStringFlags flags)
Show a query popup window with a textbox in it.
bool _network_dedicated
are we a dedicated server?
Basic functions/variables used all over the place.
void ResetGRFConfig(bool defaults)
Reset the current GRF Config to either blank or newgame settings.
GRFConfigList _grfconfig_newgame
First item in list of default GRF set up.
void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFConfigList &config)
Setup the NewGRF gui.
Header of Action 0F "universal holder" structure and functions.
@ SM_START_HEIGHTMAP
Load a heightmap and start a new game from it.
@ SM_GENRANDLAND
Generate random land within scenario editor.
@ SM_LOAD_HEIGHTMAP
Load heightmap from scenario editor.
@ SM_EDITOR
Switch to scenario editor.
@ SM_NEWGAME
New Game --> 'Random game'.
Functions related to modal progress.
bool HasModalProgress()
Check if we are currently in a modal progress state.
Base for the GUIs that have an edit box in them.
Pseudo random number generator.
A number of safeguards to prevent using unsafe methods.
FileToSaveLoad _file_to_saveload
File to save or load in the openttd loop.
Functions/types related to saving and loading games.
GameSettings _settings_newgame
Game settings for new games (updated from the intro screen).
@ ID_CUSTOM
Custom number of industries.
@ ID_END
Number of industry density settings.
void SndConfirmBeep()
Play a beep sound for a confirm event if enabled in settings.
void SndClickBeep()
Play a beep sound for a click event if enabled in settings.
Functions related to sound.
Definition of base types and functions in a cross-platform compatible way.
#define lengthof(array)
Return the length of an fixed size array.
Functions related to low-level strings.
@ CS_NUMERAL
Only numeric ones.
uint64_t GetParamMaxValue(uint64_t max_value, uint min_count, FontSize size)
Get some number that is suitable for string size computations.
EncodedString GetEncodedString(StringID str)
Encode a string with no parameters into an encoded string.
std::string GetString(StringID string)
Resolve the given StringID into a std::string with formatting but no parameters.
TextDirection _current_text_dir
Text direction of the currently selected language.
Functions related to OTTD's strings.
uint32_t StringID
Numeric value that represents a string, independent of the selected language.
static constexpr uint32_t BUILTIN_TOWNNAME_GENERATOR_COUNT
The number of builtin generators for town names.
@ TD_RTL
Text is written right-to-left by default.
bool freeform_edges
allow terraforming the tiles at the map edges
uint8_t map_height_limit
the maximum allowed heightlevel
std::string GetWidgetString(WidgetID widget, StringID stringid) const override
Get the raw string for a widget.
void OnDropdownSelect(WidgetID widget, int index, int) override
A dropdown option associated to this window has been selected.
void OnClick(Point pt, WidgetID widget, int click_count) override
A click with the left mouse button has been made on the window.
void OnQueryTextFinished(std::optional< std::string > str) override
The query window opened from this window has closed.
void UpdateWidgetSize(WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) override
Update size and resize step of a widget in the window.
void OnPaint() override
The window must be repainted.
void OnTimeout() override
Called when this window's timeout has been reached.
uint8_t number_towns
the amount of towns
uint8_t terrain_type
the mountainousness of the landscape
uint8_t industry_density
The industry density.
uint8_t quantity_sea_lakes
the amount of seas/lakes
Dimensions (a width and height) of a rectangle in 2D.
std::string title
Internal name of the game.
std::string name
Name of the file.
DetailedFileType detailed
Detailed file type.
uint8_t custom_sea_level
manually entered percentage of water in the map
uint8_t amount_of_rivers
the amount of rivers
uint16_t custom_town_number
manually entered number of towns
uint16_t custom_industry_number
manually entered number of industries
uint8_t variety
variety level applied to TGP
uint8_t snow_coverage
the amount of snow coverage on the map
uint8_t desert_coverage
the amount of desert coverage on the map
uint8_t custom_terrain_type
manually entered height for TGP to aim for
LandscapeType landscape
the landscape we're currently in
uint8_t map_x
X size of map.
uint8_t land_generator
the landscape generator
uint8_t tgen_smoothness
how rough is the terrain from 0-3
uint8_t se_flat_world_height
land height a flat world gets in SE
uint8_t town_name
the town name generator used for town names
uint8_t map_y
Y size of map.
TimerGameCalendar::Year starting_year
starting date
uint8_t heightmap_rotation
rotation director for the heightmap
BorderFlags water_borders
bitset of the borders that are water
uint32_t generation_seed
noise seed for world generation
uint8_t heightmap_height
highest mountain for heightmap (towards what it scales)
ConstructionSettings construction
construction of things in-game
DifficultySettings difficulty
settings related to the difficulty
GameCreationSettings game_creation
settings used during the creation of a game (map)
void UpdateWidgetSize(WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) override
Update size and resize step of a widget in the window.
void OnDropdownSelect(WidgetID widget, int index, int) override
A dropdown option associated to this window has been selected.
void OnTimeout() override
Called when this window's timeout has been reached.
void OnInvalidateData(int data=0, bool gui_scope=true) override
Some data on this window has become invalid.
void OnClick(Point pt, WidgetID widget, int click_count) override
A click with the left mouse button has been made on the window.
std::string GetWidgetString(WidgetID widget, StringID stringid) const override
Get the raw string for a widget.
void OnQueryTextFinished(std::optional< std::string > str) override
The query window opened from this window has closed.
void OnClick(Point pt, WidgetID widget, int click_count) override
A click with the left mouse button has been made on the window.
void UpdateWidgetSize(WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) override
Update size and resize step of a widget in the window.
void DrawWidget(const Rect &r, WidgetID widget) const override
Draw the contents of a nested widget.
static size_t GetNumItems()
Returns number of valid items in the pool.
static constexpr size_t MAX_SIZE
Make template parameter accessible from outside.
constexpr uint Horizontal() const
Get total horizontal padding of RectPadding.
constexpr uint Vertical() const
Get total vertical padding of RectPadding.
Specification of a rectangle with absolute coordinates of all edges.
Rect Shrink(int s) const
Copy and shrink Rect by s pixels.
Templated helper to make a type-safe 'typedef' representing a single POD value.
High level window description.
Number to differentiate different windows of the same class.
Data structure for an opened window.
void DrawWidgets() const
Paint all widgets of a window.
void InvalidateData(int data=0, bool gui_scope=true)
Mark this window's data as invalid (in need of re-computing)
void RaiseWidget(WidgetID widget_index)
Marks a widget as raised.
void SetWidgetDirty(WidgetID widget_index) const
Invalidate a widget, i.e.
virtual std::string GetWidgetString(WidgetID widget, StringID stringid) const
Get the raw string for a widget.
ResizeInfo resize
Resize information.
void SetWidgetsDisabledState(bool disab_stat, Args... widgets)
Sets the enabled/disabled status of a list of widgets.
void SetWidgetLoweredState(WidgetID widget_index, bool lowered_stat)
Sets the lowered/raised status of a widget.
void RaiseWidgetsWhenLowered(Args... widgets)
Raises the widgets and sets widgets dirty that are lowered.
void LowerWidget(WidgetID widget_index)
Marks a widget as lowered.
void HandleButtonClick(WidgetID widget)
Do all things to make a button look clicked and mark it to be unclicked in a few ticks.
void InitNested(WindowNumber number=0)
Perform complete initialization of the Window with nested widgets, to allow use.
WindowFlags flags
Window flags.
void SetWidgetDisabledState(WidgetID widget_index, bool disab_stat)
Sets the enabled/disabled status of a widget.
int width
width of the window (number of pixels to the right in x direction)
WindowNumber window_number
Window number within the window class.
@ EnableDefault
enable the 'Default' button ("\0" is returned)
static constexpr uint MAX_TILE_HEIGHT
Maximum allowed tile height.
static constexpr uint MIN_CUSTOM_TERRAIN_TYPE
Lowest possible peak value for world generation.
static constexpr uint DEF_DESERT_COVERAGE
Default desert coverage.
static constexpr uint MIN_MAP_HEIGHT_LIMIT
Lower bound of maximum allowed heightlevel (in the construction settings)
static constexpr uint MAX_MAP_HEIGHT_LIMIT
Upper bound of maximum allowed heightlevel (in the construction settings)
static constexpr uint MIN_HEIGHTMAP_HEIGHT
Lowest possible peak value for heightmap creation.
static constexpr uint DEF_SNOW_COVERAGE
Default snow coverage.
Definition of the game-calendar-timer.
static const uint CUSTOM_TOWN_MAX_NUMBER
this is the maximum number of towns a user can specify in customisation
static const uint CUSTOM_TOWN_NUMBER_DIFFICULTY
value for custom town number in difficulty settings
Definition of structures used for generating town names.
Base of all video drivers.
void CloseWindowByClass(WindowClass cls, int data)
Close all windows of a given class.
Window * BringWindowToFrontById(WindowClass cls, WindowNumber number)
Find a window and make it the relative top-window on the screen.
void CloseAllNonVitalWindows()
It is possible that a stickied window gets to a position where the 'close' button is outside the gami...
void SetWindowDirty(WindowClass cls, WindowNumber number)
Mark window as dirty (in need of repainting)
void InvalidateWindowClassesData(WindowClass cls, int data, bool gui_scope)
Mark window data of all windows of a given class as invalid (in need of re-computing) Note that by de...
Window functions not directly related to making/drawing windows.
@ NoClose
This window can't be interactively closed.
@ BorderOnly
Draw border only, no background.
@ Lowered
If set the frame is lowered and the background colour brighter (ie. buttons when pressed)
@ Timeout
Window timeout counter.
@ WDP_CENTER
Center the window.
@ WN_GAME_OPTIONS_GAME_OPTIONS
Game options.
@ WC_SELECT_GAME
Select game window; Window numbers:
@ WC_NONE
No window, redirects to WC_MAIN_WINDOW.
@ WC_GENERATE_LANDSCAPE
Generate landscape (newgame); Window numbers:
@ WC_GAME_OPTIONS
Game options window; Window numbers:
@ WC_MODAL_PROGRESS
Progress report of landscape generation; Window numbers: