mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Reduce idle sound frequency and restore fidget discovery
Idle sounds were too frequent and strict criteria blocked all fidgets. Changes: - Idle sounds now 45-90 seconds apart (was 20-40) - Fidget criteria back to OR (frequency OR replay) instead of AND - Keeps all ID exclusions: 2-3, 5-9, 11-21 to prevent battle animations - Should now discover proper fidgets while filtering problematic ones
This commit is contained in:
parent
b14ffd20df
commit
7e85e0b2ef
1 changed files with 6 additions and 5 deletions
|
|
@ -757,8 +757,9 @@ void Renderer::setMounted(uint32_t mountInstId, uint32_t mountDisplayId, float h
|
|||
bool isAttackOrCombat = (seq.id >= 11 && seq.id <= 21);
|
||||
bool isSpecial = (seq.id == 2 || seq.id == 3); // Often aggressive specials
|
||||
|
||||
// Select fidgets: STRICT - require BOTH frequency AND replay to ensure proper idle markers
|
||||
if (!isLoop && hasFrequency && hasReplay && isStationary && reasonableDuration &&
|
||||
// Select fidgets: (frequency OR replay) + exclude problematic ID ranges
|
||||
// Relaxed back to OR since some mounts may only have one metadata marker
|
||||
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) ||
|
||||
|
|
@ -1124,15 +1125,15 @@ void Renderer::updateCharacterAnimation() {
|
|||
mountActiveFidget_ = 0; // Cancel any active fidget
|
||||
}
|
||||
|
||||
// Idle ambient sounds: snorts and whinnies only, less frequent
|
||||
// Idle ambient sounds: snorts and whinnies only, infrequent
|
||||
if (!moving && mountSoundManager) {
|
||||
mountIdleSoundTimer_ += lastDeltaTime_;
|
||||
static float nextIdleSoundTime = 20.0f + (rand() % 21); // 20-40 seconds
|
||||
static float nextIdleSoundTime = 45.0f + (rand() % 46); // 45-90 seconds
|
||||
|
||||
if (mountIdleSoundTimer_ >= nextIdleSoundTime) {
|
||||
mountSoundManager->playIdleSound();
|
||||
mountIdleSoundTimer_ = 0.0f;
|
||||
nextIdleSoundTime = 20.0f + (rand() % 21); // Randomize next sound time
|
||||
nextIdleSoundTime = 45.0f + (rand() % 46); // Randomize next sound time
|
||||
}
|
||||
} else if (moving) {
|
||||
mountIdleSoundTimer_ = 0.0f; // Reset timer when moving
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue