1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-20 21:43:06 +01:00

Add checks to ensure an animation object is selected for each peep type

This commit is contained in:
Aaron van Geffen
2024-12-07 13:40:30 +01:00
parent 42adf84723
commit 7efe73f6ac
10 changed files with 65 additions and 2 deletions

View File

@@ -36,6 +36,7 @@
#include "object/DefaultObjects.h"
#include "object/ObjectManager.h"
#include "object/ObjectRepository.h"
#include "peep/PeepAnimations.h"
#include "rct1/RCT1.h"
#include "scenario/Scenario.h"
#include "ui/UiContext.h"
@@ -447,6 +448,23 @@ namespace OpenRCT2::Editor
}
}
using OpenRCT2::AnimationPeepType;
constexpr std::pair<AnimationPeepType, StringId> kPeepCheckPairs[] = {
{ AnimationPeepType::Guest, STR_AT_LEAST_ONE_GUEST_PEEP_ANIMATIONS_OBJECT_MUST_BE_SELECTED },
{ AnimationPeepType::Handyman, STR_AT_LEAST_ONE_HANDYMAN_PEEP_ANIMATIONS_OBJECT_MUST_BE_SELECTED },
{ AnimationPeepType::Mechanic, STR_AT_LEAST_ONE_MECHANIC_PEEP_ANIMATIONS_OBJECT_MUST_BE_SELECTED },
{ AnimationPeepType::Security, STR_AT_LEAST_ONE_SECURITY_PEEP_ANIMATIONS_OBJECT_MUST_BE_SELECTED },
{ AnimationPeepType::Entertainer, STR_AT_LEAST_ONE_ENTERTAINER_PEEP_ANIMATIONS_OBJECT_MUST_BE_SELECTED },
};
for (auto& pair : kPeepCheckPairs)
{
if (!EditorCheckObjectGroupAtLeastOneOfPeepTypeSelected(EnumValue(pair.first)))
{
return { ObjectType::PeepAnimations, pair.second };
}
}
return { ObjectType::None, STR_NONE };
}