Show better errors when loading scenery groups (#16854)

This commit is contained in:
Duncan 2022-03-23 00:01:52 +00:00 committed by GitHub
parent a2f7ffcb71
commit c5b5b95bcd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 7 deletions

View File

@ -588,7 +588,7 @@ public:
if (!(object_selection_flags & ObjectSelectionFlags::Selected))
inputFlags |= INPUT_FLAG_EDITOR_OBJECT_SELECT;
_maxObjectsWasHit = false;
_gSceneryGroupPartialSelectError = false;
if (!window_editor_object_selection_select_object(0, inputFlags, listItem->repositoryItem))
{
rct_string_id error_title = (inputFlags & INPUT_FLAG_EDITOR_OBJECT_SELECT) ? STR_UNABLE_TO_SELECT_THIS_OBJECT
@ -605,10 +605,18 @@ public:
Invalidate();
}
if (_maxObjectsWasHit)
if (_gSceneryGroupPartialSelectError)
{
context_show_error(
STR_WARNING_TOO_MANY_OBJECTS_SELECTED, STR_NOT_ALL_OBJECTS_IN_THIS_SCENERY_GROUP_COULD_BE_SELECTED, {});
if (gGameCommandErrorText == STR_OBJECT_SELECTION_ERR_TOO_MANY_OF_TYPE_SELECTED)
{
context_show_error(
STR_WARNING_TOO_MANY_OBJECTS_SELECTED, STR_NOT_ALL_OBJECTS_IN_THIS_SCENERY_GROUP_COULD_BE_SELECTED, {});
}
else
{
context_show_error(
gGameCommandErrorText, STR_NOT_ALL_OBJECTS_IN_THIS_SCENERY_GROUP_COULD_BE_SELECTED, Formatter::Common());
}
}
}

View File

@ -33,7 +33,7 @@
#include <iterator>
#include <vector>
bool _maxObjectsWasHit;
bool _gSceneryGroupPartialSelectError;
std::vector<uint8_t> _objectSelectionFlags;
int32_t _numSelectedObjectsForType[EnumValue(ObjectType::Count)];
static int32_t _numAvailableObjectsForType[EnumValue(ObjectType::Count)];
@ -581,7 +581,7 @@ bool window_editor_object_selection_select_object(uint8_t isMasterObject, int32_
{
if (!window_editor_object_selection_select_object(++isMasterObject, flags, sgEntry))
{
_maxObjectsWasHit = true;
_gSceneryGroupPartialSelectError = true;
}
}
}

View File

@ -23,7 +23,7 @@ enum EDITOR_INPUT_FLAGS
INPUT_FLAG_EDITOR_OBJECT_ALWAYS_REQUIRED = (1 << 3)
};
extern bool _maxObjectsWasHit;
extern bool _gSceneryGroupPartialSelectError;
extern std::vector<uint8_t> _objectSelectionFlags;
extern int32_t _numSelectedObjectsForType[EnumValue(ObjectType::Count)];