mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +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 isAttackOrCombat = (seq.id >= 11 && seq.id <= 21);
|
||||||
bool isSpecial = (seq.id == 2 || seq.id == 3); // Often aggressive specials
|
bool isSpecial = (seq.id == 2 || seq.id == 3); // Often aggressive specials
|
||||||
|
|
||||||
// Select fidgets: STRICT - require BOTH frequency AND replay to ensure proper idle markers
|
// Select fidgets: (frequency OR replay) + exclude problematic ID ranges
|
||||||
if (!isLoop && hasFrequency && hasReplay && isStationary && reasonableDuration &&
|
// Relaxed back to OR since some mounts may only have one metadata marker
|
||||||
|
if (!isLoop && (hasFrequency || hasReplay) && isStationary && reasonableDuration &&
|
||||||
!isDeathOrWound && !isAttackOrCombat && !isSpecial) {
|
!isDeathOrWound && !isAttackOrCombat && !isSpecial) {
|
||||||
// Bonus: chains back to stand (indicates idle behavior)
|
// Bonus: chains back to stand (indicates idle behavior)
|
||||||
bool chainsToStand = (seq.nextAnimation == (int16_t)mountAnims_.stand) ||
|
bool chainsToStand = (seq.nextAnimation == (int16_t)mountAnims_.stand) ||
|
||||||
|
|
@ -1124,15 +1125,15 @@ void Renderer::updateCharacterAnimation() {
|
||||||
mountActiveFidget_ = 0; // Cancel any active fidget
|
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) {
|
if (!moving && mountSoundManager) {
|
||||||
mountIdleSoundTimer_ += lastDeltaTime_;
|
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) {
|
if (mountIdleSoundTimer_ >= nextIdleSoundTime) {
|
||||||
mountSoundManager->playIdleSound();
|
mountSoundManager->playIdleSound();
|
||||||
mountIdleSoundTimer_ = 0.0f;
|
mountIdleSoundTimer_ = 0.0f;
|
||||||
nextIdleSoundTime = 20.0f + (rand() % 21); // Randomize next sound time
|
nextIdleSoundTime = 45.0f + (rand() % 46); // Randomize next sound time
|
||||||
}
|
}
|
||||||
} else if (moving) {
|
} else if (moving) {
|
||||||
mountIdleSoundTimer_ = 0.0f; // Reset timer when moving
|
mountIdleSoundTimer_ = 0.0f; // Reset timer when moving
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue