Allow spectator to play click animation during scene playback

This commit is contained in:
Christian Semmler 2026-04-03 21:10:44 -07:00
parent ac4cd6b979
commit f7e2dd41ef
No known key found for this signature in database
GPG Key ID: 086DAA1360BEEE5C
2 changed files with 7 additions and 5 deletions

View File

@ -75,6 +75,7 @@ class Controller {
m_animStopCallback = p_animPlaying ? std::move(p_animStopCallback) : nullptr;
}
bool IsAnimPlaying() const { return m_animPlaying; }
bool IsAnimLockDisplay() const { return m_animLockDisplay; }
void OnWorldEnabled(LegoWorld* p_world);
void OnWorldDisabled(LegoWorld* p_world);

View File

@ -1889,9 +1889,8 @@ std::string NetworkManager::BuildCompletionJson(uint16_t p_animIndex, uint64_t p
}
std::vector<int8_t> slotChars = Animation::SessionHost::ComputeSlotCharIndices(entry);
uint8_t count = view->slotCount < static_cast<uint8_t>(slotChars.size())
? view->slotCount
: static_cast<uint8_t>(slotChars.size());
uint8_t count = view->slotCount < static_cast<uint8_t>(slotChars.size()) ? view->slotCount
: static_cast<uint8_t>(slotChars.size());
char eventIdHex[17];
SDL_snprintf(
@ -2198,8 +2197,10 @@ void NetworkManager::HandleCustomize(const CustomizeMsg& p_msg)
p_msg.changeType == CHANGE_MOOD
);
// Only play click animation in 3rd person (not during multi-part emote or animation playback)
if (cam->GetDisplayROI() && !cam->IsInVehicle() && !cam->IsExtraAnimBlocking() && !cam->IsAnimPlaying()) {
// Only play click animation in 3rd person (not during multi-part emote or animation performance; spectators
// allowed)
if (cam->GetDisplayROI() && !cam->IsInVehicle() && !cam->IsExtraAnimBlocking() &&
!(cam->IsAnimPlaying() && cam->IsAnimLockDisplay())) {
cam->StopClickAnimation();
MxU32 clickAnimId =
Common::CharacterCustomizer::PlayClickAnimation(cam->GetDisplayROI(), cam->GetCustomizeState());