OpenTTD: src/genworld_gui.cpp File Reference

OpenTTD

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

- File List
- Globals

Data Structures | Enumerations | Functions | Variables
genworld_gui.cpp File Reference

GUI to configure and show progress during map generation. More...

`#include "stdafx.h"`
`#include "heightmap.h"`
`#include "debug.h"`
`#include "genworld.h"`
`#include "network/network.h"`
`#include "strings_func.h"`
`#include "window_func.h"`
`#include "date_func.h"`
`#include "sound_func.h"`
`#include "fios.h"`
`#include "string_func.h"`
`#include "widgets/dropdown_type.h"`
`#include "widgets/dropdown_func.h"`
`#include "querystring_gui.h"`
`#include "town.h"`
`#include "core/geometry_func.hpp"`
`#include "core/random_func.hpp"`
`#include "progress.h"`
`#include "error.h"`
`#include "widgets/genworld_widget.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | GenerateLandscapeWindow
struct | CreateScenarioWindow
struct | GenWorldStatus
struct | GenerateProgressWindow

## Enumerations
enum | GenenerateLandscapeWindowMode { GLWM_GENERATE, GLWM_HEIGHTMAP, GLWM_SCENARIO }
| Enum for the modes we can generate in. More...

## Functions
void | MakeNewgameSettingsLive ()
void | SetNewLandscapeType (byte landscape)
| Changes landscape type and sets genworld window dirty.
static void | StartGeneratingLandscape (GenenerateLandscapeWindowMode mode)
static void | LandscapeGenerationCallback (Window *w, bool confirmed)
static DropDownList * | BuildMapsizeDropDown ()
| assert_compile (lengthof(_num_inds)==ID_END+1)
static void | _ShowGenerateLandscape (GenenerateLandscapeWindowMode mode)
void | ShowGenerateLandscape ()
| Start with a normal game.
void | ShowHeightmapLoad ()
| Start with loading a heightmap.
void | StartScenarioEditor ()
| Start with a scenario editor.
void | StartNewGameWithoutGUI (uint seed)
| Start a normal game without the GUI.
void | ShowCreateScenario ()
| Show the window to create a scenario.
| assert_compile (lengthof(_generation_class_table)==GWP_CLASS_COUNT)
static void | AbortGeneratingWorldCallback (Window *w, bool confirmed)
void | PrepareGenerateWorldProgress ()
| Initializes the progress counters to the starting point.
void | ShowGenerateWorldProgress ()
| Show the window where a user can follow the process of the map generation.
static void | _SetGeneratingWorldProgress (GenWorldProgress cls, uint progress, uint total)
void | SetGeneratingWorldProgress (GenWorldProgress cls, uint total)
| Set the total of a stage of the world generation.
void | IncreaseGeneratingWorldProgress (GenWorldProgress cls)
| Increases the current stage of the world generation with one.

## Variables
static const NWidgetPart | _nested_generate_landscape_widgets []
| Widgets of GenerateLandscapeWindow when generating world.
static const NWidgetPart | _nested_heightmap_load_widgets []
| Widgets of GenerateLandscapeWindow when loading heightmap.
static const StringID | _elevations [] = {STR_TERRAIN_TYPE_VERY_FLAT, STR_TERRAIN_TYPE_FLAT, STR_TERRAIN_TYPE_HILLY, STR_TERRAIN_TYPE_MOUNTAINOUS, STR_TERRAIN_TYPE_ALPINIST, INVALID_STRING_ID}
static 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, INVALID_STRING_ID}
static const StringID | _rivers [] = {STR_RIVERS_NONE, STR_RIVERS_FEW, STR_RIVERS_MODERATE, STR_RIVERS_LOT, INVALID_STRING_ID}
static 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, INVALID_STRING_ID}
static const StringID | _tree_placer [] = {STR_CONFIG_SETTING_TREE_PLACER_NONE, STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL, STR_CONFIG_SETTING_TREE_PLACER_IMPROVED, INVALID_STRING_ID}
static const StringID | _rotation [] = {STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE, STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE, INVALID_STRING_ID}
static const StringID | _landscape [] = {STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL, STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS, INVALID_STRING_ID}
static const StringID | _num_towns [] = {STR_NUM_VERY_LOW, STR_NUM_LOW, STR_NUM_NORMAL, STR_NUM_HIGH, STR_NUM_CUSTOM, INVALID_STRING_ID}
static const StringID | _num_inds [] = {STR_FUNDING_ONLY, STR_MINIMAL, STR_NUM_VERY_LOW, STR_NUM_LOW, STR_NUM_NORMAL, STR_NUM_HIGH, INVALID_STRING_ID}
static const StringID | _variety [] = {STR_VARIETY_NONE, STR_VARIETY_VERY_LOW, STR_VARIETY_LOW, STR_VARIETY_MEDIUM, STR_VARIETY_HIGH, STR_VARIETY_VERY_HIGH, INVALID_STRING_ID}
static WindowDesc | _generate_landscape_desc (WDP_CENTER, NULL, 0, 0, WC_GENERATE_LANDSCAPE, WC_NONE, 0, _nested_generate_landscape_widgets, lengthof(_nested_generate_landscape_widgets))
static WindowDesc | _heightmap_load_desc (WDP_CENTER, NULL, 0, 0, WC_GENERATE_LANDSCAPE, WC_NONE, 0, _nested_heightmap_load_widgets, lengthof(_nested_heightmap_load_widgets))
static const NWidgetPart | _nested_create_scenario_widgets []
static WindowDesc | _create_scenario_desc (WDP_CENTER, NULL, 0, 0, WC_GENERATE_LANDSCAPE, WC_NONE, 0, _nested_create_scenario_widgets, lengthof(_nested_create_scenario_widgets))
static const NWidgetPart | _nested_generate_progress_widgets []
static WindowDesc | _generate_progress_desc (WDP_CENTER, NULL, 0, 0, WC_MODAL_PROGRESS, WC_NONE, 0, _nested_generate_progress_widgets, lengthof(_nested_generate_progress_widgets))
static GenWorldStatus | _gws
static const StringID | _generation_class_table []

## Detailed Description

GUI to configure and show progress during map generation.

Definition in file genworld_gui.cpp.

## Enumeration Type Documentation

enum GenenerateLandscapeWindowMode

Enum for the modes we can generate in.

Enumerator:

  GLWM_GENERATE | Generate new game.
  GLWM_HEIGHTMAP | Load from heightmap.
  GLWM_SCENARIO | Generate flat land.

Definition at line 40 of file genworld_gui.cpp.

## Function Documentation

void IncreaseGeneratingWorldProgress | ( | GenWorldProgress | cls | ) |

Increases the current stage of the world generation with one.

Parameters

  cls | the current class we are in.

Warning: this function isn't clever. Don't go from class 4 to 3. Go upwards, always. Also, progress works if total is zero, total works if progress is zero.

Definition at line 1353 of file genworld_gui.cpp.

Referenced by _GenerateWorld(), CreateRivers(), GenerateLandscape(), GenerateTerrainPerlin(), GenerateTowns(), PlaceInitialIndustry(), PlaceTreeGroups(), and PlaceTreesRandomly().

void SetGeneratingWorldProgress | ( | GenWorldProgress | cls,
|  | uint | total
| ) |  |

Set the total of a stage of the world generation.

Parameters

  cls | the current class we are in.
  total | Set the total expected items for this class.

Warning: this function isn't clever. Don't go from class 4 to 3. Go upwards, always. Also, progress works if total is zero, total works if progress is zero.

Definition at line 1339 of file genworld_gui.cpp.

Referenced by _GenerateWorld(), CreateRivers(), GenerateIndustries(), GenerateLandscape(), GenerateTowns(), and GenerateTrees().

void SetNewLandscapeType | ( | byte | landscape | ) |

Changes landscape type and sets genworld window dirty.

Parameters

  landscape | new landscape type

Definition at line 50 of file genworld_gui.cpp.

References _settings_newgame, GameSettings::game_creation, InvalidateWindowClassesData(), GameCreationSettings::landscape, WC_GENERATE_LANDSCAPE, and WC_SELECT_GAME.

Referenced by SelectGameWindow::OnClick(), GenerateLandscapeWindow::OnClick(), and CreateScenarioWindow::OnClick().

void ShowCreateScenario | ( |  | ) |

Show the window to create a scenario.

Definition at line 1119 of file genworld_gui.cpp.

References DeleteWindowByClass(), GLWM_SCENARIO, and WC_GENERATE_LANDSCAPE.

Referenced by ScenarioEditorLandscapeGenerationWindow::OnClick().

void ShowGenerateLandscape | ( |  | ) |

Start with a normal game.

Definition at line 851 of file genworld_gui.cpp.

References GLWM_GENERATE.

Referenced by SelectGameWindow::OnClick(), CreateScenarioWindow::OnClick(), and NetworkStartServerWindow::OnClick().

void ShowHeightmapLoad | ( |  | ) |

Start with loading a heightmap.

Definition at line 857 of file genworld_gui.cpp.

References GLWM_HEIGHTMAP.

Referenced by SaveLoadWindow::OnClick().

void StartNewGameWithoutGUI | ( | uint | seed | ) |

Start a normal game without the GUI.

Parameters

  seed | The seed of the new game.

Definition at line 872 of file genworld_gui.cpp.

References _settings_newgame, GameSettings::game_creation, GameCreationSettings::generation_seed, and GLWM_GENERATE.

Referenced by VideoDriver_Dedicated::MainLoop(), NetworkCheckRestartMap(), SelectGameWindow::OnClick(), and NetworkStartServerWindow::OnClick().

void StartScenarioEditor | ( |  | ) |

Start with a scenario editor.

Definition at line 863 of file genworld_gui.cpp.

References GLWM_SCENARIO.

Referenced by SelectGameWindow::OnClick().

## Variable Documentation

const StringID _generation_class_table[]
| static

Initial value:
{
STR_GENERATION_WORLD_GENERATION,
STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION,
STR_GENERATION_RIVER_GENERATION,
STR_GENERATION_CLEARING_TILES,
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION,
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION,
STR_GENERATION_OBJECT_GENERATION,
STR_GENERATION_TREE_GENERATION,
STR_GENERATION_SETTINGUP_GAME,
STR_GENERATION_PREPARING_TILELOOP,
STR_GENERATION_PREPARING_SCRIPT,
STR_GENERATION_PREPARING_GAME
}

Definition at line 1156 of file genworld_gui.cpp.

const NWidgetPart _nested_generate_progress_widgets[]
| static

Initial value:
{
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GENERATION_WORLD, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PANEL, COLOUR_GREY),
NWidget(NWID_HORIZONTAL), SetPIP(20, 0, 20),
NWidget(NWID_VERTICAL), SetPIP(11, 8, 11),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GP_PROGRESS_BAR), SetFill(1, 0),
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GP_PROGRESS_TEXT), SetFill(1, 0),
NWidget(WWT_TEXTBTN, COLOUR_WHITE, WID_GP_ABORT), SetDataTip(STR_GENERATION_ABORT, STR_NULL), SetFill(1, 0),
EndContainer(),
EndContainer(),
EndContainer(),
}

Definition at line 1125 of file genworld_gui.cpp.