Disable pained sounds and tighten fidget criteria

Removed jump/land sounds (attack/wound sounds had pained growls).
Made fidget discovery much stricter to exclude jerky battle animations.

Changes:
- Disabled playJumpSound for ground mounts (attack sounds too aggressive)
- Disabled playLandSound for ground mounts (wound sounds have growls)
- Fidget criteria now requires BOTH frequency AND replay (not OR)
- Excluded IDs 11-15 (attacks) in addition to 16-21 (combat)
- Only animations with proper idle metadata will be selected
This commit is contained in:
Kelsi 2026-02-10 20:32:43 -08:00
parent a88c5f9bb8
commit fe3c6a6a79
2 changed files with 24 additions and 26 deletions

View file

@ -752,15 +752,14 @@ void Renderer::setMounted(uint32_t mountInstId, uint32_t mountDisplayId, float h
" speed=", seq.movingSpeed);
}
// Exclude known problematic animations: death (5,6), combat (16-21), wounds (7-9)
// Exclude known problematic animations: death (5-6), wounds (7-9), combat (16-21), attacks (11-15)
bool isDeathOrWound = (seq.id >= 5 && seq.id <= 9);
bool isCombat = (seq.id >= 16 && seq.id <= 21);
bool isAttackOrCombat = (seq.id >= 11 && seq.id <= 21);
bool isSpecial = (seq.id == 2 || seq.id == 3); // Often aggressive specials
// Select fidgets: non-looping + (frequency OR replay) + stationary + not death/combat
// Relaxed: some mounts may only have one of the markers
if (!isLoop && (hasFrequency || hasReplay) && isStationary && reasonableDuration &&
!isDeathOrWound && !isCombat && !isSpecial) {
// Select fidgets: STRICT - require BOTH frequency AND replay to ensure proper idle markers
if (!isLoop && hasFrequency && hasReplay && isStationary && reasonableDuration &&
!isDeathOrWound && !isAttackOrCombat && !isSpecial) {
// Bonus: chains back to stand (indicates idle behavior)
bool chainsToStand = (seq.nextAnimation == (int16_t)mountAnims_.stand) ||
(seq.aliasNext == mountAnims_.stand) ||