/***************************************************************************** * Copyright (c) 2014-2024 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 * * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ #include "PeepData.h" #include "PeepSpriteIds.h" #include namespace OpenRCT2 { // clang-format off // Define animation sequences for Normal sprites static constexpr std::array kPeepAnimationSequenceNormalNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceNormalCheckTime = { 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8 }; static constexpr std::array kPeepAnimationSequenceNormalWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceNormalEatFood = { 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 9, 10 }; static constexpr std::array kPeepAnimationSequenceNormalShakeHead = { 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; static constexpr std::array kPeepAnimationSequenceNormalEmptyPockets = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; static constexpr std::array kPeepAnimationSequenceNormalHoldMat = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceNormalSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceNormalSittingEatFood = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalSittingLookAroundLeft = { 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }; static constexpr std::array kPeepAnimationSequenceNormalSittingLookAroundRight = { 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }; static constexpr std::array kPeepAnimationSequenceNormalUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceNormalWow = { 0, 1, 2, 3, 4, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalThrowUp = { 8, 8, 9, 9, 10, 10, 9, 9, 8, 8, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 13, 13, 8, 8, 9, 9, 8, 8 }; static constexpr std::array kPeepAnimationSequenceNormalJump = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11 }; static constexpr std::array kPeepAnimationSequenceNormalDrowning = { 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 5, 6, 7 }; static constexpr std::array kPeepAnimationSequenceNormalJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; static constexpr std::array kPeepAnimationSequenceNormalReadMap = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 11, 12, 11, 10, 10, 10, 13, 14, 14, 14, 13, 10, 10, 10, 11, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalWave = { 0, 1, 2, 3, 3, 4, 4, 3, 3, 4, 4, 3, 3, 4, 4, 3, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalWave2 = { 0, 1, 2, 3, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalTakePhoto = { 0, 1, 2, 3, 4, 5, 5, 5, 5, 6, 7, 6, 5, 5, 5, 5, 5, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalClap = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalDisgust = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalDrawPicture = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 15, 14, 8, 9, 10, 11, 12, 13, 8, 9, 10, 11, 12, 13, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 15, 14, 8, 9, 10, 11, 12, 13, 8, 9, 10, 11, 12, 13, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceNormalBeingWatched = { 0, 1, 2, 2, 2, 2, 3, 4, 5, 5, 5, 5, 4 }; static constexpr std::array kPeepAnimationSequenceNormalWithdrawMoney = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11, 12, 11, 12, 11, 12, 11, 12, 11, 11, 11, 11, 11, 13, 14, 15 }; // Define animation group for Normal sequences static constexpr PeepAnimationGroup kPeepAnimationGroupNormal = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteNormalStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceNormalNone }; pag[PeepActionSpriteType::CheckTime] = { kPeepSpriteNormalStateCheckTimeId, { 8, 16, 5 }, kPeepAnimationSequenceNormalCheckTime }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteNormalStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceNormalWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteNormalStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceNormalEatFood }; pag[PeepActionSpriteType::ShakeHead] = { kPeepSpriteNormalStateShakeHeadId, { 8, 16, 5 }, kPeepAnimationSequenceNormalShakeHead }; pag[PeepActionSpriteType::EmptyPockets] = { kPeepSpriteNormalStateEmptyPocketsId, { 8, 16, 5 }, kPeepAnimationSequenceNormalEmptyPockets }; pag[PeepActionSpriteType::HoldMat] = { kPeepSpriteNormalStateHoldMatId, { 9, 16, 5 }, kPeepAnimationSequenceNormalHoldMat }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteNormalStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceNormalSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteNormalStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceNormalSittingEatFood }; pag[PeepActionSpriteType::SittingLookAroundLeft] = { kPeepSpriteNormalStateSittingLookAroundLeftId, { 9, 16, 6 }, kPeepAnimationSequenceNormalSittingLookAroundLeft }; pag[PeepActionSpriteType::SittingLookAroundRight] = { kPeepSpriteNormalStateSittingLookAroundRightId, { 9, 16, 6 }, kPeepAnimationSequenceNormalSittingLookAroundRight }; pag[PeepActionSpriteType::Ui] = { kPeepSpriteNormalStateUiId, { 8, 16, 5 }, kPeepAnimationSequenceNormalUi }; pag[PeepActionSpriteType::Wow] = { kPeepSpriteNormalStateWowId, { 12, 22, 5 }, kPeepAnimationSequenceNormalWow }; pag[PeepActionSpriteType::ThrowUp] = { kPeepSpriteNormalStateThrowUpId, { 9, 16, 7 }, kPeepAnimationSequenceNormalThrowUp }; pag[PeepActionSpriteType::Jump] = { kPeepSpriteNormalStateJumpId, { 10, 22, 5 }, kPeepAnimationSequenceNormalJump }; pag[PeepActionSpriteType::Drowning] = { kPeepSpriteNormalStateDrowningId, { 9, 15, 6 }, kPeepAnimationSequenceNormalDrowning }; pag[PeepActionSpriteType::Joy] = { kPeepSpriteNormalStateJoyId, { 11, 24, 6 }, kPeepAnimationSequenceNormalJoy }; pag[PeepActionSpriteType::ReadMap] = { kPeepSpriteNormalStateReadMapId, { 11, 16, 5 }, kPeepAnimationSequenceNormalReadMap }; pag[PeepActionSpriteType::Wave] = { kPeepSpriteNormalStateWaveId, { 11, 16, 5 }, kPeepAnimationSequenceNormalWave }; pag[PeepActionSpriteType::Wave2] = { kPeepSpriteNormalStateWave2Id, { 11, 16, 5 }, kPeepAnimationSequenceNormalWave2 }; pag[PeepActionSpriteType::TakePhoto] = { kPeepSpriteNormalStateTakePhotoId, { 8, 16, 5 }, kPeepAnimationSequenceNormalTakePhoto }; pag[PeepActionSpriteType::Clap] = { kPeepSpriteNormalStateClapId, { 9, 17, 6 }, kPeepAnimationSequenceNormalClap }; pag[PeepActionSpriteType::Disgust] = { kPeepSpriteNormalStateDisgustId, { 9, 16, 5 }, kPeepAnimationSequenceNormalDisgust }; pag[PeepActionSpriteType::DrawPicture] = { kPeepSpriteNormalStateDrawPictureId, { 9, 22, 7 }, kPeepAnimationSequenceNormalDrawPicture }; pag[PeepActionSpriteType::BeingWatched] = { kPeepSpriteNormalStateBeingWatchedId, { 9, 22, 7 }, kPeepAnimationSequenceNormalBeingWatched }; pag[PeepActionSpriteType::WithdrawMoney] = { kPeepSpriteNormalStateWithdrawMoneyId, { 9, 22, 7 }, kPeepAnimationSequenceNormalWithdrawMoney }; return pag; }(); // Define animation sequences for Handyman sprites static constexpr std::array kPeepAnimationSequenceHandymanNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceHandymanWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceHandymanUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceHandymanStaffMower = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceHandymanStaffSweep = { 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4 }; static constexpr std::array kPeepAnimationSequenceHandymanDrowning = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 4, 5, 6, 7 }; static constexpr std::array kPeepAnimationSequenceHandymanStaffWatering = { 0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceHandymanStaffEmptyBin = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; // Define animation group for Handyman sequences static constexpr PeepAnimationGroup kPeepAnimationGroupHandyman = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kHandymanSpriteStateNoneId, { 12, 16, 6 }, kPeepAnimationSequenceHandymanNone }; pag[PeepActionSpriteType::WatchRide] = { kHandymanSpriteStateWatchRideId, { 9, 16, 6 }, kPeepAnimationSequenceHandymanWatchRide }; pag[PeepActionSpriteType::Ui] = { kHandymanSpriteStateUiId, { 15, 16, 5 }, kPeepAnimationSequenceHandymanUi }; pag[PeepActionSpriteType::StaffMower] = { kHandymanSpriteStateStaffMowerId, { 18, 16, 11 }, kPeepAnimationSequenceHandymanStaffMower }; pag[PeepActionSpriteType::StaffSweep] = { kHandymanSpriteStateStaffSweepId, { 17, 16, 9 }, kPeepAnimationSequenceHandymanStaffSweep }; pag[PeepActionSpriteType::Drowning] = { kHandymanSpriteStateDrowningId, { 9, 15, 6 }, kPeepAnimationSequenceHandymanDrowning }; pag[PeepActionSpriteType::StaffWatering] = { kHandymanSpriteStateStaffWateringId, { 17, 16, 9 }, kPeepAnimationSequenceHandymanStaffWatering }; pag[PeepActionSpriteType::StaffEmptyBin] = { kHandymanSpriteStateStaffEmptyBinId, { 17, 16, 9 }, kPeepAnimationSequenceHandymanStaffEmptyBin }; return pag; }(); // Define animation sequences for Mechanic sprites static constexpr std::array kPeepAnimationSequenceMechanicNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceMechanicWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceMechanicUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceMechanicDrowning = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 4, 5, 6, 7 }; static constexpr std::array kPeepAnimationSequenceMechanicStaffAnswerCall = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 14, 14, 14, 14, 14, 15, 16, 15, 14, 15, 16, 15, 14, 14, 14, 14, 14, 14, 17, 18, 18, 18, 18, 18, 18, 18, 17, 14, 14, 14, 14, 19, 20, 20, 20, 19, 14, 14, 14, 14, 14, 14, 14, 14, 15, 16, 15, 14, 15, 16, 15, 14, 14, 14, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceMechanicStaffAnswerCall2 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 16, 15, 14, 14, 14, 14, 14, 14, 19, 20, 20, 20, 19, 14, 14, 14, 14, 14, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceMechanicStaffCheckboard = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9, 8, 14, 15, 15, 15, 16, 17, 17, 17, 14, 11, 12, 13, 12, 13, 12, 11, 9, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceMechanicStaffFix = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceMechanicStaffFix2 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, 21, 20, 21, 22, 21, 20, 21, 22, 20, 21, 22, 21, 20, 19, 18, 0, 0, 23, 24, 25, 26, 27, 28, 28, 26, 24, 29, 30, 31, 32, 31, 30, 31, 32, 31, 30, 31, 32, 31, 30, 29, 0 }; static constexpr std::array kPeepAnimationSequenceMechanicStaffFixGround = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 18, 17, 16, 17, 18, 19, 18, 17, 16, 17, 18, 19, 18, 17, 16, 17, 18, 19, 18, 17, 16, 17, 18, 19, 18, 17, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceMechanicStaffFix3 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 13, 12, 11, 11, 12, 13, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 15, 16, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, 21, 20, 21, 22, 21, 20, 21, 22, 20, 19, 18, 0, 0, 23, 24, 25, 26, 27, 28, 28, 26, 24, 0, 0, 0, 0, 0, 0 }; // Define animation group for Mechanic sequences static constexpr PeepAnimationGroup kPeepAnimationGroupMechanic = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kMechanicSpriteStateNoneId, { 10, 16, 5 }, kPeepAnimationSequenceMechanicNone }; pag[PeepActionSpriteType::WatchRide] = { kMechanicSpriteStateWatchRideId, { 10, 16, 5 }, kPeepAnimationSequenceMechanicWatchRide }; pag[PeepActionSpriteType::Ui] = { kMechanicSpriteStateUiId, { 10, 16, 5 }, kPeepAnimationSequenceMechanicUi }; pag[PeepActionSpriteType::Drowning] = { kMechanicSpriteStateDrowningId, { 9, 15, 6 }, kPeepAnimationSequenceMechanicDrowning }; pag[PeepActionSpriteType::StaffAnswerCall] = { kMechanicSpriteStateStaffAnswerCallId, { 13, 22, 7 }, kPeepAnimationSequenceMechanicStaffAnswerCall }; pag[PeepActionSpriteType::StaffAnswerCall2] = { kMechanicSpriteStateStaffAnswerCallId, { 13, 22, 7 }, kPeepAnimationSequenceMechanicStaffAnswerCall2 }; pag[PeepActionSpriteType::StaffCheckboard] = { kMechanicSpriteStateStaffCheckboardId, { 13, 22, 7 }, kPeepAnimationSequenceMechanicStaffCheckboard }; pag[PeepActionSpriteType::StaffFix] = { kMechanicSpriteStateStaffFixId, { 13, 22, 7 }, kPeepAnimationSequenceMechanicStaffFix }; pag[PeepActionSpriteType::StaffFix2] = { kMechanicSpriteStateStaffFixId, { 13, 22, 7 }, kPeepAnimationSequenceMechanicStaffFix2 }; pag[PeepActionSpriteType::StaffFixGround] = { kMechanicSpriteStateStaffFixGroundId, { 19, 16, 16 }, kPeepAnimationSequenceMechanicStaffFixGround }; pag[PeepActionSpriteType::StaffFix3] = { kMechanicSpriteStateStaffFixId, { 13, 22, 7 }, kPeepAnimationSequenceMechanicStaffFix3 }; return pag; }(); // Define animation sequences for Security sprites static constexpr std::array kPeepAnimationSequenceSecurityNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceSecurityWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceSecurityUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceSecurityDrowning = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 4, 5, 6 }; // Define animation group for Security sequences static constexpr PeepAnimationGroup kPeepAnimationGroupSecurity = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kSecuritySpriteStateNoneId, { 8, 18, 5 }, kPeepAnimationSequenceSecurityNone }; pag[PeepActionSpriteType::WatchRide] = { kSecuritySpriteStateWatchRideId, { 8, 17, 5 }, kPeepAnimationSequenceSecurityWatchRide }; pag[PeepActionSpriteType::Ui] = { kSecuritySpriteStateUiId, { 15, 19, 6 }, kPeepAnimationSequenceSecurityUi }; pag[PeepActionSpriteType::Drowning] = { kSecuritySpriteStateDrowningId, { 9, 15, 6 }, kPeepAnimationSequenceSecurityDrowning }; return pag; }(); // Define animation sequences for EntertainerPanda sprites static constexpr std::array kPeepAnimationSequenceEntertainerPandaNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerPandaWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerPandaEatFood = { 0, 1, 2, 3, 4, 5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerPandaUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerPandaDrowning = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 4, 5, 6 }; static constexpr std::array kPeepAnimationSequenceEntertainerPandaJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; static constexpr std::array kPeepAnimationSequenceEntertainerPandaWave2 = { 0, 1, 2, 3, 4, 5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3, 2, 1, 0 }; // Define animation group for EntertainerPanda sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerPanda = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpritePandaStateNoneId, { 13, 24, 8 }, kPeepAnimationSequenceEntertainerPandaNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpritePandaStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerPandaWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpritePandaStateWaveId, { 14, 24, 7 }, kPeepAnimationSequenceEntertainerPandaEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpritePandaStateUiId, { 19, 30, 8 }, kPeepAnimationSequenceEntertainerPandaUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpritePandaStateDrowningId, { 13, 15, 6 }, kPeepAnimationSequenceEntertainerPandaDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpritePandaStateJoyId, { 14, 25, 8 }, kPeepAnimationSequenceEntertainerPandaJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpritePandaStateWaveId, { 14, 24, 7 }, kPeepAnimationSequenceEntertainerPandaWave2 }; return pag; }(); // Define animation sequences for EntertainerTiger sprites static constexpr std::array kPeepAnimationSequenceEntertainerTigerNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerTigerWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerTigerEatFood = { 0, 1, 2, 3, 4, 5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerTigerUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerTigerDrowning = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 4, 5, 6 }; static constexpr std::array kPeepAnimationSequenceEntertainerTigerJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25, 25 }; static constexpr std::array kPeepAnimationSequenceEntertainerTigerWave2 = { 0, 1, 2, 3, 4, 5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3, 2, 1, 0 }; // Define animation group for EntertainerTiger sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerTiger = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteTigerStateNoneId, { 13, 24, 8 }, kPeepAnimationSequenceEntertainerTigerNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteTigerStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerTigerWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteTigerStateWaveId, { 16, 24, 8 }, kPeepAnimationSequenceEntertainerTigerEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteTigerStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerTigerUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteTigerStateDrowningId, { 13, 15, 6 }, kPeepAnimationSequenceEntertainerTigerDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteTigerStateJoyId, { 16, 28, 9 }, kPeepAnimationSequenceEntertainerTigerJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteTigerStateWaveId, { 16, 24, 8 }, kPeepAnimationSequenceEntertainerTigerWave2 }; return pag; }(); // Define animation sequences for EntertainerElephant sprites static constexpr std::array kPeepAnimationSequenceEntertainerElephantNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerElephantWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerElephantEatFood = { 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 4, 5, 6, 5, 4, 3, 4, 5, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerElephantUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerElephantDrowning = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 4, 5, 6, 7, 8, 9 }; static constexpr std::array kPeepAnimationSequenceEntertainerElephantJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }; static constexpr std::array kPeepAnimationSequenceEntertainerElephantWave2 = { 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 4, 5, 6, 5, 4, 3, 4, 5, 6, 5, 4, 3, 2, 1, 0 }; // Define animation group for EntertainerElephant sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerElephant = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteElephantStateNoneId, { 13, 24, 8 }, kPeepAnimationSequenceEntertainerElephantNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteElephantStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerElephantWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteElephantStateWaveId, { 17, 24, 8 }, kPeepAnimationSequenceEntertainerElephantEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteElephantStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerElephantUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteElephantStateDrowningId, { 17, 15, 6 }, kPeepAnimationSequenceEntertainerElephantDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteElephantStateJoyId, { 18, 25, 9 }, kPeepAnimationSequenceEntertainerElephantJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteElephantStateWaveId, { 17, 24, 8 }, kPeepAnimationSequenceEntertainerElephantWave2 }; return pag; }(); // Define animation sequences for EntertainerRoman sprites static constexpr std::array kPeepAnimationSequenceEntertainerRomanNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerRomanWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerRomanEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerRomanUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerRomanDrowning = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; static constexpr std::array kPeepAnimationSequenceEntertainerRomanJoy = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 24, 25, 26, 27, 28, 28, 28, 29, 30, 31, 32, 32, 32, 32, 32, 33, 34, 35, 36, 37, 38 }; static constexpr std::array kPeepAnimationSequenceEntertainerRomanWave2 = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0 }; // Define animation group for EntertainerRoman sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerRoman = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteRomanStateNoneId, { 13, 24, 8 }, kPeepAnimationSequenceEntertainerRomanNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteRomanStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerRomanWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteRomanStateWaveId, { 17, 24, 8 }, kPeepAnimationSequenceEntertainerRomanEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteRomanStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerRomanUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteRomanStateDrowningId, { 17, 15, 6 }, kPeepAnimationSequenceEntertainerRomanDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteRomanStateJoyId, { 18, 25, 9 }, kPeepAnimationSequenceEntertainerRomanJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteRomanStateWaveId, { 17, 24, 8 }, kPeepAnimationSequenceEntertainerRomanWave2 }; return pag; }(); // Define animation sequences for EntertainerGorilla sprites static constexpr std::array kPeepAnimationSequenceEntertainerGorillaNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerGorillaWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerGorillaEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerGorillaUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerGorillaDrowning = { 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerGorillaJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerGorillaWave2 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; // Define animation group for EntertainerGorilla sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerGorilla = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteGorillaStateNoneId, { 13, 24, 8 }, kPeepAnimationSequenceEntertainerGorillaNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteGorillaStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerGorillaWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteGorillaStateWaveId, { 17, 24, 8 }, kPeepAnimationSequenceEntertainerGorillaEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteGorillaStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerGorillaUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteGorillaStateDrowningId, { 17, 15, 6 }, kPeepAnimationSequenceEntertainerGorillaDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteGorillaStateWaveId, { 18, 25, 9 }, kPeepAnimationSequenceEntertainerGorillaJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteGorillaStateWaveId, { 17, 24, 8 }, kPeepAnimationSequenceEntertainerGorillaWave2 }; return pag; }(); // Define animation sequences for EntertainerSnowman sprites static constexpr std::array kPeepAnimationSequenceEntertainerSnowmanNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerSnowmanWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerSnowmanEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 31, 31, 31, 32, 33 }; static constexpr std::array kPeepAnimationSequenceEntertainerSnowmanUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerSnowmanDrowning = { 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 5, 6, 7, 8, 9 }; static constexpr std::array kPeepAnimationSequenceEntertainerSnowmanJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 31, 31, 31, 32, 33 }; static constexpr std::array kPeepAnimationSequenceEntertainerSnowmanWave2 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 31, 31, 31, 32, 33 }; // Define animation group for EntertainerSnowman sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerSnowman = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteSnowmanStateNoneId, { 13, 24, 8 }, kPeepAnimationSequenceEntertainerSnowmanNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteSnowmanStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerSnowmanWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteSnowmanStateWaveId, { 17, 28, 9 }, kPeepAnimationSequenceEntertainerSnowmanEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteSnowmanStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerSnowmanUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteSnowmanStateDrowningId, { 17, 15, 9 }, kPeepAnimationSequenceEntertainerSnowmanDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteSnowmanStateWaveId, { 18, 28, 9 }, kPeepAnimationSequenceEntertainerSnowmanJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteSnowmanStateWaveId, { 17, 28, 9 }, kPeepAnimationSequenceEntertainerSnowmanWave2 }; return pag; }(); // Define animation sequences for EntertainerKnight sprites static constexpr std::array kPeepAnimationSequenceEntertainerKnightNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerKnightWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerKnightEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 9, 10, 11, 12, 12, 12, 12, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 23, 23, 23, 23, 24, 25, 26, 27 }; static constexpr std::array kPeepAnimationSequenceEntertainerKnightUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerKnightDrowning = { 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; static constexpr std::array kPeepAnimationSequenceEntertainerKnightJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 9, 10, 11, 12, 12, 12, 12, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 23, 23, 23, 23, 24, 25, 26, 27 }; static constexpr std::array kPeepAnimationSequenceEntertainerKnightWave2 = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 9, 10, 11, 12, 12, 12, 12, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 23, 23, 23, 23, 24, 25, 26, 27 }; // Define animation group for EntertainerKnight sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerKnight = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteKnightStateNoneId, { 16, 32, 8 }, kPeepAnimationSequenceEntertainerKnightNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteKnightStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerKnightWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteKnightStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerKnightEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteKnightStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerKnightUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteKnightStateDrowningId, { 21, 32, 9 }, kPeepAnimationSequenceEntertainerKnightDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteKnightStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerKnightJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteKnightStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerKnightWave2 }; return pag; }(); // Define animation sequences for EntertainerAstronaut sprites static constexpr std::array kPeepAnimationSequenceEntertainerAstronautNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerAstronautWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerAstronautEatFood = { 0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 8, 9, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerAstronautUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerAstronautDrowning = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; static constexpr std::array kPeepAnimationSequenceEntertainerAstronautJoy = { 0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 8, 9, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerAstronautWave2 = { 0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 8, 9, 0 }; // Define animation group for EntertainerAstronaut sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerAstronaut = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteAstronautStateNoneId, { 16, 32, 8 }, kPeepAnimationSequenceEntertainerAstronautNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteAstronautStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerAstronautWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteAstronautStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerAstronautEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteAstronautStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerAstronautUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteAstronautStateDrowningId, { 21, 32, 9 }, kPeepAnimationSequenceEntertainerAstronautDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteAstronautStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerAstronautJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteAstronautStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerAstronautWave2 }; return pag; }(); // Define animation sequences for EntertainerBandit sprites static constexpr std::array kPeepAnimationSequenceEntertainerBanditNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerBanditWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerBanditEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 8, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 13, 13, 13, 13, 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 }; static constexpr std::array kPeepAnimationSequenceEntertainerBanditUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerBanditDrowning = { 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; static constexpr std::array kPeepAnimationSequenceEntertainerBanditJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 8, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 13, 13, 13, 13, 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 }; static constexpr std::array kPeepAnimationSequenceEntertainerBanditWave2 = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 8, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 13, 13, 13, 13, 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 21, 20, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 }; // Define animation group for EntertainerBandit sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerBandit = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteBanditStateNoneId, { 16, 32, 8 }, kPeepAnimationSequenceEntertainerBanditNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteBanditStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerBanditWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteBanditStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerBanditEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteBanditStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerBanditUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteBanditStateDrowningId, { 21, 32, 9 }, kPeepAnimationSequenceEntertainerBanditDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteBanditStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerBanditJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteBanditStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerBanditWave2 }; return pag; }(); // Define animation sequences for EntertainerSheriff sprites static constexpr std::array kPeepAnimationSequenceEntertainerSheriffNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerSheriffWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerSheriffEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 8, 9, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerSheriffUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerSheriffDrowning = { 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; static constexpr std::array kPeepAnimationSequenceEntertainerSheriffJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 8, 9, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerSheriffWave2 = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 8, 9, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 10, 11, 12, 11, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; // Define animation group for EntertainerSheriff sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerSheriff = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpriteSheriffStateNoneId, { 16, 32, 8 }, kPeepAnimationSequenceEntertainerSheriffNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpriteSheriffStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerSheriffWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpriteSheriffStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerSheriffEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpriteSheriffStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerSheriffUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpriteSheriffStateDrowningId, { 21, 32, 9 }, kPeepAnimationSequenceEntertainerSheriffDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpriteSheriffStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerSheriffJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpriteSheriffStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerSheriffWave2 }; return pag; }(); // Define animation sequences for EntertainerPirate sprites static constexpr std::array kPeepAnimationSequenceEntertainerPirateNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceEntertainerPirateWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceEntertainerPirateEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 9, 10, 11, 12, 13, 14, 15, 16, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 21, 21, 21, 21, 21, 22, 23, 23, 23, 23, 24, 25, 26, 27, 27, 27, 27, 28, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31 }; static constexpr std::array kPeepAnimationSequenceEntertainerPirateUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceEntertainerPirateDrowning = { 0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; static constexpr std::array kPeepAnimationSequenceEntertainerPirateJoy = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 9, 10, 11, 12, 13, 14, 15, 16, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 21, 21, 21, 21, 21, 22, 23, 23, 23, 23, 24, 25, 26, 27, 27, 27, 27, 28, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31 }; static constexpr std::array kPeepAnimationSequenceEntertainerPirateWave2 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 9, 10, 11, 12, 13, 14, 15, 16, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 21, 21, 21, 21, 21, 22, 23, 23, 23, 23, 24, 25, 26, 27, 27, 27, 27, 28, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31 }; // Define animation group for EntertainerPirate sequences static constexpr PeepAnimationGroup kPeepAnimationGroupEntertainerPirate = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kEntertainerSpritePirateStateNoneId, { 16, 32, 8 }, kPeepAnimationSequenceEntertainerPirateNone }; pag[PeepActionSpriteType::WatchRide] = { kEntertainerSpritePirateStateWatchRideId, { 10, 23, 7 }, kPeepAnimationSequenceEntertainerPirateWatchRide }; pag[PeepActionSpriteType::EatFood] = { kEntertainerSpritePirateStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerPirateEatFood }; pag[PeepActionSpriteType::Ui] = { kEntertainerSpritePirateStateUiId, { 23, 30, 8 }, kPeepAnimationSequenceEntertainerPirateUi }; pag[PeepActionSpriteType::Drowning] = { kEntertainerSpritePirateStateDrowningId, { 21, 32, 9 }, kPeepAnimationSequenceEntertainerPirateDrowning }; pag[PeepActionSpriteType::Joy] = { kEntertainerSpritePirateStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerPirateJoy }; pag[PeepActionSpriteType::Wave2] = { kEntertainerSpritePirateStateWaveId, { 23, 30, 15 }, kPeepAnimationSequenceEntertainerPirateWave2 }; return pag; }(); // Define animation sequences for IceCream sprites static constexpr std::array kPeepAnimationSequenceIceCreamNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceIceCreamWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceIceCreamEatFood = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceIceCreamSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceIceCreamSittingEatFood = { 0, 1, 2, 3, 4, 5 }; // Define animation group for IceCream sequences static constexpr PeepAnimationGroup kPeepAnimationGroupIceCream = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteIceCreamStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceIceCreamNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteIceCreamStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceIceCreamWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteIceCreamStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceIceCreamEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteIceCreamStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceIceCreamSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteIceCreamStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceIceCreamSittingEatFood }; return pag; }(); // Define animation sequences for Chips sprites static constexpr std::array kPeepAnimationSequenceChipsNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceChipsWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceChipsEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceChipsSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceChipsSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Chips sequences static constexpr PeepAnimationGroup kPeepAnimationGroupChips = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteChipsStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceChipsNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteChipsStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceChipsWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteChipsStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceChipsEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteChipsStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceChipsSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteChipsStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceChipsSittingEatFood }; return pag; }(); // Define animation sequences for Burger sprites static constexpr std::array kPeepAnimationSequenceBurgerNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceBurgerWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceBurgerEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceBurgerSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceBurgerSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Burger sequences static constexpr PeepAnimationGroup kPeepAnimationGroupBurger = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteBurgerStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceBurgerNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteBurgerStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceBurgerWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteBurgerStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceBurgerEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteBurgerStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceBurgerSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteBurgerStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceBurgerSittingEatFood }; return pag; }(); // Define animation sequences for Drink sprites static constexpr std::array kPeepAnimationSequenceDrinkNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceDrinkWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceDrinkEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceDrinkSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceDrinkSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Drink sequences static constexpr PeepAnimationGroup kPeepAnimationGroupDrink = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteDrinkStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceDrinkNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteDrinkStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceDrinkWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteDrinkStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceDrinkEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteDrinkStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceDrinkSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteDrinkStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceDrinkSittingEatFood }; return pag; }(); // Define animation sequences for Balloon sprites static constexpr std::array kPeepAnimationSequenceBalloonNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceBalloonWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceBalloonSittingIdle = { 0 }; // Define animation group for Balloon sequences static constexpr PeepAnimationGroup kPeepAnimationGroupBalloon = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteBalloonStateNoneId, { 11, 28, 5 }, kPeepAnimationSequenceBalloonNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteBalloonStateWatchRideId, { 11, 28, 5 }, kPeepAnimationSequenceBalloonWatchRide }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteBalloonStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceBalloonSittingIdle }; return pag; }(); // Define animation sequences for Candyfloss sprites static constexpr std::array kPeepAnimationSequenceCandyflossNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceCandyflossWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceCandyflossEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceCandyflossSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceCandyflossSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Candyfloss sequences static constexpr PeepAnimationGroup kPeepAnimationGroupCandyfloss = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteCandyflossStateNoneId, { 11, 19, 5 }, kPeepAnimationSequenceCandyflossNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteCandyflossStateWatchRideId, { 11, 19, 5 }, kPeepAnimationSequenceCandyflossWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteCandyflossStateEatFoodId, { 11, 19, 5 }, kPeepAnimationSequenceCandyflossEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteCandyflossStateSittingIdleId, { 13, 16, 6 }, kPeepAnimationSequenceCandyflossSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteCandyflossStateSittingEatFoodId, { 13, 16, 6 }, kPeepAnimationSequenceCandyflossSittingEatFood }; return pag; }(); // Define animation sequences for Umbrella sprites static constexpr std::array kPeepAnimationSequenceUmbrellaNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceUmbrellaWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceUmbrellaSittingIdle = { 0 }; // Define animation group for Umbrella sequences static constexpr PeepAnimationGroup kPeepAnimationGroupUmbrella = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteUmbrellaStateNoneId, { 14, 21, 5 }, kPeepAnimationSequenceUmbrellaNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteUmbrellaStateWatchRideId, { 14, 21, 5 }, kPeepAnimationSequenceUmbrellaWatchRide }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteUmbrellaStateSittingIdleId, { 14, 19, 6 }, kPeepAnimationSequenceUmbrellaSittingIdle }; return pag; }(); // Define animation sequences for Pizza sprites static constexpr std::array kPeepAnimationSequencePizzaNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequencePizzaWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequencePizzaEatFood = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequencePizzaSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequencePizzaSittingEatFood = { 0, 1, 2, 3, 4, 5 }; // Define animation group for Pizza sequences static constexpr PeepAnimationGroup kPeepAnimationGroupPizza = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpritePizzaStateNoneId, { 8, 16, 5 }, kPeepAnimationSequencePizzaNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpritePizzaStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequencePizzaWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpritePizzaStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequencePizzaEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpritePizzaStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequencePizzaSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpritePizzaStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequencePizzaSittingEatFood }; return pag; }(); // Define animation sequences for SecurityAlt sprites static constexpr std::array kPeepAnimationSequenceSecurityAltNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceSecurityAltWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceSecurityAltUi = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceSecurityAltDrowning = { 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 4, 5, 6 }; // Define animation group for SecurityAlt sequences static constexpr PeepAnimationGroup kPeepAnimationGroupSecurityAlt = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kSecurityStaffSpriteAltStateNoneId, { 8, 18, 5 }, kPeepAnimationSequenceSecurityAltNone }; pag[PeepActionSpriteType::WatchRide] = { kSecuritySpriteStateWatchRideId, { 8, 17, 5 }, kPeepAnimationSequenceSecurityAltWatchRide }; pag[PeepActionSpriteType::Ui] = { kSecuritySpriteStateUiId, { 15, 19, 6 }, kPeepAnimationSequenceSecurityAltUi }; pag[PeepActionSpriteType::Drowning] = { kSecuritySpriteStateDrowningId, { 9, 15, 6 }, kPeepAnimationSequenceSecurityAltDrowning }; return pag; }(); // Define animation sequences for Popcorn sprites static constexpr std::array kPeepAnimationSequencePopcornNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequencePopcornWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequencePopcornEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequencePopcornSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequencePopcornSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Popcorn sequences static constexpr PeepAnimationGroup kPeepAnimationGroupPopcorn = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpritePopcornStateNoneId, { 11, 19, 5 }, kPeepAnimationSequencePopcornNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpritePopcornStateWatchRideId, { 11, 19, 5 }, kPeepAnimationSequencePopcornWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpritePopcornStateEatFoodId, { 11, 19, 5 }, kPeepAnimationSequencePopcornEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpritePopcornStateSittingIdleId, { 13, 16, 6 }, kPeepAnimationSequencePopcornSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpritePopcornStateSittingEatFoodId, { 13, 16, 6 }, kPeepAnimationSequencePopcornSittingEatFood }; return pag; }(); // Define animation sequences for ArmsCrossed sprites static constexpr std::array kPeepAnimationSequenceArmsCrossedNone = { 0, 1, 2, 3, 4, 5 }; // Define animation group for ArmsCrossed sequences static constexpr PeepAnimationGroup kPeepAnimationGroupArmsCrossed = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteArmsCrossedStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceArmsCrossedNone }; return pag; }(); // Define animation sequences for HeadDown sprites static constexpr std::array kPeepAnimationSequenceHeadDownNone = { 0, 1, 2, 3, 4, 5 }; // Define animation group for HeadDown sequences static constexpr PeepAnimationGroup kPeepAnimationGroupHeadDown = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteHeadDownStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceHeadDownNone }; return pag; }(); // Define animation sequences for Nauseous sprites static constexpr std::array kPeepAnimationSequenceNauseousNone = { 0, 1, 2, 3, 4, 5 }; // Define animation group for Nauseous sequences static constexpr PeepAnimationGroup kPeepAnimationGroupNauseous = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteNauseousStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceNauseousNone }; return pag; }(); // Define animation sequences for VeryNauseous sprites static constexpr std::array kPeepAnimationSequenceVeryNauseousNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceVeryNauseousWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceVeryNauseousSittingIdle = { 0 }; // Define animation group for VeryNauseous sequences static constexpr PeepAnimationGroup kPeepAnimationGroupVeryNauseous = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteVeryNauseousStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceVeryNauseousNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteVeryNauseousStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceVeryNauseousWatchRide }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteVeryNauseousStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceVeryNauseousSittingIdle }; return pag; }(); // Define animation sequences for RequireToilet sprites static constexpr std::array kPeepAnimationSequenceRequireToiletNone = { 0, 1, 2, 3, 4, 5 }; // Define animation group for RequireToilet sequences static constexpr PeepAnimationGroup kPeepAnimationGroupRequireToilet = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteRequireToiletStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceRequireToiletNone }; return pag; }(); // Define animation sequences for Hat sprites static constexpr std::array kPeepAnimationSequenceHatNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceHatWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceHatSittingIdle = { 0 }; // Define animation group for Hat sequences static constexpr PeepAnimationGroup kPeepAnimationGroupHat = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteHatStateNoneId, { 12, 32, 5 }, kPeepAnimationSequenceHatNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteHatStateWatchRideId, { 12, 32, 5 }, kPeepAnimationSequenceHatWatchRide }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteHatStateSittingIdleId, { 10, 20, 6 }, kPeepAnimationSequenceHatSittingIdle }; return pag; }(); // Define animation sequences for HotDog sprites static constexpr std::array kPeepAnimationSequenceHotDogNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceHotDogWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceHotDogEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceHotDogSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceHotDogSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for HotDog sequences static constexpr PeepAnimationGroup kPeepAnimationGroupHotDog = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteHotDogStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceHotDogNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteHotDogStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceHotDogWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteHotDogStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceHotDogEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteHotDogStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceHotDogSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteHotDogStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceHotDogSittingEatFood }; return pag; }(); // Define animation sequences for Tentacle sprites static constexpr std::array kPeepAnimationSequenceTentacleNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }; static constexpr std::array kPeepAnimationSequenceTentacleWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceTentacleEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; static constexpr std::array kPeepAnimationSequenceTentacleSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceTentacleSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; // Define animation group for Tentacle sequences static constexpr PeepAnimationGroup kPeepAnimationGroupTentacle = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteTentacleStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceTentacleNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteTentacleStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceTentacleWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteTentacleStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceTentacleEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteTentacleStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceTentacleSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteTentacleStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceTentacleSittingEatFood }; return pag; }(); // Define animation sequences for ToffeeApple sprites static constexpr std::array kPeepAnimationSequenceToffeeAppleNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceToffeeAppleWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceToffeeAppleEatFood = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceToffeeAppleSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceToffeeAppleSittingEatFood = { 0, 1, 2, 3, 4, 5 }; // Define animation group for ToffeeApple sequences static constexpr PeepAnimationGroup kPeepAnimationGroupToffeeApple = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteToffeeAppleStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceToffeeAppleNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteToffeeAppleStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceToffeeAppleWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteToffeeAppleStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceToffeeAppleEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteToffeeAppleStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceToffeeAppleSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteToffeeAppleStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceToffeeAppleSittingEatFood }; return pag; }(); // Define animation sequences for Donut sprites static constexpr std::array kPeepAnimationSequenceDonutNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceDonutWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceDonutEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceDonutSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceDonutSittingEatFood = { 0, 1, 2, 3, 3, 3, 3, 3, 3, 4, 5 }; // Define animation group for Donut sequences static constexpr PeepAnimationGroup kPeepAnimationGroupDonut = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteDonutStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceDonutNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteDonutStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceDonutWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteDonutStateEatFoodId, { 8, 16, 5 }, kPeepAnimationSequenceDonutEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteDonutStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceDonutSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteDonutStateSittingEatFoodId, { 9, 16, 6 }, kPeepAnimationSequenceDonutSittingEatFood }; return pag; }(); // Define animation sequences for Coffee sprites static constexpr std::array kPeepAnimationSequenceCoffeeNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceCoffeeWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceCoffeeEatFood = { 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 2, 1 }; static constexpr std::array kPeepAnimationSequenceCoffeeSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceCoffeeSittingEatFood = { 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 2, 1 }; // Define animation group for Coffee sequences static constexpr PeepAnimationGroup kPeepAnimationGroupCoffee = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteCoffeeStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceCoffeeNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteCoffeeStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceCoffeeWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteCoffeeStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceCoffeeEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteCoffeeStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceCoffeeSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteCoffeeStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceCoffeeSittingEatFood }; return pag; }(); // Define animation sequences for Chicken sprites static constexpr std::array kPeepAnimationSequenceChickenNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceChickenWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceChickenEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceChickenSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceChickenSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Chicken sequences static constexpr PeepAnimationGroup kPeepAnimationGroupChicken = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteChickenStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceChickenNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteChickenStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceChickenWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteChickenStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceChickenEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteChickenStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceChickenSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteChickenStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceChickenSittingEatFood }; return pag; }(); // Define animation sequences for Lemonade sprites static constexpr std::array kPeepAnimationSequenceLemonadeNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceLemonadeWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceLemonadeEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceLemonadeSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceLemonadeSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Lemonade sequences static constexpr PeepAnimationGroup kPeepAnimationGroupLemonade = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteLemonadeStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceLemonadeNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteLemonadeStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceLemonadeWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteLemonadeStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceLemonadeEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteLemonadeStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceLemonadeSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteLemonadeStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceLemonadeSittingEatFood }; return pag; }(); // Define animation sequences for Watching sprites static constexpr std::array kPeepAnimationSequenceWatchingWatchRide = { 0 }; // Define animation group for Watching sequences static constexpr PeepAnimationGroup kPeepAnimationGroupWatching = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteWatchingStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceWatchingWatchRide }; return pag; }(); // Define animation sequences for Pretzel sprites static constexpr std::array kPeepAnimationSequencePretzelNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequencePretzelWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequencePretzelEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequencePretzelSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequencePretzelSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Pretzel sequences static constexpr PeepAnimationGroup kPeepAnimationGroupPretzel = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpritePretzelStateNoneId, { 8, 16, 5 }, kPeepAnimationSequencePretzelNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpritePretzelStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequencePretzelWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpritePretzelStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequencePretzelEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpritePretzelStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequencePretzelSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpritePretzelStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequencePretzelSittingEatFood }; return pag; }(); // Define animation sequences for Sunglasses sprites static constexpr std::array kPeepAnimationSequenceSunglassesNone = { 0, 1, 2, 3, 4, 5 }; static constexpr std::array kPeepAnimationSequenceSunglassesWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceSunglassesSittingIdle = { 0 }; // Define animation group for Sunglasses sequences static constexpr PeepAnimationGroup kPeepAnimationGroupSunglasses = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteSunglassesStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceSunglassesNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteSunglassesStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSunglassesWatchRide }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteSunglassesStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSunglassesSittingIdle }; return pag; }(); // Define animation sequences for SuJongkwa sprites static constexpr std::array kPeepAnimationSequenceSuJongkwaNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceSuJongkwaWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceSuJongkwaEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceSuJongkwaSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceSuJongkwaSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for SuJongkwa sequences static constexpr PeepAnimationGroup kPeepAnimationGroupSuJongkwa = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteSuJongkwaStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceSuJongkwaNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteSuJongkwaStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSuJongkwaWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteSuJongkwaStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSuJongkwaEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteSuJongkwaStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSuJongkwaSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteSuJongkwaStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSuJongkwaSittingEatFood }; return pag; }(); // Define animation sequences for Juice sprites static constexpr std::array kPeepAnimationSequenceJuiceNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceJuiceWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceJuiceEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceJuiceSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceJuiceSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Juice sequences static constexpr PeepAnimationGroup kPeepAnimationGroupJuice = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteJuiceStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceJuiceNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteJuiceStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceJuiceWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteJuiceStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceJuiceEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteJuiceStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceJuiceSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteJuiceStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceJuiceSittingEatFood }; return pag; }(); // Define animation sequences for FunnelCake sprites static constexpr std::array kPeepAnimationSequenceFunnelCakeNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceFunnelCakeWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceFunnelCakeEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceFunnelCakeSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceFunnelCakeSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for FunnelCake sequences static constexpr PeepAnimationGroup kPeepAnimationGroupFunnelCake = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteFunnelCakeStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceFunnelCakeNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteFunnelCakeStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceFunnelCakeWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteFunnelCakeStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceFunnelCakeEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteFunnelCakeStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceFunnelCakeSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteFunnelCakeStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceFunnelCakeSittingEatFood }; return pag; }(); // Define animation sequences for Noodles sprites static constexpr std::array kPeepAnimationSequenceNoodlesNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceNoodlesWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceNoodlesEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceNoodlesSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceNoodlesSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Noodles sequences static constexpr PeepAnimationGroup kPeepAnimationGroupNoodles = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteNoodlesStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceNoodlesNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteNoodlesStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceNoodlesWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteNoodlesStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceNoodlesEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteNoodlesStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceNoodlesSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteNoodlesStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceNoodlesSittingEatFood }; return pag; }(); // Define animation sequences for Sausage sprites static constexpr std::array kPeepAnimationSequenceSausageNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceSausageWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceSausageEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceSausageSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceSausageSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Sausage sequences static constexpr PeepAnimationGroup kPeepAnimationGroupSausage = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteSausageStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceSausageNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteSausageStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSausageWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteSausageStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSausageEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteSausageStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSausageSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteSausageStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSausageSittingEatFood }; return pag; }(); // Define animation sequences for Soup sprites static constexpr std::array kPeepAnimationSequenceSoupNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceSoupWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceSoupEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceSoupSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceSoupSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Soup sequences static constexpr PeepAnimationGroup kPeepAnimationGroupSoup = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteSoupStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceSoupNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteSoupStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSoupWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteSoupStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSoupEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteSoupStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSoupSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteSoupStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSoupSittingEatFood }; return pag; }(); // Define animation sequences for Sandwich sprites static constexpr std::array kPeepAnimationSequenceSandwichNone = { 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; static constexpr std::array kPeepAnimationSequenceSandwichWatchRide = { 0 }; static constexpr std::array kPeepAnimationSequenceSandwichEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; static constexpr std::array kPeepAnimationSequenceSandwichSittingIdle = { 0 }; static constexpr std::array kPeepAnimationSequenceSandwichSittingEatFood = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Define animation group for Sandwich sequences static constexpr PeepAnimationGroup kPeepAnimationGroupSandwich = []() { PeepAnimationGroup pag; pag[PeepActionSpriteType::None] = { kPeepSpriteSandwichStateNoneId, { 8, 16, 5 }, kPeepAnimationSequenceSandwichNone }; pag[PeepActionSpriteType::WatchRide] = { kPeepSpriteSandwichStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSandwichWatchRide }; pag[PeepActionSpriteType::EatFood] = { kPeepSpriteSandwichStateWatchRideId, { 8, 16, 5 }, kPeepAnimationSequenceSandwichEatFood }; pag[PeepActionSpriteType::SittingIdle] = { kPeepSpriteSandwichStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSandwichSittingIdle }; pag[PeepActionSpriteType::SittingEatFood] = { kPeepSpriteSandwichStateSittingIdleId, { 9, 16, 6 }, kPeepAnimationSequenceSandwichSittingEatFood }; return pag; }(); // clang-format on // rct2: 0x00982708 static std::array kPeepAnimationEntries = { kPeepAnimationGroupNormal, kPeepAnimationGroupHandyman, kPeepAnimationGroupMechanic, kPeepAnimationGroupSecurity, kPeepAnimationGroupEntertainerPanda, kPeepAnimationGroupEntertainerTiger, kPeepAnimationGroupEntertainerElephant, kPeepAnimationGroupEntertainerRoman, kPeepAnimationGroupEntertainerGorilla, kPeepAnimationGroupEntertainerSnowman, kPeepAnimationGroupEntertainerKnight, kPeepAnimationGroupEntertainerAstronaut, kPeepAnimationGroupEntertainerBandit, kPeepAnimationGroupEntertainerSheriff, kPeepAnimationGroupEntertainerPirate, kPeepAnimationGroupIceCream, kPeepAnimationGroupChips, kPeepAnimationGroupBurger, kPeepAnimationGroupDrink, kPeepAnimationGroupBalloon, kPeepAnimationGroupCandyfloss, kPeepAnimationGroupUmbrella, kPeepAnimationGroupPizza, kPeepAnimationGroupSecurityAlt, kPeepAnimationGroupPopcorn, kPeepAnimationGroupArmsCrossed, kPeepAnimationGroupHeadDown, kPeepAnimationGroupNauseous, kPeepAnimationGroupVeryNauseous, kPeepAnimationGroupRequireToilet, kPeepAnimationGroupHat, kPeepAnimationGroupHotDog, kPeepAnimationGroupTentacle, kPeepAnimationGroupToffeeApple, kPeepAnimationGroupDonut, kPeepAnimationGroupCoffee, kPeepAnimationGroupChicken, kPeepAnimationGroupLemonade, kPeepAnimationGroupWatching, kPeepAnimationGroupPretzel, kPeepAnimationGroupSunglasses, kPeepAnimationGroupSuJongkwa, kPeepAnimationGroupJuice, kPeepAnimationGroupFunnelCake, kPeepAnimationGroupNoodles, kPeepAnimationGroupSausage, kPeepAnimationGroupSoup, kPeepAnimationGroupSandwich, }; const PeepAnimation& GetPeepAnimation(PeepSpriteType spriteType, PeepActionSpriteType actionSpriteType) { return kPeepAnimationEntries[EnumValue(spriteType)][actionSpriteType]; } const SpriteBounds& GetSpriteBounds(PeepSpriteType spriteType, PeepActionSpriteType actionSpriteType) { return kPeepAnimationEntries[EnumValue(spriteType)][actionSpriteType].bounds; } } // namespace OpenRCT2