MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / open

Function open

src/OpenLoco/src/Ui/Windows/PromptSaveWindow.cpp:49–106  ·  view source on GitHub ↗

0x0043C27E

Source from the content-addressed store, hash-verified

47
48 // 0x0043C27E
49 Window* open(LoadOrQuitMode savePromptType)
50 {
51 auto window = WindowManager::bringToFront(WindowType::saveGamePrompt);
52 if (window == nullptr)
53 {
54 window = WindowManager::createWindowCentred(
55 WindowType::saveGamePrompt,
56 { 260, 48 },
57 WindowFlags::notScrollView | WindowFlags::stickToFront,
58 getEvents());
59
60 if (window == nullptr)
61 {
62 return nullptr;
63 }
64
65 window->setWidgets(_widgets);
66 window->initScrollWidgets();
67 window->setColour(WindowColour::primary, AdvancedColour(Colour::mutedDarkRed).translucent());
68 window->flags |= Ui::WindowFlags::transparent;
69
70 SceneManager::setPauseFlag(PauseFlags::promptSave);
71 }
72
73 _savePromptType = savePromptType;
74
75 if (!SceneManager::isEditorMode())
76 {
77 static constexpr std::array<const StringId, 3> kTypeToType = {
78 StringIds::title_load_game,
79 StringIds::title_quit_game,
80 StringIds::title_quit_game_alt,
81 };
82
83 window->widgets[widx::caption].text = kTypeToType.at(enumValue(savePromptType));
84 }
85 else
86 {
87 if (savePromptType == LoadOrQuitMode::loadGamePrompt)
88 {
89 window->widgets[widx::caption].text = StringIds::title_load_landscape;
90 }
91 else
92 {
93 window->widgets[widx::caption].text = StringIds::title_quit_scenario_editor;
94 }
95 }
96
97 static constexpr std::array<const StringId, 3> kTypeToPrompt = {
98 StringIds::prompt_save_before_loading,
99 StringIds::prompt_save_before_quitting,
100 StringIds::prompt_save_before_quitting_alt,
101 };
102
103 window->widgets[widx::promptLabel].text = kTypeToPrompt.at(enumValue(savePromptType));
104
105 return window;
106 }

Callers

nothing calls this directly

Calls 10

bringToFrontFunction · 0.85
createWindowCentredFunction · 0.85
setPauseFlagFunction · 0.85
isEditorModeFunction · 0.85
enumValueFunction · 0.85
setWidgetsMethod · 0.80
initScrollWidgetsMethod · 0.80
translucentMethod · 0.80
AdvancedColourClass · 0.50
setColourMethod · 0.45

Tested by

no test coverage detected