1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-30 10:15:36 +01:00

Remove some usages of gGameCommandErrorMessage in Editor

This commit is contained in:
Gymnasiast
2021-06-09 14:05:00 +02:00
parent b0af3abb39
commit 15fcbf5463
3 changed files with 20 additions and 28 deletions

View File

@@ -176,14 +176,14 @@ static bool window_editor_bottom_toolbar_check_object_selection()
{
rct_window* w;
ObjectType missingObjectType = Editor::CheckObjectSelection();
auto [missingObjectType, errorString] = Editor::CheckObjectSelection();
if (missingObjectType == ObjectType::None)
{
window_close_by_class(WC_EDITOR_OBJECT_SELECTION);
return true;
}
context_show_error(STR_INVALID_SELECTION_OF_OBJECTS, gGameCommandErrorText, {});
context_show_error(STR_INVALID_SELECTION_OF_OBJECTS, errorString, {});
w = window_find_by_class(WC_EDITOR_OBJECT_SELECTION);
if (w != nullptr)
{
@@ -219,7 +219,8 @@ void window_editor_bottom_toolbar_jump_forward_from_object_selection()
*/
void window_editor_bottom_toolbar_jump_forward_to_invention_list_set_up()
{
if (Editor::CheckPark())
auto [checksPassed, errorString] = Editor::CheckPark();
if (checksPassed)
{
window_close_all();
context_open_window(WC_EDITOR_INVENTION_LIST);
@@ -227,7 +228,7 @@ void window_editor_bottom_toolbar_jump_forward_to_invention_list_set_up()
}
else
{
context_show_error(STR_CANT_ADVANCE_TO_NEXT_EDITOR_STAGE, gGameCommandErrorText, {});
context_show_error(STR_CANT_ADVANCE_TO_NEXT_EDITOR_STAGE, errorString, {});
}
gfx_invalidate_screen();

View File

@@ -453,7 +453,7 @@ namespace Editor
*
* rct2: 0x006AB9B8
*/
ObjectType CheckObjectSelection()
std::pair<ObjectType, rct_string_id> CheckObjectSelection()
{
bool isTrackDesignerManager = gScreenFlags & (SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER);
@@ -461,52 +461,46 @@ namespace Editor
{
if (!editor_check_object_group_at_least_one_selected(ObjectType::Paths))
{
gGameCommandErrorText = STR_AT_LEAST_ONE_PATH_OBJECT_MUST_BE_SELECTED;
return ObjectType::Paths;
return { ObjectType::Paths, STR_AT_LEAST_ONE_PATH_OBJECT_MUST_BE_SELECTED };
}
}
if (!editor_check_object_group_at_least_one_selected(ObjectType::Ride))
{
gGameCommandErrorText = STR_AT_LEAST_ONE_RIDE_OBJECT_MUST_BE_SELECTED;
return ObjectType::Ride;
return { ObjectType::Ride, STR_AT_LEAST_ONE_RIDE_OBJECT_MUST_BE_SELECTED };
}
if (!isTrackDesignerManager)
{
if (!editor_check_object_group_at_least_one_selected(ObjectType::ParkEntrance))
{
gGameCommandErrorText = STR_PARK_ENTRANCE_TYPE_MUST_BE_SELECTED;
return ObjectType::ParkEntrance;
return { ObjectType::ParkEntrance, STR_PARK_ENTRANCE_TYPE_MUST_BE_SELECTED };
}
if (!editor_check_object_group_at_least_one_selected(ObjectType::Water))
{
gGameCommandErrorText = STR_WATER_TYPE_MUST_BE_SELECTED;
return ObjectType::Water;
return { ObjectType::Water, STR_WATER_TYPE_MUST_BE_SELECTED };
}
}
return ObjectType::None;
return { ObjectType::None, STR_NONE };
}
/**
*
* rct2: 0x0066FEAC
*/
bool CheckPark()
std::pair<bool, rct_string_id> CheckPark()
{
int32_t parkSize = park_calculate_size();
if (parkSize == 0)
{
gGameCommandErrorText = STR_PARK_MUST_OWN_SOME_LAND;
return false;
return { false, STR_PARK_MUST_OWN_SOME_LAND };
}
if (gParkEntrances.empty())
{
gGameCommandErrorText = STR_NO_PARK_ENTRANCES;
return false;
return { false, STR_NO_PARK_ENTRANCES };
}
for (const auto& parkEntrance : gParkEntrances)
@@ -516,12 +510,10 @@ namespace Editor
switch (footpath_is_connected_to_map_edge(parkEntrance, direction, 0))
{
case FOOTPATH_SEARCH_NOT_FOUND:
gGameCommandErrorText = STR_PARK_ENTRANCE_WRONG_DIRECTION_OR_NO_PATH;
return false;
return { false, STR_PARK_ENTRANCE_WRONG_DIRECTION_OR_NO_PATH };
case FOOTPATH_SEARCH_INCOMPLETE:
case FOOTPATH_SEARCH_TOO_COMPLEX:
gGameCommandErrorText = STR_PARK_ENTRANCE_PATH_INCOMPLETE_OR_COMPLEX;
return false;
return { false, STR_PARK_ENTRANCE_PATH_INCOMPLETE_OR_COMPLEX };
case FOOTPATH_SEARCH_SUCCESS:
// Run the search again and unown the path
footpath_is_connected_to_map_edge(parkEntrance, direction, (1 << 5));
@@ -531,11 +523,10 @@ namespace Editor
if (gPeepSpawns.empty())
{
gGameCommandErrorText = STR_PEEP_SPAWNS_NOT_SET;
return false;
return { false, STR_PEEP_SPAWNS_NOT_SET };
}
return true;
return { true, STR_NONE };
}
uint8_t GetSelectedObjectFlags(ObjectType objectType, size_t index)

View File

@@ -21,8 +21,8 @@ namespace Editor
void LoadTrackManager();
bool LoadLandscape(const utf8* path);
bool CheckPark();
ObjectType CheckObjectSelection();
std::pair<bool, rct_string_id> CheckPark();
std::pair<ObjectType, rct_string_id> CheckObjectSelection();
void OpenWindowsForCurrentStep();