1 /*****************************************************************************
2  * Copyright (c) 2014-2020 OpenRCT2 developers
3  *
4  * For a complete list of all authors, please refer to contributors.md
5  * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
6  *
7  * OpenRCT2 is licensed under the GNU General Public License version 3.
8  *****************************************************************************/
9 
10 #pragma once
11 
12 #include "common.h"
13 #include "object/Object.h"
14 
15 namespace Editor
16 {
17     void Load();
18     void ConvertSaveToScenario();
19     void LoadTrackDesigner();
20     void LoadTrackManager();
21     bool LoadLandscape(const utf8* path);
22 
23     std::pair<bool, rct_string_id> CheckPark();
24     std::pair<ObjectType, rct_string_id> CheckObjectSelection();
25 
26     void OpenWindowsForCurrentStep();
27 
28     uint8_t GetSelectedObjectFlags(ObjectType objectType, size_t index);
29     void ClearSelectedObject(ObjectType objectType, size_t index, uint32_t flags);
30     void SetSelectedObject(ObjectType objectType, size_t index, uint32_t flags);
31 } // namespace Editor
32 
33 enum class EditorStep : uint8_t
34 {
35     ObjectSelection,       // 0
36     LandscapeEditor,       // 1
37     InventionsListSetUp,   // 2
38     OptionsSelection,      // 3
39     ObjectiveSelection,    // 4
40     SaveScenario,          // 5
41     RollercoasterDesigner, // 6
42     DesignsManager,        // 7
43     Invalid = 255,         // 255
44 };
45 
46 extern EditorStep gEditorStep;
47 
48 void editor_open_windows_for_current_step();
49