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 
14 #include <string>
15 
16 enum class PromptMode : uint8_t;
17 
18 enum class StartupAction
19 {
20     None,
21     Intro,
22     Title,
23     Open,
24     Edit
25 };
26 
27 enum
28 {
29     // Although this is labeled a flag it actually means when
30     // zero the screen is in playing mode.
31     SCREEN_FLAGS_PLAYING = 0,
32     SCREEN_FLAGS_TITLE_DEMO = 1,
33     SCREEN_FLAGS_SCENARIO_EDITOR = 2,
34     SCREEN_FLAGS_TRACK_DESIGNER = 4,
35     SCREEN_FLAGS_TRACK_MANAGER = 8,
36     SCREEN_FLAGS_EDITOR = (SCREEN_FLAGS_SCENARIO_EDITOR | SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER),
37 };
38 
39 extern StartupAction gOpenRCT2StartupAction;
40 extern utf8 gOpenRCT2StartupActionPath[512];
41 extern utf8 gCustomUserDataPath[MAX_PATH];
42 extern utf8 gCustomOpenRCT2DataPath[MAX_PATH];
43 extern utf8 gCustomRCT1DataPath[MAX_PATH];
44 extern utf8 gCustomRCT2DataPath[MAX_PATH];
45 extern utf8 gCustomPassword[MAX_PATH];
46 extern bool gOpenRCT2Headless;
47 extern bool gOpenRCT2NoGraphics;
48 extern bool gOpenRCT2ShowChangelog;
49 extern bool gOpenRCT2SilentBreakpad;
50 extern utf8 gSilentRecordingName[MAX_PATH];
51 
52 #ifndef DISABLE_NETWORK
53 extern int32_t gNetworkStart;
54 extern std::string gNetworkStartHost;
55 extern int32_t gNetworkStartPort;
56 extern std::string gNetworkStartAddress;
57 #endif
58 
59 extern uint32_t gCurrentDrawCount;
60 extern uint8_t gScreenFlags;
61 extern uint32_t gScreenAge;
62 extern PromptMode gSavePromptMode;
63 
64 void openrct2_write_full_version_info(utf8* buffer, size_t bufferSize);
65 void openrct2_finish();
66 
67 int32_t cmdline_run(const char** argv, int32_t argc);
68