GUI related to terraforming the map. More...
#include "stdafx.h"
#include "clear_map.h"
#include "company_func.h"
#include "company_base.h"
#include "gui.h"
#include "window_gui.h"
#include "window_func.h"
#include "viewport_func.h"
#include "command_func.h"
#include "signs_func.h"
#include "sound_func.h"
#include "base_station_base.h"
#include "textbuf_gui.h"
#include "genworld.h"
#include "tree_map.h"
#include "landscape_type.h"
#include "tilehighlight_func.h"
#include "strings_func.h"
#include "newgrf_object.h"
#include "object.h"
#include "hotkeys.h"
#include "engine_base.h"
#include "widgets/terraform_widget.h"
#include "table/strings.h"
Go to the source code of this file.
Data Structures | |
struct | TerraformToolbarWindow |
Terra form toolbar managing class. More... | |
struct | ScenarioEditorLandscapeGenerationWindow |
Landscape generation window handler in the scenario editor. More... | |
Functions | |
void | CcTerraform (const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) |
static void | GenerateDesertArea (TileIndex end, TileIndex start) |
Scenario editor command that generates desert areas. | |
static void | GenerateRockyArea (TileIndex end, TileIndex start) |
Scenario editor command that generates rocky areas. | |
bool | GUIPlaceProcDragXY (ViewportDragDropSelectionProcess proc, TileIndex start_tile, TileIndex end_tile) |
A central place to handle all X_AND_Y dragged GUI functions. | |
void | PlaceProc_DemolishArea (TileIndex tile) |
Start a drag for demolishing an area. | |
Window * | ShowTerraformToolbar (Window *link) |
Show the toolbar for terraforming in the game. | |
EventState | TerraformToolbarGlobalHotkeys (uint16 key, uint16 keycode) |
static void | CommonRaiseLowerBigLand (TileIndex tile, int mode) |
Raise/Lower a bigger chunk of land at the same time in the editor. | |
static void | ResetLandscapeConfirmationCallback (Window *w, bool confirmed) |
Callback function for the scenario editor 'reset landscape' confirmation window. | |
Window * | ShowEditorTerraformToolbar () |
Show the toolbar for terraforming in the scenario editor. | |
EventState | TerraformToolbarEditorGlobalHotkeys (uint16 key, uint16 keycode) |
Variables | |
Hotkey< TerraformToolbarWindow > * | _terraform_hotkeys = TerraformToolbarWindow::terraform_hotkeys |
static const NWidgetPart | _nested_terraform_widgets [] |
static const WindowDesc | _terraform_desc (WDP_MANUAL, 0, 0, WC_SCEN_LAND_GEN, WC_NONE, WDF_CONSTRUCTION, _nested_terraform_widgets, lengthof(_nested_terraform_widgets)) |
static byte | _terraform_size = 1 |
static const int8 | _multi_terraform_coords [][2] |
static const NWidgetPart | _nested_scen_edit_land_gen_widgets [] |
Hotkey < ScenarioEditorLandscapeGenerationWindow > * | _terraform_editor_hotkeys = ScenarioEditorLandscapeGenerationWindow::terraform_editor_hotkeys |
static const WindowDesc | _scen_edit_land_gen_desc (WDP_AUTO, 0, 0, WC_SCEN_LAND_GEN, WC_NONE, WDF_CONSTRUCTION, _nested_scen_edit_land_gen_widgets, lengthof(_nested_scen_edit_land_gen_widgets)) |
GUI related to terraforming the map.
Definition in file terraform_gui.cpp.
static void CommonRaiseLowerBigLand | ( | TileIndex | tile, | |
int | mode | |||
) | [static] |
Raise/Lower a bigger chunk of land at the same time in the editor.
When raising get the lowest point, when lowering the highest point, and set all tiles in the selection to that height.
tile | The top-left tile where the terraforming will start | |
mode | 1 for raising, 0 for lowering land |
Definition at line 400 of file terraform_gui.cpp.
References _settings_client, TileArea::ClampToMap(), CMD_MSG, CMD_TERRAFORM_LAND, SoundSettings::confirm, DoCommandP(), TileArea::h, max(), MAX_TILE_HEIGHT, min(), SLOPE_N, ClientSettings::sound, TILE_AREA_LOOP, TileHeight(), and TileArea::w.
Referenced by ScenarioEditorLandscapeGenerationWindow::OnPlaceObject().
bool GUIPlaceProcDragXY | ( | ViewportDragDropSelectionProcess | proc, | |
TileIndex | start_tile, | |||
TileIndex | end_tile | |||
) |
A central place to handle all X_AND_Y dragged GUI functions.
proc | Procedure related to the dragging | |
start_tile | Begin of the dragging | |
end_tile | End of the dragging |
Definition at line 102 of file terraform_gui.cpp.
References _ctrl_pressed, _settings_game, CMD_CLEAR_AREA, CMD_LEVEL_LAND, CMD_MSG, GameSettings::construction, DDSP_CREATE_DESERT, DDSP_CREATE_ROCKS, DDSP_DEMOLISH_AREA, DDSP_LEVEL_AREA, DDSP_LOWER_AND_LEVEL_AREA, DDSP_RAISE_AND_LEVEL_AREA, DoCommandP(), ConstructionSettings::freeform_edges, GenerateDesertArea(), GenerateRockyArea(), LM_LEVEL, LM_LOWER, LM_RAISE, MapMaxX(), MapMaxY(), TileDiffXY(), TileX(), and TileY().
Referenced by ScenarioEditorLandscapeGenerationWindow::OnPlaceMouseUp(), TerraformToolbarWindow::OnPlaceMouseUp(), BuildRoadToolbarWindow::OnPlaceMouseUp(), BuildRailToolbarWindow::OnPlaceMouseUp(), BuildDocksToolbarWindow::OnPlaceMouseUp(), and BuildAirToolbarWindow::OnPlaceMouseUp().
void PlaceProc_DemolishArea | ( | TileIndex | tile | ) |
Start a drag for demolishing an area.
tile | Position of one corner. |
Definition at line 141 of file terraform_gui.cpp.
References DDSP_DEMOLISH_AREA, VPM_X_AND_Y, and VpStartPlaceSizing().
Referenced by ScenarioEditorLandscapeGenerationWindow::OnPlaceObject(), TerraformToolbarWindow::OnPlaceObject(), BuildRoadToolbarWindow::OnPlaceObject(), BuildRailToolbarWindow::OnPlaceObject(), BuildDocksToolbarWindow::OnPlaceObject(), and BuildAirToolbarWindow::OnPlaceObject().
static void ResetLandscapeConfirmationCallback | ( | Window * | w, | |
bool | confirmed | |||
) | [static] |
Callback function for the scenario editor 'reset landscape' confirmation window.
w | Window unused | |
confirmed | boolean value, true when yes was clicked, false otherwise |
Definition at line 504 of file terraform_gui.cpp.
References _generating_world, ChangeOwnershipOfCompanyItems(), CMD_LANDSCAPE_CLEAR, DC_BANKRUPT, DC_EXEC, DoCommand(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_OWNER, IsBuoyTile(), BaseStation::IsInUse(), MarkWholeScreenDirty(), EngineOverrideManager::ResetToCurrentNewGRFConfig(), and BaseStation::xy.
Referenced by ScenarioEditorLandscapeGenerationWindow::OnClick().
Window* ShowEditorTerraformToolbar | ( | ) |
Show the toolbar for terraforming in the scenario editor.
Definition at line 753 of file terraform_gui.cpp.
Referenced by ScenarioEditorToolbarWindow::OnKeyPress().
Show the toolbar for terraforming in the game.
link | The toolbar we might want to link to. |
Definition at line 356 of file terraform_gui.cpp.
References _current_text_dir, _local_company, DeleteWindowById(), Window::height, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), Window::left, Window::SetDirty(), TD_RTL, Window::top, WC_SCEN_LAND_GEN, and Window::width.
Referenced by MenuClickForest(), and MainToolbarWindow::OnKeyPress().
const int8 _multi_terraform_coords[][2] [static] |
{ { 0, -2}, { 4, 0}, { -4, 0}, { 0, 2}, { -8, 2}, { -4, 4}, { 0, 6}, { 4, 4}, { 8, 2}, {-12, 0}, { -8, -2}, { -4, -4}, { 0, -6}, { 4, -4}, { 8, -2}, { 12, 0}, {-16, 2}, {-12, 4}, { -8, 6}, { -4, 8}, { 0, 10}, { 4, 8}, { 8, 6}, { 12, 4}, { 16, 2}, {-20, 0}, {-16, -2}, {-12, -4}, { -8, -6}, { -4, -8}, { 0,-10}, { 4, -8}, { 8, -6}, { 12, -4}, { 16, -2}, { 20, 0}, {-24, 2}, {-20, 4}, {-16, 6}, {-12, 8}, { -8, 10}, { -4, 12}, { 0, 14}, { 4, 12}, { 8, 10}, { 12, 8}, { 16, 6}, { 20, 4}, { 24, 2}, {-28, 0}, {-24, -2}, {-20, -4}, {-16, -6}, {-12, -8}, { -8,-10}, { -4,-12}, { 0,-14}, { 4,-12}, { 8,-10}, { 12, -8}, { 16, -6}, { 20, -4}, { 24, -2}, { 28, 0}, }
Definition at line 439 of file terraform_gui.cpp.
const NWidgetPart _nested_terraform_widgets[] [static] |
{ NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN), NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_LANDSCAPING_TOOLBAR, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), NWidget(WWT_STICKYBOX, COLOUR_DARK_GREEN), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_TT_LOWER_LAND), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_TERRAFORM_DOWN, STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND), NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_TT_RAISE_LAND), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_TERRAFORM_UP, STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND), NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_TT_LEVEL_LAND), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_LEVEL_LAND, STR_LANDSCAPING_LEVEL_LAND_TOOLTIP), NWidget(WWT_PANEL, COLOUR_DARK_GREEN), SetMinimalSize(4, 22), EndContainer(), NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_TT_DEMOLISH), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_DYNAMITE, STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC), NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_TT_BUY_LAND), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_BUY_LAND, STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND), NWidget(WWT_PUSHIMGBTN, COLOUR_DARK_GREEN, WID_TT_PLANT_TREES), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_PLANTTREES, STR_SCENEDIT_TOOLBAR_PLANT_TREES), NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_TT_PLACE_SIGN), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_SIGN, STR_SCENEDIT_TOOLBAR_PLACE_SIGN), NWidget(NWID_SELECTION, INVALID_COLOUR, WID_TT_SHOW_PLACE_OBJECT), NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_TT_PLACE_OBJECT), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_TRANSMITTER, STR_SCENEDIT_TOOLBAR_PLACE_OBJECT), EndContainer(), EndContainer(), }
Definition at line 313 of file terraform_gui.cpp.