mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #14868 from Gymnasiast/refactor/reduce-g-game-command-error-text
Reduce usage of gGameCommandErrorText
This commit is contained in:
commit
f9ad9ad3a5
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -313,14 +313,14 @@ GameActions::Result::Ptr FootpathPlaceAction::ElementInsertExecute(GameActions::
|
|||
uint8_t crossingMode = (_type & FOOTPATH_ELEMENT_INSERT_QUEUE) || (_slope != TILE_ELEMENT_SLOPE_FLAT)
|
||||
? CREATE_CROSSING_MODE_NONE
|
||||
: CREATE_CROSSING_MODE_PATH_OVER_TRACK;
|
||||
if (!entrancePath
|
||||
&& !map_can_construct_with_clear_at(
|
||||
auto canBuild = MapCanConstructWithClearAt(
|
||||
{ _loc, zLow, zHigh }, &map_place_non_scenery_clear_func, quarterTile, GAME_COMMAND_FLAG_APPLY | GetFlags(),
|
||||
&res->Cost, crossingMode))
|
||||
crossingMode);
|
||||
if (!entrancePath && canBuild->Error != GameActions::Status::Ok)
|
||||
{
|
||||
return MakeResult(
|
||||
GameActions::Status::NoClearance, STR_CANT_BUILD_FOOTPATH_HERE, gGameCommandErrorText, gCommonFormatArgs);
|
||||
return canBuild;
|
||||
}
|
||||
res->Cost += canBuild->Cost;
|
||||
|
||||
gFootpathGroundFlags = gMapGroundFlags;
|
||||
|
||||
|
|
Loading…
Reference in New Issue